• 已解决 73482 个问题
  • 已帮助 5993 位优秀工程师

关于STM32G0 flash擦除失败问题

PG_CPZ 2022-02-24 浏览量:3038
HAL_FLASH_Unlock();
Page_Mum = GetPage(addr);
FlashEraseInit.TypeErase=FLASH_TYPEERASE_PAGES;    //擦除类型,页擦除 
FlashEraseInit.Page=Page_Mum;      //从哪页开始擦除
FlashEraseInit.NbPages=pagenum;                         
if(HAL_FLASHEx_Erase(&FlashEraseInit&PageError)!=HAL_OK) 
{
printf("flash_error_addr:%x\r\n"PageError);
printf("flash_easre_error\r\n");
while(1);
}
FLASH_WaitForLastOperation(FLASH_WAITETIME);            //等待上次操作完成

HAL_FLASH_Lock();

程序如上,flash分了APP1和APP2,擦除APP1是没问题,擦除APP2就失败,且打印出来的PageError=0

0 0 收起

我来回答

上传资料:
选择文件 文件大小不超过15M(格式支持:doc、ppt、xls、pdf、zip、rar、txt)
最佳答案
  • 确认下页地址是否正确;页擦除时,此刻CPU没法访问FLASH的。


    • 发布于 2022-03-07
    • 举报
    • 评论 0
    • 0
    • 0

其他答案 数量:1
  • 看一下app2的地址,是不是正好是在页的起始地址上
    • 发布于2022-03-08
    • 举报
    • 评论 0
    • 0
    • 0

相关问题

问题达人换一批

关于STM32G0 flash擦除失败问题