[STM32F0] I2C读EEPROM每次都要掉电重启才成功

[复制链接]
 楼主| Bblythe 发表于 2025-6-10 07:24 | 显示全部楼层 |阅读模式
程序跑起来第二次读就挂住,只有断电后才恢复正常。
Clyde011 发表于 2025-6-10 07:28 | 显示全部楼层
上拉电阻要选对,不然时序乱。
公羊子丹 发表于 2025-6-10 07:29 | 显示全部楼层
看看是不是停止信号没发好?
周半梅 发表于 2025-6-10 07:30 | 显示全部楼层
有的EEPROM要等写完成才能再读。
帛灿灿 发表于 2025-6-10 07:31 | 显示全部楼层
I2C线拉太长信号反射严重。
童雨竹 发表于 2025-6-10 07:31 | 显示全部楼层
用逻辑分析仪抓一下总线行为更直观。
万图 发表于 2025-6-10 07:32 | 显示全部楼层
EEPROM型号是哪一款?有些兼容问题挺多。
Wordsworth 发表于 2025-6-10 07:33 | 显示全部楼层
CubeMX生成的代码有坑,我改了不少。
 楼主| Bblythe 发表于 2025-6-10 07:34 | 显示全部楼层
开启ACK检测看看有没有应答失败。
Pulitzer 发表于 2025-6-10 07:35 | 显示全部楼层
看下是不是初始化跑了两次。
Uriah 发表于 2025-6-10 07:35 | 显示全部楼层
从机地址是不是8位还是7位设错了?
内政奇才 发表于 2025-6-10 16:51 | 显示全部楼层
I2C未正确初始化?
flycamelaaa 发表于 2025-6-10 17:00 | 显示全部楼层
时钟配置不稳定?
uytyu 发表于 2025-6-15 21:19 | 显示全部楼层
缩短走线长度或添加总线缓冲器              
jimmhu 发表于 2025-6-16 09:32 | 显示全部楼层
写操作时序:
发送起始信号→设备地址(写)→ACK→内存地址→ACK→数据→停止信号
等待写周期完成(典型 5ms,需延时后再操作)
读操作时序:
发送起始信号→设备地址(写)→ACK→内存地址→ACK
重复起始信号→设备地址(读)→ACK→读取数据→NACK→停止信号
i1mcu 发表于 2025-6-16 10:57 | 显示全部楼层
EEPROM 写周期约 5ms,未等待完成即读取
sdCAD 发表于 2025-6-16 12:45 | 显示全部楼层
电源不稳定或者电源噪声可能会导致EEPROM工作不正常。
linfelix 发表于 2025-6-16 16:57 | 显示全部楼层
优化软件逻辑              
1988020566 发表于 2025-6-16 17:34 | 显示全部楼层
断开I2C总线上其他设备              
belindagraham 发表于 2025-6-16 18:03 | 显示全部楼层
排查EEPROM状态              
您需要登录后才可以回帖 登录 | 注册

本版积分规则

145

主题

5747

帖子

1

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