TI中文支持网
TI专业的中文技术问题搜集分享网站

ZIGBEE 终端节点PM3休眠唤醒后无法入网,重复不断发送beacon ruquest请求,直至电量耗尽的问题

我们使用ZIBEE 2007协议栈构建的一个传感器网络,网络结构如下图所示:

C-表示协调器,R为路由结点 D-为终端节点

R与C上电自动绑定,D与R通过按键操作绑定,D定时发送数据给绑定的RR再将数据传送给C,D发送完成后进入PM3休眠,通过外部中断唤醒,在系统运行过程中,经常性发生终端节点睡眠醒来后无法加入网,一直重复发送beacon Request,使用Packet Sniffer软件抓包如下图所示:

Susan Yang:

外部中断唤醒的代码能不能贴出来?

zhaoguo yang:

回复 Susan Yang:

/*********************************************************************//中断服务程序*********************************************************************/#pragma vector = P1INT_VECTOR__near_func __interrupt void P1_ISR(void){ HAL_DISABLE_INTERRUPTS(); UTCTime_t rtcTime; uint8 ctr1=0; if(P1IFG & 0x08||P1IFG & 0x10) //RTC报警输出中断 { //读取当前rtc的时间 ctr1=ReadOneByte(CTR1); //如果是倒计时中断 if(ctr1&INTDF) { osal_set_event( sapi_TaskID, MY_REBOOT_EVT); } else if(ctr1&INTAF) { //读取当前rtc的时间 //GetRtcTime(&rtcTime); //ClearAlarmOut(); //激活RF增益放大器芯片 P1_2=1; delay_us(50000); //HalLedBlink ( HAL_LED_1, 2, 50, 300 ); //osal_start_timerEx( sapi_TaskID, MY_WAKEUP_EVT, 3000); osal_start_timerEx( sapi_TaskID, MY_REBOOT_EVT, 3000); } ClearAlarmOut(); //osal_start_timerEx( sapi_TaskID, MY_REBOOT_EVT, 3000); } P1IFG = 0; P1IF = 0; HAL_ENABLE_INTERRUPTS(); delay_us(10);}

zhaoguo yang:

回复 zhaoguo yang:

原来就一直出现以上描述的问题,所以把代码改成中断唤醒后都让终端节点重启。

zhaoguo yang:

回复 zhaoguo yang:

后来这个一直加入不了网络的终端节点,重新打开协调器C的允许绑定功能后,那个终端节点就可以正常加入网络了。

赞(0)
未经允许不得转载:TI中文支持网 » ZIGBEE 终端节点PM3休眠唤醒后无法入网,重复不断发送beacon ruquest请求,直至电量耗尽的问题
分享到: 更多 (0)