你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

stm32H7 FLASH写入后数据异常 求教

[复制链接]
Wonsharcy 提问时间:2026-3-27 09:31 / 未解决

stm32H7 FLASH 写入异常

函数接口

写入接口HAL_FLASH_Program_IT(FLASH_TYPEPROGRAM_FLASHWORD, address, data_addr);

链式写入回调接口void HAL_FLASH_EndOfOperationCallback(uint32_t ReturnValue),用来触发下一次中断写入

问题描述(偶现)

链式写入1024字节数据包,在每次回调函数中HAL_FLASH_EndOfOperationCallback读取上一次写入区域并和缓存比较判断是否写入成功,并触发下一次HAL_FLASH_Program_IT

在上述过程中未监测到异常且未监测到写入内容FLASH字全为FF的情况下,在整包校验时读取刚才写入的1024字节内容,会出现随机位置FLASH字全为FF的异常情况。

收藏 评论2 发布时间:2026-3-27 09:31

举报

2个回答
xmshao 回答时间:昨天 10:42

你确保flash编程时遵循了相应编程及对齐方式,STM32H7系列有4字编程模式【STM32H7A/7B】 ,也有8字编程模式。

再就是注意FLASH写的时候将ICACHE关闭,写完之后再打开。

在校验时建议将Dcahce也关闭,防止DCache与实际数据不一致的问题。

butterflyspring 回答时间:昨天 11:13
可以尝试在执行擦写前设置一个按键开关。

这样发现异常时通过Stm32cubeProgrammer 去看一看是否是真的有FF字节。
从而定位问题是发生在前面写入部分还是后面全局校验部分,缩小调查范围。

测试时注意写入时,减少其他中断避免意外修改。测试次数也要有大概限制,毕竟FLASH 擦写是有寿命次数的。

所属标签

相似问题

官网相关资源

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32N6 AI生态系统
STM32MCU,MPU高性能GUI
ST ACEPACK电源模块
意法半导体生物传感器
STM32Cube扩展软件包
关注我们
st-img 微信公众号
st-img 手机版