aude5420 发表于 2016-8-30 18:26:00

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空间内,又恢复到未擦除状态,里面好像是随机码。请问这都是什么情况?

#define 发表于 2016-9-1 08:45:24

参考 官方代码                     

lulugl 发表于 2016-9-1 08:57:34

我还没学过103

z258121131 发表于 2016-9-1 09:40:48

xuexixuexi

dsjsjf 发表于 2016-9-1 09:50:38

参考官方代码

发表于 2016-9-1 10:22:52

楼主可否换个地址测试,这个地址如果被擦了。程序起不来了。

johnson_gong 发表于 2016-9-1 10:25:32

学习一下:lol:lol

linyu0395 发表于 2016-9-1 10:41:59

楼主这个不是自己擦除自己么不行的运行的程序要弄个偏移量工程里还要设置一下然后再设置向量偏移

baseball 发表于 2016-9-1 11:11:49

你的程序就运行在那个地址,不能擦除的,如果执行擦除就肯定会出错的

wudianjun2001 发表于 2016-9-1 12:01:18

不能擦除程序空间的吧,自己把自己给擦了,不行吧
页: [1] 2
查看完整版本: STM32F103的Flash擦除问题