赞
踩
CC2530内部没有eeprom,想要掉电不丢失数据怎么办呢,下面就教大家怎么用FLASH模拟EEPROM保存数据,掉电不丢失,函数在协议栈中已经实现,我们只需调用就行。
主要用下面三个函数:
osal_nv_item_init(USER_NV_CATID,3,NULL);//初始化
osal_nv_read(USER_NV_CATID,0,3,nvData);//内部数据读取函数
osal_nv_write(USER_NV_CATID,0,3,nvData);//保存至内部FLASH函数
在使用之前先要定义自己的地址,范围是 0x0201 – 0x0FFF。
0×0000 保留
0×0001~0×0020 操作系统抽象层(OSAL)
0×0021~0×0040 网络层(NWK)
0×0041~0×0060 应用程序支持子层(APS)
0×0061~0×0080 安全(Security)
0×0081~0x00A0 Zigbee设备对象(ZDO)
0x00A1~0×0200 保留
0×0201~0x0FFF 应用程序
0×1000~0xFFFF 保留
1、首先在ZComDef.h中定义一个自己的存储地址
#define USER_NV_CATID 0x0f00
2、写入3个字节
unsigned char nvData[3];
nvData[0]=0x01;
nvData[1]=0x02;
nvData[2]=0x03;
osal_nv_item_init(USER_NV_CATID,3,NULL);
osal_nv_write(USER_NV_CATID,0,3,nvData);
3、读取3个字节
unsigned char nvData[3];
osal_nv_item_init(USER_NV_CATID,3,NULL);
osal_nv_read(USER_NV_CATID,0,3,nvData);
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。