本帖最后由 whatcall 于 2020-12-2 12:08 编辑
如题,当我们连续写入EEPROM数据时,如果重新向EEPROM发送数据:START | EEPROM器件地址+Write位,EEPROM会因为内部在执行数据更新而无法及时接收数据,此时会返回NACK(即在传输的第9个bit不拉低SDA)。目前MM32F030的例程并没有处理这一种情况,基本上是利用延时来解决的。 但是延时的做法存在一定的弊端:(1)不能最大化地利用EEPROM的性能;(2)当EEPROM出现其他故障时,也无法确认写操作的完成。
不知道有没有朋友深入研究过这种情况的处理方法?STM32和HC32均有NACK的检测机制,可以很容易地检测到NACK和ACK的状态。 |