微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 无线和射频 > 射频无线通信设计 > 程序运行中怎样修改f8wConfig.cfg参数

程序运行中怎样修改f8wConfig.cfg参数

时间:10-02 整理:3721RD 点击:
请教各位大神:

我现在都是通过烧写程序时直接在f8wConfig.cfg文件里修改自己需要的参数,实际应用时需要可以灵活的修改这些参数,总不能

每次都重新烧录程序吧。

请教有什么方法可以通过串口或者RF在程序运行中来实现f8wConfig.cfg文件中某些参数的修改?

可以用CCdebugger和闪存编译器来做,不过要注意,本人才接触,只知道这个方法

你可以通过调用TI的API通过串口来修改参数。

f8wConfig.cfg都是宏定义,你先找本谭浩强的书,把宏定义是什么都搞清楚再说。
要修改配置参数,可以用修改全局变量的方式。

能说的具体一些吗?我理解的是利用HalUARTWrite()这样的函数实现串口通信,自己制定一些通信协议,
然后是对全局变量作修改还是修改NV记录的数据?

如果是修改全局变量,设备重新上电后那些参数应该还是会恢复成最初的样子吧
修改NV数据的方法也试了一下 没成功

想实现的效果就如附加图片中所示

这个当然是写到NV中了,通过串口制定AT指令就行,里面就是调用API而已

请教:

我现在想要通过串口自由的修改PANID,方法是重新写NV记录的ZCD_NV_PANID,再重启设备。测试了一下确实能实现修改PANID的目的。

问题是PANID关乎组网,如果一个设备还没有进入任何网络,修改上述参数,只相当于修改了初始化的数据,这是可以的。

如果协调器或者路由器都是设置了NV_RESTORE,联网之后就会保存进NV,这时再单纯的修改ZCD_NV_PANID这一个参数

而不退网和清除联网的一些信息,这样是有问题的吧?

所以我想知道有没有API是可以把NV恢复成没有入网的状态?

试了NLME_RestoreFromNV()和ZDApp_RestoreNetworkState()函数都不起作用

请大神指点

这个你可以试下,我记得是可以的

上面的问题解决了,是调用zgWriteStartupOptions(ZG_STARTUP_SET, ZCD_STARTOPT_DEFAULT_NETWORK_STATE)这个函数,再重启设备就好了。
各位大神,我有一个新问题,就是一定数量的EndDevice通过一个Router入网,Router会在AssociatedDevList的数组中记录这些设备
的信息,这个数组大小是20,也就是说他允许同时在线的EndDevice最大数量是20个吗?如果我的EndDevice数量超出20个,但是会频繁
有离线的设备,有什么办法可以将Router中离线的设备信息清除?

貌似以前看过Wateras1您的帖子,我现在的做法是隔20s轮询AssociatedDevList内的信息,把存入的设备age给加1,如果收到某个
设备的数据就将它的age清零,每隔60s再查询是否有设备的age值超过某一数值,如果有就表示该设备已经离线,就把AssociatedDevList相应的数据复位。
原来作试验EndDevice数量少,也没发现问题,现在EndDevice数量多了,总是过一段时间Router就
无法和其他设备组网了。请问是否还需要清除NV里的某些内容

请大神指点

直接说方法就是了 用的着这样吗 显得你好像很懂得样子

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top