传输到主机时,I2C 从机是否允许 NACK?
从规范 (2.1) 看来,从机实际上无法在传输时向主机发送 NACK,即将数据从从机发送到主机。我已经在网上搜索过,但在这里找不到任何帮助。
为什么?我正在 AVR Atmega8 中实现一个 I2C 主设备。我想涵盖所有用例。我有一个用户注意到,当 I2C 从设备在 SLA+R 模式下发送 NACK 时,主设备会忽略它。
据我所知,发起 SLA+R 的主设备是唯一允许 NACK 数据包的一方。从设备必须继续在主时钟上发送数据包。但是,Arduino 线库中的一个片段暗示从设备可以向主设备发送 NACK。 https://github.com/arduino/Arduino/blob/master/libraries/Wire/utility/twi.c#L503