Flash擦除后数据为什么会变NaN
一句话: Flash 擦除后全是 0xFF当 float 读出来是 NaN。NaN 转整型行为未定义——可能是 0也可能是满量程。如果这个值直接写 DAC 控制电流或电压器件可能在几秒内烧毁。适合谁读用 Flash 存配置参数、模拟 EEPROM 的嵌入式开发者。0xFF 是怎么变成 NaN 的Flash 擦除后每位都是 1。四个字节连起来是0xFFFFFFFF。如果代码里把这块 Flash 当成float来读float fVal *(float*)flash_data; // 0xFFFFFFFF → NaNIEEE 754 标准里0xFFFFFFFF正好落在 NaN 的编码范围内。读出来不是 0不是很大的数是不存在的东西。NaN 的意思是 Not a Number——它确实不是任何数字。转整型的灾难如果接下来把 NaN 转成整型写 DACuint16_t dacCode (uint16_t)(fVal * SCALE); // NaN * anything ?NaN 参与的运算结果还是 NaN。NaN 强转整型的行为在 C 标准里是未定义的。ARMCC 可能给 0GCC 可能给一个很大的数同一编译器换优化等级结果都可能不一样。如果是 0——万幸DAC 输出 0安全。如果是满量程 4095——DAC 输出满量程电流器件可能几秒烧毁。测十次十次都是 0第十一次换个优化等级就炸。这不是 Bug是未定义行为。不止 FlashNaN 陷阱不限于 Flash。任何数据还没初始化就被读的场景都可能触发场景怎么产生 NaN后果Flash 擦除后未写0xFFFFFFFF → NaN随机 DAC 值结构体未初始化就读取栈上残留值随机配置参数通信超时没收到数据缓冲区旧值过期的命令参数传感器断线ADC 读到浮空值虚假的测量值本质上都是同一个问题把不确定的值当成有效值用了。怎么防1. Flash 预写安全默认值上板第一步往所有配置区写最小安全值。就算意外读取输出也在阈值以下。2. 读出来先判有效性float fVal ReadFlashFloat(addr); if (isnan(fVal) || isinf(fVal)) { fVal SAFE_DEFAULT; // 读坏了用默认值 }isnan()和isinf()是math.h标准函数一行的事。3. 任何从 Flash 读出的值先做范围检查if (dacCode MIN_VALID || dacCode MAX_VALID) { dacCode SAFE_DEFAULT; }三条规则五秒写完。比烧一颗器件便宜。有用的话点个收藏下次调试直接用。有问题欢迎评论区交流看到了都会回。

相关新闻

Unity Animator参数实战:Bool、Trigger、Float核心用法与游戏案例解析

Unity Animator参数实战:Bool、Trigger、Float核心用法与游戏案例解析

1. 项目概述:从“背参数”到“玩转参数”的思维跃迁如果你在Unity开发中,尤其是涉及到角色动画、UI交互或者任何需要状态切换的地方,还在对着Animator Controller里那些Bool、Trigger、Float参数列表死记硬背,那说明你可能还没真正…

2026/10/18 10:01:16 阅读更多 →
手画图形自动修正HTML

手画图形自动修正HTML

仅在于其形式转载商用利用AI模型识别您绘制的形状&#xff0c;并将其修正为标准的几何图形。html<!DOCTYPE html><html lang"zh-CN"><head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-wid…

2026/10/18 10:01:19 阅读更多 →
结点电压法保姆级教程

结点电压法保姆级教程

一句话: 结点电压法用更少的方程、更统一的套路直接求各点电位。不堆公式推导——核心模板就一句话&#xff0c;加上四步操作&#xff0c;复杂电路变成填空题。适合谁读&#xff1a;被支路电流法列方程列到头晕的电路初学者。万能公式 结点电压法的本质是基尔霍夫电流定律&…

2026/10/17 15:36:28 阅读更多 →

最新新闻

摩天大楼电梯仿真:从建模到调度的完整实践指南

摩天大楼电梯仿真:从建模到调度的完整实践指南

简介&#xff1a;基于Java实现的摩天大楼电梯类型与调度算法仿真项目&#xff0c;模拟真实电梯运行&#xff0c;覆盖单向、双向、观光、高速、消防等电梯建模&#xff0c;并实现FCFS、最近楼层优先、最少行程时间、预调度和群控算法。通过随机生成乘客流量&#xff0c;可对比不…

2026/10/18 10:15:41 阅读更多 →
Pin-to-Pin替代CLRC663实战:从选型到量产的嵌入式硬件迁移复盘

Pin-to-Pin替代CLRC663实战:从选型到量产的嵌入式硬件迁移复盘

1. 从一次被迫的芯片迁移说起做嵌入式硬件这行的朋友&#xff0c;大概都经历过那种“半夜被供应链电话叫醒”的时刻。前两年全球缺芯潮最凶的时候&#xff0c;我手上一个量产了两年的读卡器项目&#xff0c;主控用的就是那颗经典的 CLRC663。这颗芯片在13.56MHz近场通信领域算是…

2026/10/18 10:15:41 阅读更多 →
AI辅助毕业论文全流程:从选题到降重排版的实用指南

AI辅助毕业论文全流程:从选题到降重排版的实用指南

每年三月一过&#xff0c;私信里问论文的人肉眼可见地多起来。有的说选题被导师否了三次&#xff0c;有的说文献综述写得像读书笔记&#xff0c;还有的更直接&#xff1a;格式改了六遍&#xff0c;学校查重平台的红字还是密密麻麻。今年我的回复里多了一个固定动作——把Paperx…

