[STM32F0] I2C读EEPROM偶尔挂起,时钟停在低电平

[复制链接]
152|10
Uriah 发表于 2025-10-7 07:26 | 显示全部楼层 |阅读模式
用I2C访问24C02时,偶尔会卡死在busy状态,时钟线保持低电平。看起来像总线死锁。加了软件复位函数有时能恢复,有时不行。逻辑分析仪上SCL一直没拉高。
Clyde011 发表于 2025-10-7 07:29 | 显示全部楼层
你可以抓波形看ACK信号是不是异常。
公羊子丹 发表于 2025-10-7 07:37 | 显示全部楼层
我以前也遇过,EEPROM拉低SDA时间太长。
周半梅 发表于 2025-10-7 07:38 | 显示全部楼层
试下加超时检测,强制I2C重新初始化。
帛灿灿 发表于 2025-10-7 07:39 | 显示全部楼层
SCL被拉低多半是器件没释放。
童雨竹 发表于 2025-10-7 07:40 | 显示全部楼层
F0的I2C驱动有时候也不太稳定。
万图 发表于 2025-10-7 07:41 | 显示全部楼层
我建议在上电初始化前发几个空时钟。
Wordsworth 发表于 2025-10-7 07:42 | 显示全部楼层
有可能是多主模式配置不当。
Bblythe 发表于 2025-10-7 07:43 | 显示全部楼层
看下上拉电阻值够不够大。
Pulitzer 发表于 2025-10-7 07:44 | 显示全部楼层
我当时改用软件I2C反而更稳。
 楼主| Uriah 发表于 2025-10-7 07:45 | 显示全部楼层
死锁确实烦,有时候得断电重启。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

158

主题

6218

帖子

1

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