STM32F103的Flash擦除问题

2019-07-14 20:27发布

代码如下:
volatile FLASH_Status FLASHStatus = FLASH_COMPLETE;/*FLASH擦除完成标志*/
int main(void){                /*解锁FLASH*/        FLASH_Unlock();
  /* 清除所有挂起标志位 */        FLASH_ClearFlag(FLASH_FLAG_EOP | FLASH_FLAG_PGERR | FLASH_FLAG_WRPRTERR);          /* 擦除FLASH 页*/        FLASHStatus = FLASH_ErasePage((uint32_t)0x08000000);                while(FLASHStatus != FLASH_COMPLETE)                ;/* 锁定FLASH  */        FLASH_Lock();                  while (1);}
程序就一直停在FLASHStatus = FLASH_ErasePage((uint32_t)0x08000000);这条代码上,但是我通过Watch window看0x08000000到0x080007FF都已经擦除,这个空间内都是FF。还有一个问题,就是芯片重启之后,在0x08000000到0x080007F空间内,又恢复到未擦除状态,里面好像是随机码。请问这都是什么情况?
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。