STM32F103的Flash擦除问题
代码如下: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空间内,又恢复到未擦除状态,里面好像是随机码。请问这都是什么情况?
参考 官方代码 我还没学过103 xuexixuexi 参考官方代码 楼主可否换个地址测试,这个地址如果被擦了。程序起不来了。 学习一下:lol:lol 楼主这个不是自己擦除自己么不行的运行的程序要弄个偏移量工程里还要设置一下然后再设置向量偏移 你的程序就运行在那个地址,不能擦除的,如果执行擦除就肯定会出错的 不能擦除程序空间的吧,自己把自己给擦了,不行吧
页:
[1]
2