我用CC2530 FLASH從外部重復(fù)寫入數(shù)據(jù),發(fā)現(xiàn)第一次能寫入,以后重復(fù)寫入就不行了。我發(fā)現(xiàn)有個問題,就是FLASH擦除的時候沒有用,擦除完之后讀出來的數(shù)據(jù)還是原來的,而不是0xFF,代碼如下:
/***************flash 頁擦除******************/
void Flash_PageErase(uchar byPage)
{
EA=0;
while(FCTL & 0x80); //等待閃存控制器整備好
FADDRH = byPage << 1; //選擇擦除的頁面
FCTL |= 0x01; //啟動頁面擦除
while(FCTL & 0x80); //等待擦除完成
EA=1;
}
Flash_PageErase(8); //擦除FLASH頁
WriteFlashDMA(recv_buf,12,0x4100); //寫入FLASH
是什么原因呢?
|