我用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
是什么原因呢?
|