昨天,在添加了zigbee节点过户,可以顺利检测设备,一个协调器带两个路由器,但是当硬件检测完毕,进入主任务中时,信号指示灯在闪过一下后,即停止闪烁,也就是说程序宕机了,此时串口屏上数据显示页面一片空白,也就是该显示数值的部分均无法显示。
因此,在查找问题过程中,首先排除zigbee模块,因为其实现的仅仅是数据的透传功能,而控制器实现的功能不仅仅是数据的收发,还有相应的控制线程,以及更新串口屏等功能。因此接下来怀疑是主程序问题,
为此,先抛开zigbee方式,回归到有线传输方式,现有控制器连接新版监测器,该监测器已恢复至只有一个485接口对外,通过菊花链式连接方式,发现还是无法检测,怀疑第2个监测器485接口连线错误,调整过后还是不行,转而用485集线器,惊喜发现可以实现。
打开主函数,通过串口调试助手,查询打印出来的语句,可以得知程序此刻正运行到哪一步中,我们发现在usart_task任务中,也就是执行请求数据,更新串口屏任务中,程序会卡在打印输出部分,无法执行该函数。联想到孝感项目,还是怀疑数据量过大。此外,在串口屏人机交互过程中,看到代码注释一条“至少100ms更新一次数据”,为此,在交互函数中,添加了200ms的延时函数,此外为了保险,将信号采集周期设定为10s,修改了之前获取数据的一个小问题,
经测试,发现数据可以正常读取,根据打印的消息,对比之前连接单个监测器时正常运行情况来看,确实是在正常的执行程序。
此外经过一晚上的测试,却是程序没有宕机,下一步准备测试zigbee部分。