i2c_master_mem
总览
本示例主要介绍使用i2c作为master模式读写EEPROM的使用方法。(注意使用的EEPROM型号,demo中的 CK_IIC_SLAVE_ADDR
宏需要根据实际使用的EEPROM设置)
准备及使用步骤
- 使用步骤:
- 将板子与电脑用USB电源线连接,USB电源线默认连接UART0;
- 将板子和EEPROM连接,其中板子的gpio4连接EEPROM的scl引脚,gpio3连接EEPROM的sda引脚,VCC和GND也对应连接;
- 编译
customer_app/periperal/demo_i2c
工程并下载工程,编译命令:genromap <chip name>
,<chip name>可选择BL602
,BL702
;;- 打开一个串口终端窗口(波特率为2000000,用于接收和发送uart消息);
- 串口终端输入
demo_hosal_i2c_mater_mem
,表示启动i2c_master_mem
的demo;- 此时会打印读写的数据,如果读和写的数据一致,表示该demo成功运行。
应用实例
- 通过
hosal_i2c_init
初始化i2c主设备。
hosal_i2c_dev_t i2c0;
ret = hosal_i2c_init(&i2c0);
if (ret != 0) {
hosal_i2c_finalize(&i2c0);
blog_error("hosal i2c init failed!\r\n");
return;
}
- 通过
hosal_i2c_mem_write
接口对i2c从设备写数据。
ret = hosal_i2c_mem_write(&i2c0, CK_IIC_SLAVE_ADDR, EEPROM_PAGE_ADDR, HOSAL_I2C_MEM_ADDR_SIZE_16BIT, i2c_data_txbuf, 32, 1000);
vTaskDelay(500);
if (ret != 0) {
hosal_i2c_finalize(&i2c0);
blog_error("hosal i2c write failed!\r\n");
return;
}
- 通过
hosal_i2c_mem_read
接口从i2c从设备读数据。
ret = hosal_i2c_mem_read(&i2c0, CK_IIC_SLAVE_ADDR, EEPROM_PAGE_ADDR, HOSAL_I2C_MEM_ADDR_SIZE_16BIT, i2c_data_rxbuf, 32, 3000);
if (ret != 0) {
hosal_i2c_finalize(&i2c0);
blog_error("hosal i2c read failed!\r\n");
return;
}
- 通过
hosal_i2c_finalize
接口关闭i2c主设备。
ret = hosal_i2c_finalize(&i2c0);
if (ret != 0) {
blog_error("hosal i2c finalize failed!\r\n");
return;
}