工作笔记-----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;
        } 
    }
...
}
相关推荐
疯狂打码的少年2 小时前
【软件工程】软件开发模型:增量模型与迭代模型
笔记·软件工程
Generalzy2 小时前
从本地 Demo 到生产级检索:Milvus 学习笔记(3)
笔记·学习·milvus
ACP广源盛139246256732 小时前
IX8024 PCIe4.0 交换芯片@ACP# RK3588:嵌入式 AI PC 标准化扩展方案
大数据·人工智能·分布式·单片机·嵌入式硬件
传感器与混合集成电路3 小时前
面向精密伺服控制的PWM驱动技术:36路PWM同步控制、死区管理与HRPWM精细调节的工程实现
嵌入式硬件
淘晶驰AK3 小时前
组态屏上车,三分钟解决卡线
单片机·嵌入式硬件
wuyk5553 小时前
38.什么是C语言?从语法到工程落地的工程师视角解读
c语言·开发语言·stm32·单片机·mcu·51单片机
老吴胡编3 小时前
eknife 2026.07.10 v0.0.6 更新 —— 支持文件加解密
嵌入式硬件·个人开发
bobuddy4 小时前
Zeta 变换器电路
嵌入式硬件
凉、介4 小时前
Virtio 系列(一):框架概览
笔记·学习·嵌入式·虚拟化·virtio
浅止菌5 小时前
性能瓶颈找不到?ftrace+perf组合拳,5分钟定位内核问题
嵌入式硬件