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.

[参考译文] TM4C123GH6PZ:当从器件地址被 NACK 时、为什么要发送一个数据字节?

Guru**** 1811880 points
请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/962375/tm4c123gh6pz-why-is-a-data-byte-transmitted-when-slave-address-is-nacked

器件型号:TM4C123GH6PZ

在调试 I2C 主设备代码时、我观察到、当我向不存在的从设备发起读取或写入操作时、地址字节被正确设置(在示波器上可见、在 I2CMCS 中设置 ADRACK)、但数据字节仍被传输(在示波器上也可见)。 如果从器件地址被 NACK、那么发送数据字节的行为是否正确?

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好 Doug、

     状态机可能在看到 NACK 之前启动了数据字节。 重要的是、I2C 主设备必须在接收到 NACK 后生成一个停止条件、以中止当前传输。 您是否看到生成的停止?

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    查尔斯

    是的、我看到数据字节被 NACK 后会停止、尽管我希望在地址被 NACK 后会生成 STOP。 我不认为我正在寻址的 I2C 从器件会关心数据字节是否被发送、如果数据字节丢失了自己的地址。 我的主要问题是我已正确配置了微控制器的 I2C 寄存器、我认为我已经配置了这些寄存器。 感谢您的帮助!

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好 Doug、

     是的、您已正确配置了寄存器。