完善资料让更多小伙伴认识你,还能领取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的程序,组网后协调器断电重启还是可以加入原来的网络。 |
|
|
|
只有小组成员才能发言,加入小组>>
MSP430F249TPMR出现高温存储后失效了的情况,怎么解决?
575 浏览 1 评论
对于多级放大电路板,在PCB布局中,电源摆放的位置应该注意什么?
1027 浏览 1 评论
674 浏览 0 评论
普中科技F28335开发板每次上电复位后数码管都会显示,如何熄灭它?
499 浏览 1 评论
1021 浏览 0 评论
请问下tpa3220实际测试引脚功能和官方资料不符,哪位大佬可以帮忙解答下
128浏览 20评论
请教下关于TAS5825PEVM评估模块原理图中不太明白的地方,寻求答疑
99浏览 14评论
在使用3254进行录音的时候出现一个奇怪的现象,右声道有吱吱声,请教一下,是否是什么寄存器设置存在问题?
110浏览 13评论
TLV320芯片内部自带数字滤波功能,请问linein进来的模拟信号是否是先经过ADC的超采样?
105浏览 12评论
TPA6304-Q1: TPA6304 两片公用一组I2C的话,其中一片配置不成功怎么办
131浏览 10评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-9 12:26 , Processed in 0.894112 second(s), Total 82, Slave 65 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号