请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
器件型号:CC2640R2F 主题中讨论的其他器件:TMP1075
工具/软件:Code Composer Studio
您好!
我正在使用 TMP1075的 I2C 示例代码。
I2C 正常工作、或者我只是读取传感器的器件 ID。
我正在使用以下方法、但未获得正确的器件 ID。
有人能帮我解决这个问题吗?
#include #include #include /*驱动程序头文件*/ #include #include #include /*示例/板头文件*/ #include "Board.h" #define TASKSTACKSIZE 640 #define TMP1075_ADDR 0x48 #define DEVICE_ID_REG 0x0F /*器件 IDRegister */ #ifndef Board_TMP_ADDR #define Board_TMP_ADDR TMP1075_ADDR #endif static Display_Handle display; // *=== mainThread ==== // void * mainThread (void * arg0) { uint8_t txBuffer[8]; uint8_t rxBuffer[8]; I2C_Handle i2c; static I2C_Params i2cParams; //调用驱动程序初始化函数*/ Display_init (); //打开主机显示屏以输出**/ display = Display_open (i2C_init); // if init*(i2C_params = NULL);*(i2C_init);(i2C_init);// if) i2cParams.bitrate = I2C_100kHz; i2cParams.transferMode = I2C_MODE_BLOCKING; i2c = I2C_OPEN (Board_I2C_TMP、&i2cParams); if (i2c =NULL) { Display_printf (display、0、0、"Error Initializing I2C\n"); while (1); } 否则 { Display_printf (display、0、0、"I2C initialized!\n"); } txBuffer[0]= device_ID_REG; i2cTransaction.slaveAddress = Board_TMP_ADDR; i2cTransaction.writeBuf = txBuffer; i2cTransaction.readBuf = rxBuffer; i2cTransaction = writeCount; i2cTransaction.ReadCount = 2; for (;;) { I2C_transfer (i2c、&i2cTransaction); Display_printf (display、0、0、"设备 ID:%x %x"、rxBuffer[0]、rxBuffer[1]); Sleep (1); }