[STM32F1] F1写Flash有时候写进去有偏差?

[复制链接]
 楼主| 帛灿灿 发表于 2025-6-18 07:21 | 显示全部楼层 |阅读模式
我用HAL写Flash,写进去的值偶尔不是我给的那个,断电重启后就能看到写错了。
Clyde011 发表于 2025-6-18 07:26 | 显示全部楼层
Flash擦写次数多了就不靠谱了,小心用寿命。
公羊子丹 发表于 2025-6-18 07:26 | 显示全部楼层
Flash写之前先擦了吗?不能直接覆盖。
周半梅 发表于 2025-6-18 07:27 | 显示全部楼层
电源不稳的时候写Flash会出错的。
 楼主| 帛灿灿 发表于 2025-6-18 07:28 | 显示全部楼层
看下写保护是不是没关?
童雨竹 发表于 2025-6-18 07:29 | 显示全部楼层
写完要不要再读回来校验一下?
万图 发表于 2025-6-18 07:30 | 显示全部楼层
写Flash不能中断,注意屏蔽中断。
Wordsworth 发表于 2025-6-18 07:30 | 显示全部楼层
写地址是不是没对齐?F1对齐很严格。
Bblythe 发表于 2025-6-18 07:31 | 显示全部楼层
写多了有可能Flash磨损,换段地址试试。
Pulitzer 发表于 2025-6-18 07:32 | 显示全部楼层
HAL库封装的写函数有坑,我后来用寄存器写的。
Uriah 发表于 2025-6-18 07:33 | 显示全部楼层
写的速度快了也会写不进去,延时试试。
麻花油条 发表于 2025-6-18 16:46 | 显示全部楼层
Flash 擦除操作不正确?
flycamelaaa 发表于 2025-6-18 18:00 | 显示全部楼层
STM32 Flash 存储器在写入新数据前必须先擦除原有数据,若擦除操作未完成或未按页/扇区正确执行,可能导致数据覆盖时出现残余信息。
powerantone 发表于 2025-6-18 19:00 | 显示全部楼层
在写入前检查数据长度是否符合页对齐要求,如果不符,需填充至整页后再写入。例如,若要写入一个字节的数据,可先将其扩展为半字,再写入。
stormwind123 发表于 2025-6-18 19:00 | 显示全部楼层
可能系统时钟不稳定或电源电压波动。
probedog 发表于 2025-6-18 20:30 | 显示全部楼层
增加滤波电容,减少电源噪声的影响。
jcky001 发表于 2025-6-18 22:00 | 显示全部楼层
Flash 存储器有一定的擦写寿命限制,频繁的擦写操作可能导致某些存储单元失效,影响数据完整性。
cr315 发表于 2025-6-18 22:00 | 显示全部楼层
选择高质量的 Flash 芯片以延长使用寿命。
classroom 发表于 2025-6-25 21:00 | 显示全部楼层
在 Flash 操作期间关闭全局中断,或者使用互斥锁机制避免中断干扰。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

149

主题

5848

帖子

0

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