工具/软件:
您好、
我正在处理与 I2C 传感器的 I2C 通信、并尝试控制是否发出重新启动命令。
但从 driverlib 提供的以下函数中、无法控制这一点:
DL_I2C_startControllerTransfer()
DL_I2C_startControllerTransferAdvanced ()
我确实在 dl_i2c.h 上找到它、其中提到了重启:

但我在驱动程序和 TRM 中都找不到 WBLEN。
有人能帮助这个吗?
谢谢!
吊车
This thread has been locked.
If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.
工具/软件:
您好、
我正在处理与 I2C 传感器的 I2C 通信、并尝试控制是否发出重新启动命令。
但从 driverlib 提供的以下函数中、无法控制这一点:
DL_I2C_startControllerTransfer()
DL_I2C_startControllerTransferAdvanced ()
我确实在 dl_i2c.h 上找到它、其中提到了重启:

但我在驱动程序和 TRM 中都找不到 WBLEN。
有人能帮助这个吗?
谢谢!
吊车
如果这是一个简单的写后读取事务("寄存器"模型)、最简单的方法是使用 RD_ON_TXEMPTY 功能。 具体思路是:
1)设置 MCTR 中的 I2C_MCTR_RD_ON_TXEMPTY_ENABLE 位。
2)将写入部分(寄存器编号)放入 Tx FIFO 中
3)用 DL_I2C_startControllerTransfer ()启动读取部分( 不要计算长度中的 Tx FIFO 内容)。
I2C 单元将使用 Tx FIFO 内容执行写入传输、然后为读取传输发出重新启动。
Driverlib 提供了一个函数 DL_I2C_enableControllerReadOnTXEmpty ()来设置该位、但另请参阅: