用的是研旭那本书上的程序,稍微试试,擦除没有问题,但是写入数据成功不了,部分代码:
Uint16 ChipErase(void)
{
Uint16 Data;
Uint32
timeOut,i;
*(FLASHStart0 + 0x5555) = 0xAAAA;
*(FLASHStart0 + 0x2AAA) = 0x5555;
*(FLASHStart0 + 0x5555) = 0x8080;
*(FLASHStart0 + 0x5555) = 0xAAAA;
*(FLASHStart0 + 0x2AAA) = 0x5555;
*(FLASHStart0 + 0x5555) = 0x1010;
for(i=0;i<0x40000;i++)
{
Data = *(FLASHStart0 + i);
if(Data!=0xFFFF)
return(EraseErr);
}
return(EraseOK);
}
Uint16 FlashWrite(void)
{
Uint32 i ,a;
Uint16 Data,j;
for(i=0;i<0x3FFFF;i++)
{
*(FLASHStart0 + 0x5555) = 0xAAAA;
*(FLASHStart0 + 0x2AAA) = 0x5555;
*(FLASHStart0 + 0x5555) = 0xA0A0;
*(FLASHStart0 + i) = i;
}
for(i=0;i<0x3FFFF;i++)
{
Data = *(FLASHStart0 + i);
if(Data!=i) return(VerifyErr);
}
return(WriteOK);
}