您好!
我正在尝试通过 I2C 将 TMS570LC4357 (主设备)与 Arduino (从设备)进行通信。 Arduino 正在收到请求、正在发送三个字节、但微控制器未接收到这些字节。
我知道通信正常、因为我能够使用 sendByte 函数向 Arduino 发送数据(由于某些原因、i2cSend 无法正常工作)、但我无法接收数据。
这是我的代码:
uint8 * r_buff =&RX_Pack[0];
uint32 buf_size = bsize;
uint32 i = 0;
i2cInit();
while (i2cIsMasterReady (i2cREG2)!= true);
i2cSetSlaveAdd (i2cREG2、SLAVE_ADDRESS);//对于 I2C1、主器件
i2cSetDirection (i2cREG2、I2C_RECEIVER);
i2cSetCount (i2cREG2、3);
i2cSetMode (i2cREG2、I2C_MASTER);
i2cSetStop (i2cREG2);
i2cSetStart (i2cREG2);//仅适用于主器件
/*轮询模式下的 Transmit data_count 数据数量*/
i2cReceive (i2cREG2、3、&RX_PACK[0]);
/*等待总线忙被清除*/
while (i2cIsBusy (i2cREG2)=true);
i2cClearSCD (i2cREG2);
在这种情况下、它停留在 i2cIsMasterReady 语句中。 如果我删除这一行、它将一直到主代码的末尾、但没有接收到任何数据。
SDA 和 SCL 相互连接。
感谢你的帮助。 此致、
塞尔吉奥