操作函数:
void FlashPageWrite(Uint32 PageNumber,Uint32 *SourceBuf)
{
Uint08 Cnt,Sta;
Uint32 Address=0x08000000 + PageNumber * 2 * 1024;
FLASH_Unlock();
FlashPageErase(Address);
for(Cnt=0;Cnt<10;Cnt++)*(SourceBuf+Cnt)=0x55AA55AA;
for(Cnt=0;Cnt<10;Cnt++)
{
Sta=FLASH_ProgramWord(Address+Cnt,*(SourceBuf+Cnt));
}
}
FLASH_ProgramWord(Address+Cnt,*(SourceBuf+Cnt));第一次调用正常,也写进去了(通过存储器窗口看),第二次调用时就重启了,什么道理?
|