完善资料让更多小伙伴认识你,还能领取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秒扫描一次 ] 不过不建议使用方法二 |
|
|
|
|
|
|
|
只有小组成员才能发言,加入小组>>
598 浏览 0 评论
1651 浏览 0 评论
2090 浏览 0 评论
为啥BQ7693003DBTR芯片在和BQ769X0盒子通讯时收不到信号?
1541 浏览 0 评论
DSP 28027F 开发板 XDS100v2调试探针诊断日志显示了 Error -150 (SC_ERR_FTDI_FAIL)如何解决
1383 浏览 0 评论
AT32F407在USART2 DMA发送数据时,接包接到了要发送的数据,程序还是处于等待传输完成的标识判断中,为什么?
1793浏览 29评论
2820浏览 23评论
请问下tpa3220实际测试引脚功能和官方资料不符,哪位大佬可以帮忙解答下
1748浏览 20评论
请教下关于TAS5825PEVM评估模块原理图中不太明白的地方,寻求答疑
1666浏览 14评论
两个TMP117传感器一个可以正常读取温度值,一个读取的值一直是0,为什么?
1680浏览 13评论
/9
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2025-12-13 21:46 , Processed in 0.609847 second(s), Total 46, Slave 39 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191

淘帖
2749