flash擦除的代码
/*****************************************************************************
*名 称:BlockErase
*
*功 能:扇区擦除函数
*
*入口参数:Uint16 BlockNum
*
*出口参数:Uint16
*
****************************************************************************/
Uint16 BlockErase(Uint16 BlockNum)
{
Uint16 i,Data;
Uint32 TimeOut;
*(FlashStart + 0x5555) = 0xAA;
*(FlashStart + 0x2AAA) = 0x55;
*(FlashStart + 0x5555) = 0x80;
*(FlashStart + 0x5555) = 0xAA;
*(FlashStart + 0x2AAA) = 0x55;
*(FlashStart + BlockSize * BlockNum + 1) = 0x50;
i = 0;
TimeOut = 0;
while(i<5)
{
Data = *(FlashStart +BlockSize * (BlockNum +1));
if(Data == 0xFFFF)
{
i++;
}
else
{
i=0;
}
if ( ++TimeOut>0x1000000)
{
return (TimeOutErr);
}
}
for(i=0;i<SectorSize;i++)
{
Data = *(FlashStart + BlockSize * BlockNum +i);
if (Data !=0xFFFF)
{
return (EraseErr);
}
}
return(EraseOK);
}
这一段flash擦除的代码怎么理解呢?哪位朋友给解释一下吧! 给你解释什么?
是字母数字不认识还是语法不懂?
如果都不是那就是逻辑的问题,人家芯片都是这样设计的你要什么解释?好好看看datasheet。
页:
[1]