[STM32G4] 写FLASH失败

[复制链接]
4350|28
帛灿灿 发表于 2025-3-16 07:54 | 显示全部楼层
HAL_FLASH_Unlock() 和 HAL_FLASH_Lock() 需要确保调用正确,特别是在操作之前和之后清除相关标志。
童雨竹 发表于 2025-3-16 07:55 | 显示全部楼层
你可以检查一下 STM32 的 Option Bytes,看是否启用了某些写保护或者限制了 Flash 编程。
万图 发表于 2025-3-16 07:56 | 显示全部楼层
在 Flash 写入之前确保没有其他中断打断操作,尤其是优先级比较高的中断。
Wordsworth 发表于 2025-3-16 07:57 | 显示全部楼层
试试将 Key_Flash 改为某个明确的地址值,看是否是因为使用了 &Key_Flash 导致的问题。
Bblythe 发表于 2025-3-16 07:58 | 显示全部楼层
可以试着将数据写入不同的 Flash 区域,确认是不是区域本身的访问权限问题。
Pulitzer 发表于 2025-3-16 07:59 | 显示全部楼层
看一下是否 FLASH_TYPEPROGRAM_DOUBLEWORD 对应的地址是合适的,有些区域不允许双字写入。
Uriah 发表于 2025-3-16 08:00 | 显示全部楼层
HAL_FLASH_Program 在失败时不会抛出异常,可以通过查看返回的状态或者 FLASH_SR 标志来诊断错误。
Clyde011 发表于 2025-3-16 08:01 | 显示全部楼层
你可以通过 STM32CubeMX 生成的初始化代码来确认是否对 Flash 访问有正确的配置,尤其是时钟和权限设置。
Moon月 发表于 2025-3-24 17:32 | 显示全部楼层
可能是没有解锁就写入,或者是没有擦除就写入。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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