[STM32F0] I2C偶尔卡死不响应

[复制链接]
594|16
Wordsworth 发表于 2025-8-12 07:16 | 显示全部楼层 |阅读模式
和EEPROM通信时,I2C有时会卡住不动,调试口也没反应。
Clyde011 发表于 2025-8-12 07:21 | 显示全部楼层
STM的硬件I2C有时要重置寄存器
公羊子丹 发表于 2025-8-12 07:21 | 显示全部楼层
可能是设备没释放SDA线
周半梅 发表于 2025-8-12 07:22 | 显示全部楼层
我一般在代码里加总线复位
帛灿灿 发表于 2025-8-12 07:23 | 显示全部楼层
有些EEPROM写周期太长
童雨竹 发表于 2025-8-12 07:24 | 显示全部楼层
用超时机制重启I2C比较保险
万图 发表于 2025-8-12 07:25 | 显示全部楼层
是不是多主机冲突了
Bblythe 发表于 2025-8-12 07:26 | 显示全部楼层
线太长容易有毛刺干扰
 楼主| Wordsworth 发表于 2025-8-12 07:27 | 显示全部楼层
加上上拉电阻大一点的试试
Pulitzer 发表于 2025-8-12 07:28 | 显示全部楼层
用逻辑分析仪抓下出问题那一刻
Uriah 发表于 2025-8-12 07:29 | 显示全部楼层
我遇到过一次是因为电源不稳
豌豆爹 发表于 2025-8-13 14:58 | 显示全部楼层
上拉电阻配置不当如过大或虚焊会导致信号不稳定。
duo点 发表于 2025-8-13 14:59 | 显示全部楼层
电源噪声或电压波动可能干扰I2C通信
onlycook 发表于 2025-8-13 14:59 | 显示全部楼层
可能是EEPROM地址配置错误或与其他设备冲突。
内政奇才 发表于 2025-8-13 15:00 | 显示全部楼层
可能是主机时钟频率超过EEPROM支持范围,或未设置超时导致死等。
海滨消消 发表于 2025-8-13 15:01 | 显示全部楼层
可能是中断未及时响应或DMA传输冲突导致卡死。
豌豆爹 发表于 2025-8-13 15:01 | 显示全部楼层
在中断服务函数中清除所有事件标志。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

177

主题

6295

帖子

1

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