ZigBee学习(3)————NV操作函数

目录

NV就是Non Volatile的缩写,即非易失性存储器,即使系统断电后,存储在该存储器的数据也不会丢失。在ZigBee协议栈中,NV存储器主要用于保存网络的配置参数(如网路地址),因为掉电后该参数不丢失。


在协议栈中使用的NV操作函数只有如下三个:

1)

ZigBee学习(3)————NV操作函数_第1张图片

 

2)

ZigBee学习(3)————NV操作函数_第2张图片

 

3)

ZigBee学习(3)————NV操作函数_第3张图片

 

uint8 value_read;
uint8 value=0x08;
osal_nv_item_init(TEST_NV,1,BULL);
osal_nv_write(TEST_NV,0,1,&value);
osal_nv_read(TEST_NV,0,1,&value_read);

ZigBee学习(3)————NV操作函数_第4张图片

 

static void rxCB(uint8 port,uint8 event)   
{
    uint8 value_read;
    uint8 value=18;
    uint8 uartbuf[2];
    uint8 cmd[6];
    HalUARTRead(0,cmd,6);
    if(osal_memcmp(cmd,"nvread",6))
    {
        osal_nv_item_init(TEST_NV,1,NULL);
        osal_nv_write(TEST_NV,0,1,&value);
        osal_nv_read(TEST_NV,0,1,&value_read);
        uartbuf[0]=value_read / 10 + '0';
        uartbuf[1]=value_read % 10 + '0'; 
        HalUARTWrite(0,uartbuf,2);
    }
}

定义一个变量用于存储从NV存储器读取的数据,写入NV条目的数据;定义缓冲区和命令缓冲区,分别用于存放读取的数据和用于存取从串口读取到的命令;从串口读取命令后存放在cmd数组中;使用osal_memcmp()函数判断命令是否为“nvread”。

你可能感兴趣的:(ZigBee)