帛灿灿 发表于 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
可能是没有解锁就写入,或者是没有擦除就写入。
页:
1
[2]