工作笔记-----EEPROM偶发性读取错误

工作笔记-----AT24CM01偶发性读取异常及解决方法

@@ Author:明月清了个风

@@ Date:2025/11/24

@@ PS:记录一个项目中遇到的bug以及修复方法,虽然解决了但是不知道具体原因

@@ Version:First edited and published date

BUG现象描述

硬件:GD32F450ZI + AT24CM01

讲一下基本的流程,在上位机发送指令后持续从AT24CM01中读取数据计算后发送给FPGA,发现FPGA输出值不定期的归0,经过调试后发现是从AT24CM01中读取的float数据值为-nan

尝试的解决方案

经过断点调试发现,在输出任务运行过程中不定期的出现读取数据为0xFF的情况,记录读取出0XFF的地址,在上电后直接读取发现读取值正确,进入输出后对应地址读取错误,考虑是后级输出过程中导致的AT24CM01电压不稳定导致的读取错误,经测量后发现不是这个问题。

最后的解决方法

使用软件的方法进行解决,若发现读取值异常,即为-nan,则进行重读,但是仍然不知道为什么会读取出0XFF,每次读取的是4个字节,有时候一个字节变为0xFF,有时候4个都是,可能也有别的情况:

c 复制代码
int IsNAN(float val)
{
    return (val != val);
}

float get_value()
{
....
    for(int i = 0; i <  10; i ++)
    {
          EepromRead(addr, val, FLOAT_SIZE);
        Res = uf_L_Value.data_in_float;
        if(!IsNAN(Res))
        {
            break;
        } 
    }
...
}
相关推荐
深蓝海拓19 小时前
PySide6从0开始学习的笔记(二十七) 日志管理
笔记·python·学习·pyqt
xqqxqxxq19 小时前
Java Thread 类核心技术笔记
java·笔记
老师用之于民19 小时前
【DAY21】Linux软件编程基础&Shell 命令、脚本及系统管理实操
linux·运维·chrome·经验分享·笔记·ubuntu
iFeng的小屋19 小时前
【2026年新版】Python根据小红书关键词爬取所有笔记数据
笔记·爬虫·python
山岚的运维笔记19 小时前
SQL Server笔记 -- 第14章:CASE语句
数据库·笔记·sql·microsoft·sqlserver
宵时待雨19 小时前
STM32笔记归纳8:时钟
笔记·stm32·单片机·嵌入式硬件
JJRainbow20 小时前
SN75176 芯片设计RS-232 转 RS-485 通信模块设计原理图
stm32·单片机·嵌入式硬件·fpga开发·硬件工程
花月mmc21 小时前
CanMV K230 波形识别——整体部署(4)
人工智能·python·嵌入式硬件·深度学习·信号处理
宁静致远202121 小时前
STM32模拟IIC读取PCF8563
stm32·单片机·嵌入式硬件
三佛科技-1341638421221 小时前
宠物洗澡打泡机方案,宠物泡泡机MCU方案开发设计分享
单片机·嵌入式硬件·物联网·智能家居·pcb工艺·宠物