请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
器件型号:CCStudio 工具/软件:Code Composer Studio
根据"CSL_I2C_PollExample"、我正在使用 CSL I2C 写入和读取函数。
C5517器件、Ic55_CSL_3.04与 CCS5。
我注意到 CSL 函数处理开始和停止、但查看 CSL_i2c.c 文件中的代码、我觉得它会将 ICMDR 寄存器中的 START 和 STOP 位置为有效。 阅读 C5517参考手册、我了解一旦数据 I2C 数据寄存器为0 (传输所有数据)、就会发送停止位。
我的问题是:如果发生超时或 NACK (从器件无响应)、会发生什么情况? 如何处理超时/ NACK 条件? 我对此进行了测试、并使用示波器看到、一旦发生 NACK 或超时、SCL 保持低电平、BUSY 位= 1 (这是因为未发送停止条件!)。
我需要使用 I2C 轮询模式。
谢谢、
Stefano