每次运行块编程CPU就不动啦,仿真出现SWIM错误,我用的V1.1.1固件库,这个问题已经困扰我很久啦,老板很生气,后果很严重!
void EEPROM_Init(void)
{
u8 i;u16 j=0;
FLASH_DeInit();
FLASH_ITConfig(DISABLE);
FLASH_SetProgrammingTime(FLASH_PROGRAMTIME_STANDARD);
EEPROM_to_Buffer();
j|=System_Parameter[4];
j<<=8;
j|=System_Parameter[3];
if(j==0) //系统首次启动
{
for(i=0;i<60;i++)
System_Parameter[i]=System_Parameter_Default[i];
}
j+=1;//启动次数+1
System_Parameter[3]=j;
System_Parameter[4]=j>>8;
Buffer_to_EEPROM();
return;
}
void Buffer_to_EEPROM(void)
{
u8 i;
disableInterrupts();
FLASH_Unlock(FLASH_MEMTYPE_DATA);
/*
for(i=0;i<60;i++)
{
FLASH_ProgramByte(0x4000+i,System_Parameter[i]);
while(!FLASH_GetFlagStatus(FLASH_FLAG_EOP )) ;
}*/
Delay_nms(10);
FLASH_ProgramBlock(0,FLASH_MEMTYPE_DATA ,FLASH_PROGRAMMODE_STANDARD,System_Parameter );
FLASH_WaitForLastOperation(FLASH_MEMTYPE_DATA);//start address is 0x4000
FLASH_Lock(FLASH_MEMTYPE_DATA);
enableInterrupts();
return;
} |