工具/软件:
大家好、我当前正在使用 MSPM0 G3507。i2c 驱动程序指示 i2c 总线繁忙、但寄存器窗口显示它处于空闲状态。 此外、SDA 和 SCL 线路的物理状态也是空闲状态。 但是、当我们释放运行时、API 调用会继续返回 BUSY 状态。 i2c 波特率为400kbs、并使用自动发送启动和停止的控制器传递函数。 在映像 i2cBusy 中、GPIO 切换应该是为了等待数据完全传输、但情况失败。 如果 i2c 是否为总线、则使用 MSR 寄存器中的 BUSY 位。 下面附加了代码 snipet。 在 while (DL_I2C_getControllerStatus (I2C0_INST)和)之前引入10us 的小延迟
DL_I2C_CONTROLLER_STATUS_BUSY_BUS)可解决该问题。 但需要了解为什么会发生这种情况。