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;
}