我用CC2530 FLASH從外部重復寫入數據,發現第一次能寫入,以后重復寫入就不行了。我發現有個問題,就是FLASH擦除的時候沒有用,擦除完之后讀出來的數據還是原來的,而不是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
是什么原因呢?
|