请问如何写和读flash,
HalFlashErase(0x40);
HalFlashWrite(0x8000, buff, 30);
HalFlashRead(0x00, 0x0000, buff, 30);
为什么读出来的与写入的不一样?
Yan:
为了更好地促进我们论坛的发展,
如果提供的方法有效, 希望请把问题设为已解决, 并推荐最佳答案 🙂
非常感谢!
asdfe sdsd:
回复 Yan:
能具体介绍下这几个函数及FCTL各参数么,这个是读写内部flash吧?cc2540的蓝牙序列号是存在哪里的?
CC2540蓝牙4.0BLE开发:
回复 asdfe sdsd:
你要的这些信息pdf资料里面都有
Tao Hong:
回复 Yan:
HalFlashErase(0x10); delays(10); while( FCTL & 0x80 ); // wait for erase to complete HalFlashWrite(0x8000,arr,6); delays(10); HalFlashRead(0x10,0x0000,arrr,6);
你好,我想请问下为什么我这样读写flash没不行呢,读的跟写的不一样?
waiting:
回复 Yan:
Yan
请问一下read的page和write的addr应该怎样换算,好像搞不清这个关系。还有和nv那个id表的value怎么换算。谢谢!
Tao Hong:
回复 waiting:
假如读的是第10页,那么写的时候的地址就是10*2048/4
teddy stone:
回复 Tao Hong:
我这样直接测试 开发板的LCD和串口都没有任何显示,提示IDATA overflow,请问如何解决
void testflash(void){ uint8 newValueBuf[20]={1,2,3,4,5,6,7,8,9}; uint8 newBuf[20]={0}; uint8 wrt[8] = {'1','2','3','4','5','6','7','8'}; uint8 page = 0x40; uint16 addr = (uint16)page << 9; HalFlashErase(page); SerialPrintString("erase…..\r\n"); while( FCTL & 0x80 ); // wait for erase to complete HalFlashWrite(addr, newValueBuf, 20); HalFlashRead(page, 0x0000, newBuf, 20); sbpSerialAppWrite (newBuf, 20); SerialPrintString("\r\n");}