请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
器件型号:TMS570LC4357 我们使用的 IC (PCA9654E)在写入命令字节和从寄存器读取结果值之间需要重复的开始条件-不停止-。

这是我为此而调用的代码。 请注意、为了节省空间、我已经在这里删除了等待繁忙总线等的代码。 (当从专门写入或读取总线上字节的函数调用时、这些函数可以正常工作)。
inline int i2cSendGetBytes(uint8_t slaveId, uint32_t out_length, uint8_t *out_data,
uint32_t in_length, uint8_t *in_data) {
i2cBASE_t *i2c = i2cREG1;
i2cSetMode(i2c, I2C_MASTER | I2C_REPEATMODE);
i2cSetSlaveAdd(i2c, slaveId);
i2cSetDirection(i2c, I2C_TRANSMITTER);
i2cSetStart(i2c);
//WaitForTxReady Here
i2cSend(i2c, out_length, out_data);
//WaitWhileBusy Here
//WaitForMasterReady Here
i2cSetMode(i2c, I2C_MASTER);
i2cSetSlaveAdd(i2c, slaveId);
i2cSetDirection(i2c, I2C_RECEIVER);
i2cSetCount(i2c, in_length);
i2cSetStart(i2c);
//WaitForRxReady Here
i2cReceive(i2c, in_length, in_data);
// WaitWhileBusy Here
// WaitForStop here
//WaitForMasterReady here
i2cSetStop(i2c);
}
这是通用算法吗? 除了读取操作中的0x00、我永远不会得到任何东西。 我怀疑我没有设置模式或状态。
