ESP-C3 I2C读温度传感器,下载后提示时间选择错误
ESP-C3 I2C读温度传感器,下载后提示时间选择错误
ESP-C3 I2C读温度传感器,下载后串口提示i2c_param_config(645): i2c clock choice is invalid, please check flag and frequency,意思是说时钟无效,我不知道时为什么?请教
-
- Posts: 786
- Joined: Wed Nov 14, 2018 8:45 am
Re: ESP-C3 I2C读温度传感器,下载后提示时间选择错误
估计你 clk 没配对,提供下你的 i2c_config_t 设置。
Re: ESP-C3 I2C读温度传感器,下载后提示时间选择错误
我的i2c配置如下,但是这样没有问题啊
static esp_err_t i2c_master_init(void)
{
int i2c_master_port = IIC_CTRL_NUM;
i2c_config_t conf;
conf.mode = I2C_MODE_MASTER;
conf.sda_io_num = SDA_PIN_NUM;
conf.sda_pullup_en = GPIO_PULLUP_ENABLE;
conf.scl_io_num = SCL_PIN_NUM;
conf.scl_pullup_en = GPIO_PULLUP_ENABLE;
conf.master.clk_speed = 100000; /* 标准模式(100 kbit/s) */
i2c_param_config(i2c_master_port, &conf);
return i2c_driver_install(i2c_master_port, conf.mode, 0, 0, 0);
}
static esp_err_t i2c_master_init(void)
{
int i2c_master_port = IIC_CTRL_NUM;
i2c_config_t conf;
conf.mode = I2C_MODE_MASTER;
conf.sda_io_num = SDA_PIN_NUM;
conf.sda_pullup_en = GPIO_PULLUP_ENABLE;
conf.scl_io_num = SCL_PIN_NUM;
conf.scl_pullup_en = GPIO_PULLUP_ENABLE;
conf.master.clk_speed = 100000; /* 标准模式(100 kbit/s) */
i2c_param_config(i2c_master_port, &conf);
return i2c_driver_install(i2c_master_port, conf.mode, 0, 0, 0);
}
-
- Posts: 786
- Joined: Wed Nov 14, 2018 8:45 am
Re: ESP-C3 I2C读温度传感器,下载后提示时间选择错误
你这样写会导致 conf 有成员未初始化,因为 conf 是函数内的局部变量,会从 stack 里分配内存空间,值未知。
你可以把 conf.clk_flags 读出来看看,是否是个奇怪的值,这会导致后面 i2c_param_config 内的一些条件判断错误。
使用以下方式做初始化:
你可以把 conf.clk_flags 读出来看看,是否是个奇怪的值,这会导致后面 i2c_param_config 内的一些条件判断错误。
使用以下方式做初始化:
Code: Select all
i2c_config_t conf= {
conf.mode = I2C_MODE_MASTER,
conf.sda_io_num = SDA_PIN_NUM,
conf.sda_pullup_en = GPIO_PULLUP_ENABLE,
conf.scl_io_num = SCL_PIN_NUM,
conf.scl_pullup_en = GPIO_PULLUP_ENABLE,
conf.master.clk_speed = 100000, /* 标准模式(100 kbit/s) */
}
Who is online
Users browsing this forum: Baidu [Spider] and 154 guests