主题中讨论的其他器件:UCD90120A
我正在开发 I2C 写入函数、以参考线程将数据写入 UCD90120A
但是、除非我添加如下所示的延迟、否则我无法使代码正常工作
--***** ----
内部
I2C_Single_Write (uint8_t ui8Command、uint8_t ui8Data)
{
// while (!I2CMasterBusy (I2C1_base)); //检查 I2C 主设备是否忙,因此等待
uint32_t 错误;
I2CMasterSlaveAddrSet (I2C1_base、UCD_I2Cadr、false);// ucd addr 从器件
I2CMasterDataPut (I2C1_base、ui8Command);//将命令放置到 I2C1
I2CMasterControl (I2C1_base、I2C_MASTER_CMD_BURST_SEND_START);//发送
SysCtlDelay(1);
while (I2CMasterBusy (I2C1_base)); //检查 I2C 主设备是否占线、因此等待
I2CMasterDataPut (I2C1_base、ui8Data);//将数据放入 I2C1
I2CMasterControl (I2C1_base、I2C_MASTER_CMD_BURST_SEND_FINISH);//发送
SysCtlDelay(1);
while (I2CMasterBusy (I2C1_base)); //检查 I2C 主设备是否占线、因此等待
返回0;
}
------
这样做的原因可能是什么?