随着TWS蓝牙耳机的市场变大,出现了各种各样的TWS蓝牙耳机、添加了各种各样的外设。如:入耳监测、压杆、敲击、红外等
IIC相关的讲解我这里就不讲了,博客里面有一大堆IIC相关的讲解,下面来简单的讲解下BES IIC的初始化和使用了直接上代码。
#define NextInput_W 0x46
#define NextInput_R 0x47
static int I2C_WriteByte(uint8_t reg_addr, uint8_t value)
{
uint8_t buf[2];
buf[0] = reg_addr;
buf[1] = value;
uint32_t ret=0;
ret= hal_gpio_i2c_simple_send_user(NextInput_W ,buf,2);
return ret;
}
static int I2C_ReadByte(uint8_t reg_addr, uint8_t *value)
{
//uint8_t buf[2]={0,0};
uint32_t ret=0;
ret= hal_gpio_i2c_simple_recv_user(NextInput_R ,®_addr,1,value,1);
TRACE("hal_gpio_i2c_simple_send ret=%d ",ret);
return ret;
}
uint32_t NextInput_open(void)
{
static const sftruct HAL_GPIO_I2C_CONFIG_T i2c_cfg={HAL_GPIO_PIN_P2_0,HAL_GPIO_PIN_P2_1,100};
hal_gpio_i2c_open(&i2c_cfg);
NextInput_Init();
return 0;
}
上面的代码就是初始化和读写函数了,具体怎么去使用应该是很简单的了、这里就不过多的去写了。
注意:使用硬件I2C的时候不能再中断函数中进行I2C 的读写操作,在其他地方进行I2C的读写是没有问题。
模拟I2C可以在中断中进行读写操作。