使用示例

## 使用说明 ```language //该类型描述支持的 I2C 总线 id typedefenum { HAL_I2C_BUS_ID_1, HAL_I2C_BUS_ID_2, HAL_I2C_BUS_ID_3, HAL_I2C_BUS_ID_QTY, HAL_I2C_BUS_ID_INVALID = 0xff, } HAL_I2C_BUS_ID_T; PRIVATE HAL_I2C_BUS_ID_T g_camdI2cBusId = HAL_I2C_BUS_ID_2; UINT32 slaveAddr=0x26; UINT32 memAddr=0x10; UINT8 Data = 0x11; UINT8 *pData = {0}; UINT8 *p_data = “This is a test!”; //打开 I2C 模块并启用其 API。 If (!(HAL_ERR_NO == hal_I2cOpen(g_camdI2cBusId))) { AT_TC(10,"INFO: hal_I2cOpen failed"); return; } //使模块进入休眠状态 If(!hal_I2cSleep(g_camdI2cBusId)) { AT_TC(10,"INFO: hal_I2cSleep failed"); return; } //唤醒休眠的模块 hal_I2cWakeup(g_camdI2cBusId); AT_TC(10,"INFO: I2c has been wakened"); //单字节发送数据 If (!(HAL_ERR_NO ==hal_I2cSendByte(g_camdI2cBusId, slaveAddr, memAddr, Data))) { AT_TC(10,"INFO: hal_I2cSendByte failed"); return; } //单字节获取数据 If (!(HAL_ERR_NO ==hal_I2cGetByte(g_camdI2cBusId, slaveAddr, memAddr, pData))) { AT_TC(10,"INFO: hal_I2cGetByte failed"); return; } AT_TC(10,"INFO: hal_I2cGetByte Data=0x%x", *PData); //多字节数据发送 If (!(HAL_ERR_NO ==hal_I2cSendData(g_camdI2cBusId, slaveAddr, memAddr, strlen(p_Data))) { AT_TC(10,"INFO: hal_I2cSendData failed"); return; } //获取多字节数据 If (!(HAL_ERR_NO ==hal_I2cGetData(g_camdI2cBusId, slaveAddr, memAddr, 15))) { AT_TC(10,"INFO: hal_I2cGetData failed"); return; } AT_TC(10,"INFO: hal_I2cGetData P_Data = %s", p_Data); //关闭 I2c 模块 hal_I2cClose(g_camdI2cBusId); 输出 Trace 信息如下: AT 10 : [AT]>>“INFO: I2c has been wakened” AT 10 : [AT]>>“INFO: hal_I2cGetByte Data=0x11” AT 10 : [AT]>>“INFO: hal_I2cGetData P_Data = This is a test!” ```