[STM32L0] I2C读EEPROM偶尔数据错位一字节,像被提前读了一样

[复制链接]
99|11
Wordsworth 发表于 2025-11-3 07:17 | 显示全部楼层 |阅读模式
做I2C读写24C02时,偶尔读出的数据从地址偏移1字节开始错误。逻辑分析仪显示ACK都正常。试过调延时和重复启动时序,还是偶发。
Clyde011 发表于 2025-11-3 07:21 | 显示全部楼层
逻辑分析仪上ACK正常不代表内部写完。
公羊子丹 发表于 2025-11-3 07:21 | 显示全部楼层
逻辑分析仪上ACK正常不代表内部写完。
周半梅 发表于 2025-11-3 07:22 | 显示全部楼层
我以前也遇过,最后是EEPROM没准备好。
帛灿灿 发表于 2025-11-3 07:23 | 显示全部楼层
可能是I2C驱动里状态机写得太快。
童雨竹 发表于 2025-11-3 07:24 | 显示全部楼层
我当时是加了10ms延时才正常。
万图 发表于 2025-11-3 07:25 | 显示全部楼层
可以读完后立刻再读一次看是否稳定。
 楼主| Wordsworth 发表于 2025-11-3 07:26 | 显示全部楼层
检查一下SCL的上拉是否足够强。
Bblythe 发表于 2025-11-3 07:28 | 显示全部楼层
也可能是DMA或者中断打断传输。
Pulitzer 发表于 2025-11-3 07:29 | 显示全部楼层
我觉得可以把读操作改成轮询模式测试。
Uriah 发表于 2025-11-3 07:30 | 显示全部楼层
EEPROM那种内部写周期挺影响时序的。
周半梅 发表于 2025-11-3 07:31 | 显示全部楼层
你加了Stop再Start了吗?某些型号必须停一下。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

185

主题

6413

帖子

1

粉丝
快速回复 在线客服 返回列表 返回顶部