大家好。
这个问题是随机的, 我不知道原因。
MCU擦除内部闪存, 崩溃的可能性非常低。
请参阅我的代码。
erase_NumberOfBank (0x1万,3);
P.S.代码内存地址0x1万h- 03FFFFh 未使用。
void erase_NumberOfBank (unsigned long int start_address,unsigned char numberofbank)
{
unsigned long int *Flash_PTR;//闪存指针
无符号int j;
//__disable_interrupt ();// 5xx解决方法:禁用全局
//擦除时中断。 重新启用
// GIE (如果需要)
用于(j=0;j<numberofbank;j++)
{
flash_ptr =(unsigned long int *)(start_address + 0x1万*j);//初始化Flash指针
//while (BUSY和FCTL3);//检查是否正在使用闪存
FCTL3 = FWKEY;//清除锁定位
FCTL1 = FWKEY + MERAS;//设置擦除位
*Flash_PTR =0;//虚拟写入以擦除闪存段
//while (BUSY和FCTL3);//检查是否已完成擦除
FCTL1 = FWKEY;//清除位
FCTL3 = FWKEY + LOCK;//重置锁定位
while (busy和FCTL3);//检查是否已完成擦除
}
//__enable_interrupt ();
}
谢谢你

