STM32F107RBT6 页擦除函数返回值成功但目标扇区数据并未擦除
程序调用页擦除库函数擦除内部FLASH扇区数据时,函数返回值正常,但仿真查看内存发现目标扇区并未成功擦除。擦除前解锁FLASH正常,FLASH寄存器相关状态标志正常。系统频率72MHz,按手册要求配置 FLASH_ACR 2个等待位,开启预取缓存区。MCU在执行擦除任务时供电稳定3.28V。
!(data/attachment/forum/202403/30/100243jm4sgue4j4xy4j4t.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/300 "image.png")
除此之外,使用 STM32 ST-LINK Utility 验证发现,全片擦除有效,但页擦除仅 0x0800E000-0x0800E7FF 这一个扇区正常擦除,其它扇区均擦除失败但未报错。
请各位大佬指点!
1. 首先确保相应的区域写保护位不要被使能。
2.代码中擦除后面不要立刻有写人功能。(例程中是这样的,经过复位后又被写入数值)
可以参考库中例程
STM32Cube_FW_F1_V1.8.5\Projects\STM32F103RB-Nucleo\Examples\FLASH\FLASH_EraseProgram
页:
[1]