发新帖我要提问
12
返回列表
打印
[STM32G4]

写FLASH失败

[复制链接]
楼主: wbgbg20002000
手机看帖
扫描二维码
随时随地手机跟帖
21
周半梅| | 2025-3-16 07:51 | 只看该作者 回帖奖励 |倒序浏览
可以试着在 HAL_FLASH_Program 前加一个延时,确认是否是因为执行太快,导致写入操作没有完成。

使用特权

评论回复
22
帛灿灿| | 2025-3-16 07:54 | 只看该作者
HAL_FLASH_Unlock() 和 HAL_FLASH_Lock() 需要确保调用正确,特别是在操作之前和之后清除相关标志。

使用特权

评论回复
23
童雨竹| | 2025-3-16 07:55 | 只看该作者
你可以检查一下 STM32 的 Option Bytes,看是否启用了某些写保护或者限制了 Flash 编程。

使用特权

评论回复
24
万图| | 2025-3-16 07:56 | 只看该作者
在 Flash 写入之前确保没有其他中断打断操作,尤其是优先级比较高的中断。

使用特权

评论回复
25
Wordsworth| | 2025-3-16 07:57 | 只看该作者
试试将 Key_Flash 改为某个明确的地址值,看是否是因为使用了 &Key_Flash 导致的问题。

使用特权

评论回复
26
Bblythe| | 2025-3-16 07:58 | 只看该作者
可以试着将数据写入不同的 Flash 区域,确认是不是区域本身的访问权限问题。

使用特权

评论回复
27
Pulitzer| | 2025-3-16 07:59 | 只看该作者
看一下是否 FLASH_TYPEPROGRAM_DOUBLEWORD 对应的地址是合适的,有些区域不允许双字写入。

使用特权

评论回复
28
Uriah| | 2025-3-16 08:00 | 只看该作者
HAL_FLASH_Program 在失败时不会抛出异常,可以通过查看返回的状态或者 FLASH_SR 标志来诊断错误。

使用特权

评论回复
29
Clyde011| | 2025-3-16 08:01 | 只看该作者
你可以通过 STM32CubeMX 生成的初始化代码来确认是否对 Flash 访问有正确的配置,尤其是时钟和权限设置。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则