代码如下:
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空间内,又恢复到未擦除状态,里面好像是随机码。请问这都是什么情况?
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
一周热门 更多>