微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 无线和射频 > TI Zigbee设计交流 > ZigBee协议栈PANID问题

ZigBee协议栈PANID问题

时间:10-02 整理:3721RD 点击:

协调器和节点的PANID是一样的但是协调器通过下面这个函数改变PANID号后,节点没有修改PANID,节点为什么还是会和协调器连接。
static void SetPanIding(uint8 *node) //修改PANID函数
{
uint8 flag = 0xff;
uint16 PanIdBuf = 0x00;
PanIdBuf = node[7];
PanIdBuf = PanIdBuf << 8;
PanIdBuf |= node[8];
flag = osal_nv_write(ZCD_NV_PANID, 0, sizeof(uint16), &PanIdBuf); //设置PANID
//_NIB.nwkPanId = PanIdBuf;
//NLME_UpdateNV(0x01);
if(flag == SUCCESS)
{
SystemResetSoft(); //软启动
}
}

重启后PANID是哪一个?修改有没有成功?

协调器自动软重启,通过下面查看后,发现协调器PANID已经修改了

node[7] = zgConfigPANID >> 8;
node[8] = zgConfigPANID & 0xFF;
HalUARTWrite(SERIAL_COM_PORT, node, DataLength(1));

调用zb_ReadConfiguration()读取一下NV里的值有没有更改过

请问,协调器PANID设置为0xffff,节点设置为其他PANID,不能连接,是需要设置什么宏定义吗?

_NIB.nwkPanId = PanIdBuf;
NLME_UpdateNV(0x01);

这样就对了,本来的子设备就连接不了了,成为了孤儿

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top