擦除不干净,使用下面代码,擦除页数填NbPages = 63 它只能擦除到第三页
static FLASH_EraseInitTypeDef EraseInitStruct = {
.TypeErase = FLASH_TYPEERASE_PAGES, //页擦除
.PageAddress = 0x08000000, //擦除地址
.NbPages = 63 //擦除页数
};
HAL_FLASH_Unlock();
uint32_t PageError = 0;
__disable_irq(); //擦除前关闭中断
if (HAL_FLASHEx_Erase(&EraseInitStruct,&PageError) == HAL_OK)
{
printf("擦除 成功\r\n");
}
__enable_irq();