您好!
我有一个客户遇到过、偶尔从 I2C RX 操作中接收到的字节比预期的少一个字节。 他们发现、STOP 中断有时会与最后一个 RX 中断同时置为有效、并且由于 I2C ISR 中的 STOP 条件中断具有更高的优先级、因此代码会在将最后一个字节从 RX 缓冲区加载到存储器之前退出。 由于这些消息的长度是可变的、它们一直使用 STOP 条件作为信号来退出 ISR、并使用设置了 RX DONE 标志将控制权返回给应用程序。 当然、采用此实现时、它们会在 RX 缓冲区中丢失一个字节。 这是否是两个 ISR 同时触发的预期行为? 它们目前正在手动检查 STOP 中断条件下是否存在 RXIFG 条件、但是否有办法避免将这两个中断同时置为有效?
Munan