BES硬件I2C使用的注意事项
1. 使能I2C
实例化并填充HAL_I2C_CONFIG_T
结构体,调用hal_i2c_open
接口传入ID和结构体初始化i2c,ID表明你要初始化哪一组i2c(i2c0或i2c1),结构体传入i2c的一些配置,如i2c模式、是否使用dma、i2c速率、做主还是从等。这里要注意不用额外调用hal_iomux_set_i2cx()
这个接口来初始化这组io的复用功能,因为在调用hal_i2c_open
时会调用前述的接口来初始化IO,至于每组I2C对应的那一组IO需要在hal_iomux_set_i2cx()
接口中查看,该api在源程序hal_iomux_best2300a.c
中,下面是i2c初始化的示例代码。
struct HAL_I2C_CONFIG_T _i2c_cfg;
static void touch_i2c_open()
{
uint8_t ret;
_i2c_cfg.mode = HAL_I2C_API_MODE_TASK;
_i2c_cfg.use_dma = 0;
_i2c_cfg.use_sync = 1;
_i2c_cfg.speed = 400000;
_i2c_cfg.as_master = 1;
ret = hal_i2c_open(HAL_I2C_ID_0, &_i2c_cfg);
if (ret) {
HAL_TOUCH_TRACE(0,"open i2c fail");
} else {
HA