完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
但是我在程序中调用ZDApp_StopJoiningCycle这个函数,我将终端连上协调器后,然后将协调器断电,终端断网,然后再将协调器上电,终端很快就连上了,并没有被禁止连接 程序如下 else if(GenericApp_NwkState == DEV_NWK_ORPHAN) [ HalLedSet(HAL_LED_1,HAL_LED_MODE_ON); ZDApp_StopJoiningCycle(); ] |
|
|
|
|
|
sauwa 发表于 2018-8-9 06:59 对于这个问题,好多解答都是使用ZDApp_StopJoiningCycle函数,但是就是不说在哪个函数调用,怎么进入睡眠,我结合网上的一些方法总结出一下方法 方法一:在ZDO_StartDevice()函数中,加在这个判断句里面if (startMode == MODE_REJOIN && scanCnt++ >= 5 ), 加入下内容 ZDApp_StopJoiningCycle(); //停止搜索网络 halSleep(10000); //睡眠3S HalLedBlink(HAL_LED_1, 2, 50, 500); //唤醒后LED1闪烁2下 ZDApp_StartJoiningCycle(); //恢复网络搜索 另外还要在该c文件开头添加#include "hal_led.h"头文件 方法二:还有说改变BEACON的扫描间隔时间,但是这么做的话,如果协调器长时间掉电,然后恢复上电,则终端要很久才能重新连接到协调器,就像进入死机一样, 代码如下 在UINT16 GenericApp_ProcessEvent(byte task_id, UINT16 events)函数中加入下内容 if((GenericApp_NwkState == DEV_END_DEVICE)|| (GenericApp_NwkState == DEV_ROUTER)) [ zgDefaultStartingScanDuration = STARTING_SCAN_DURATION; //恢复连续扫描 osal_set_event(GenericApp_TaskID, SEND_DATA_EVENT); HalLedBlink(HAL_LED_1, 0, 50, 500); //aps_AddGroup(GENERICAPP_ENDPOINT, &GenericApp_Group); ] else if(GenericApp_NwkState == DEV_NWK_ORPHAN) [ HalLedSet(HAL_LED_1,HAL_LED_MODE_ON); zgDefaultStartingScanDuration = BEACON_ORDER_4_SECONDS; //每4秒扫描一次 ] 不过不建议使用方法二 |
|
|
|
|
|
只有小组成员才能发言,加入小组>>
336 浏览 1 评论
529 浏览 2 评论
NA555DR VCC最低电压需要在5V供电,为什么用3.3V供电搭了个单稳态触发器也使用正常?
774 浏览 3 评论
MSP430F249TPMR出现高温存储后失效了的情况,怎么解决?
651 浏览 1 评论
对于多级放大电路板,在PCB布局中,电源摆放的位置应该注意什么?
1130 浏览 1 评论
AT32F407在USART2 DMA发送数据时,接包接到了要发送的数据,程序还是处于等待传输完成的标识判断中,为什么?
62浏览 29评论
158浏览 23评论
请问下tpa3220实际测试引脚功能和官方资料不符,哪位大佬可以帮忙解答下
253浏览 20评论
请教下关于TAS5825PEVM评估模块原理图中不太明白的地方,寻求答疑
202浏览 14评论
两个TMP117传感器一个可以正常读取温度值,一个读取的值一直是0,为什么?
60浏览 13评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-23 19:38 , Processed in 1.394073 second(s), Total 71, Slave 58 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号