2026/10/18 10:15:41 阅读更多 →
庖丁解牛式危机应对:拆解四层结构,用最小切口重启人生

庖丁解牛式危机应对:拆解四层结构,用最小切口重启人生

说实话&#xff0c;我第一次读庄子《庖丁解牛》时&#xff0c;注意力全被那把用了十九年还像新磨出来一样的刀吸引住了。一个厨子&#xff0c;不砍骨头&#xff0c;不硬碰硬&#xff0c;只是一刀一刀顺着牛身体的自然纹理滑进去&#xff0c;游刃有余。后来我才意识到&#xff0…

2026/10/18 10:15:41 阅读更多 →
具身智能巡检机器人:工业场景下的选型与实践指南

具身智能巡检机器人:工业场景下的选型与实践指南

1. 从一次现场调研说起&#xff1a;工业巡检到底卡在哪去年在某个沿海化工园区的控制室里&#xff0c;我盯着DCS报警灯看了一下午&#xff0c;旁边安全员端着保温杯念叨同一句话&#xff1a;"白天跑不完&#xff0c;夜里不敢睡。"巡检这活儿&#xff0c;人干不好、机…

2026/10/18 10:15:41 阅读更多 →
KV Cache全解析:大模型推理显存计算与长上下文优化实战

KV Cache全解析:大模型推理显存计算与长上下文优化实战

我的大模型学习记录写到第六篇了。前几篇从tokenizer一路折腾到Transformer结构&#xff0c;又从预训练聊到指令微调&#xff0c;自以为对“大模型是怎么工作的”已经有点感觉了。直到上周试着把某个7B开源模型在本地跑起来&#xff0c;输入一段2K字的长文本让它做摘要&#xf…

2026/10/18 10:14:40 阅读更多 →

日新闻

基于GMM的语音识别系统原理与MATLAB实现详解

基于GMM的语音识别系统原理与MATLAB实现详解

说到基于高斯混合模型&#xff08;GMM&#xff09;的语音识别系统&#xff0c;很多人第一反应就是一堆数学公式&#xff0c;觉得门槛很高。但如果你真的在MATLAB里把它落地跑通&#xff0c;会发现核心其实就是三件事&#xff1a;把声音变成特征向量&#xff0c;用GMM给每个类别…

2026/10/18 0:00:55 阅读更多 →
数字图像处理入门:反白、灰度化、调色板修改与导出txt实践

数字图像处理入门:反白、灰度化、调色板修改与导出txt实践

数字图像处理这四个字听起来挺唬人&#xff0c;但落到具体操作上&#xff0c;无非就是让计算机按你的想法“摆弄”像素。我在一个模拟项目X里用了一套特别经典的基础处理流程&#xff1a;对图像做反白、改调色板、彩色转灰度&#xff0c;最后把像素数据导出成txt文件。单看每一…

2026/10/18 0:00:55 阅读更多 →
机器人大脑技术盘点:具身智能的感知、决策与数据闭环

机器人大脑技术盘点:具身智能的感知、决策与数据闭环

如果你的信息流最近也天天刷到“机器人大脑”这个词&#xff0c;你会发现一个很有意思的现象&#xff1a;每个人说的“大脑”根本不是同一个东西。有人指的是大语言模型&#xff0c;有人指的是运动控制系统&#xff0c;还有人指的是能理解物理世界的端到端模型。在2026年这个时…

2026/10/18 0:00:55 阅读更多 →

周新闻

基于GMM的语音识别系统原理与MATLAB实现详解

基于GMM的语音识别系统原理与MATLAB实现详解

说到基于高斯混合模型&#xff08;GMM&#xff09;的语音识别系统&#xff0c;很多人第一反应就是一堆数学公式&#xff0c;觉得门槛很高。但如果你真的在MATLAB里把它落地跑通&#xff0c;会发现核心其实就是三件事&#xff1a;把声音变成特征向量&#xff0c;用GMM给每个类别…

2026/10/18 0:00:55 阅读更多 →
数字图像处理入门:反白、灰度化、调色板修改与导出txt实践

数字图像处理入门:反白、灰度化、调色板修改与导出txt实践

数字图像处理这四个字听起来挺唬人&#xff0c;但落到具体操作上&#xff0c;无非就是让计算机按你的想法“摆弄”像素。我在一个模拟项目X里用了一套特别经典的基础处理流程&#xff1a;对图像做反白、改调色板、彩色转灰度&#xff0c;最后把像素数据导出成txt文件。单看每一…

2026/10/18 0:00:55 阅读更多 →
机器人大脑技术盘点:具身智能的感知、决策与数据闭环

机器人大脑技术盘点:具身智能的感知、决策与数据闭环

如果你的信息流最近也天天刷到“机器人大脑”这个词&#xff0c;你会发现一个很有意思的现象&#xff1a;每个人说的“大脑”根本不是同一个东西。有人指的是大语言模型&#xff0c;有人指的是运动控制系统&#xff0c;还有人指的是能理解物理世界的端到端模型。在2026年这个时…

2026/10/18 0:00:55 阅读更多 →

月新闻

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/18 0:55:02 阅读更多 →
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/17 17:22:31 阅读更多 →
黑夜航拍船只数据集训练YOLOV5模型全流程解析

黑夜航拍船只数据集训练YOLOV5模型全流程解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/16 14:23:36 阅读更多 →