使用I2C EEPROM时偶发写入失败,像没等写周期结束
写AT24C02时偶尔失败,重新上电后那段数据全是0xFF。我用HAL库写入后延时5ms再读,理论上够了。是不是EEPROM内部写周期没等够?我以前的经验:延时+重试机制最稳。 AT24C02有时候要等7ms以上,5ms不一定稳。 建议用ACK polling,不要死延时。 我也被这个坑过几次,尤其在低温环境下更慢。 检查下供电电压是不是在临界点。 有时候I2C拉电阻太大也会影响ACK检测。 我看有些人干脆写两次确认,保险一点。 是不是在写满页时没处理页边界? HAL库对I2C的回调有点怪,可以自己改下。 用逻辑分析仪抓一抓波形,看ACK是否丢失。
页:
[1]