主题中讨论的其他器件:HALCOGEN、 TMP468
工具/软件:Code Composer Studio
您好!
我对 i2c 非常陌生、对使用主器件从从器件读取内容有了一定的了解、但我正在努力成功地对伪代码进行编码。
我想使用 TMS50ls1227PGE 的 i2c 总线读取 TI TMP468上的本地温度传感器。 我已经启用了 i2c 驱动器、pinmux、并在 HalCoGen 中启用了所有 i2c 中断。
在 CCS 中、我在 FreeRTOS 任务中键入了以下代码(我在 main 中键入了 i2cInit()):
/*将方向设置为接收器*/ i2cSetDirection (i2cREG1、I2C_transmitter); i2cSetMode (i2cREG1、I2C_MASTER); i2cSetSlaveAdd (i2cREG1、0b1001000); i2cSetStart (i2cREG1);//开始位 i2cSendByte (i2cREG1、0b10010000);//写入地址1001000、温度传感器的地址 i2cSendByte (i2cREG1、0b00000000);//内部温度传感器位于寄存器0 i2cSetStart (i2cREG1);//重新发送开始位 i2cSendByte (i2cREG1、0b10001);//从器件1001000读取 while (i2cIsRxReady (i2cREG1)){};//等待清零 i2cSetDirection (i2cREG1、I2C_receiver);//设置 i2c 以接收数据 数据= i2cReceiveByte (i2cREG1);//从寄存器接收字节 i2cSetStop (i2cREG1);//发送停止位
我在我的数据变量中看不到任何活动、当我调试时、代码始终停留在 i2cSendByte 的内部"while ((i2c->STR &(uint32) I2C_TX_INT)=0U"
我不确定从哪里来、有什么想法或明显的错误?
谢谢!