完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
扫一扫,分享给好友
您好,现在我的网络里面有1个协调器和1个路由器(均编译了NV_INIT和NV_RESTORE),运行的程序是SerialApp,PanId是2,Chanel 0x0B,如果协调器先上电建立网络,然后路由器上电加入网络,双方串口发数据,均能正常接收,现在协调器重新上电,路由器一直工作,这时候发现协调器的PanId为3,加入不到原有的网络中;如果关掉路由器,协调器在重新上电,PanId为2,路由器在上电,还是可以正常收发数据;问题是我编译了NV_RESTORE和NV_INIT的,现在的解决办法是修改了下面的函数:
uint16 ZDApp_CoordStartPANIDConflictCB( uint16 panid ) [ #if defined ( NV_RESTORE ) return ( panid + 0 ); #else return ( panid + 1 ); #endif ] 这样在路由器不掉电的情况下协调器重新上电后还能加入原有的网络,请告知问题的原因,谢谢!!! |
|
相关推荐
2个回答
|
|
你虽然在这个函数里面产生一个和原先一样的PANID,但是这个PANID得到以后会和现在的网络的PANID再次做比较,如果是冲突的话还是会回到这个函数里面来选择新的PANID,所以你这种做法的话会使coordinator一直出去PANID的choose的状态,也就是说一直在这个函数里面跑,直到你的router掉电,没有冲突的时候,那么选择一个panid+0的PANID,因为这个时候已经没有冲突了。
|
|
|
|
wenlonghbo 发表于 2018-5-14 04:59 谢谢,其实加NV_RESTORE应该是没有问题的,可能的问题是我之前的ROUTER模块烧写过COORDINATOR的程序,所以NV中存在一些数据,导致现在的COORDINATOR不能用原有的PanId,现在将2个模块全部擦出程序,重新分别烧写COORDINATOR和ROUTER的程序,组网后协调器断电重启还是可以加入原来的网络。 |
|
|
|
只有小组成员才能发言,加入小组>>
341 浏览 1 评论
539 浏览 2 评论
NA555DR VCC最低电压需要在5V供电,为什么用3.3V供电搭了个单稳态触发器也使用正常?
781 浏览 3 评论
MSP430F249TPMR出现高温存储后失效了的情况,怎么解决?
655 浏览 1 评论
对于多级放大电路板,在PCB布局中,电源摆放的位置应该注意什么?
1138 浏览 1 评论
AT32F407在USART2 DMA发送数据时,接包接到了要发送的数据,程序还是处于等待传输完成的标识判断中,为什么?
69浏览 29评论
216浏览 23评论
请问下tpa3220实际测试引脚功能和官方资料不符,哪位大佬可以帮忙解答下
257浏览 20评论
请教下关于TAS5825PEVM评估模块原理图中不太明白的地方,寻求答疑
205浏览 14评论
两个TMP117传感器一个可以正常读取温度值,一个读取的值一直是0,为什么?
65浏览 13评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-25 13:02 , Processed in 0.961038 second(s), Total 48, Slave 43 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号