查看: 1874|回复: 0
打印 上一主题 下一主题

关于osal_nv_write修改PANID不成功问题

[复制链接]
跳转到指定楼层
沙发
发表于 2015-10-27 18:42:06 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神帮忙看下为什么之前 可以实现在程序运行过程中修改PANID,而如今却是不行,代码如下:

typedef union
{
unsigned short word;
unsigned char byte[2];
} UNION_2_BYTE;

uint8  dd=0xff;

if(g_sys_key1Sample > 160)//有按键超过500毫秒
{
UNION_2_BYTE tmp;
tmp.byte[0]=0x88;
tmp.byte[1]=0x66;
g_sys_key1Sample = 0;
osal_nv_item_init(ZCD_NV_PANID,osal_nv_item_len( ZCD_NV_PANID ), &tmp.word);   //改变PANID值
dd=osal_nv_write(ZCD_NV_PANID, 0, osal_nv_item_len( ZCD_NV_PANID ), &tmp.word);    //运行到这里dd均等于0;

SystemResetSoft();
}

测试环境说明:宏定义环境(协调器)

环境一:xNV_INIT                     
                xNV_RESTORE

另外分:单协调器环境下,和有一个终端成功组网环境下。



环境二:xNV_INIT
                NV_RESTORE

另外分:单协调器环境下,和有一个终端成功组网环境下。

总结:在以上测试中用抓包软件测得的PANID都不是上面代码的,有记忆了之前的,也有随机分配其他的。转载

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 加入因仑

本版积分规则

快速回复 返回顶部 返回列表