测试系统为CC1101+stm32 MCU,一对一测试时,主机通过电脑串口收到指令后,向从机发送命令,从机收到指令后解析并返回响应,主机接收到从机响应后通过串口打印信息。电脑串口发送指令周期为250ms,持续运行2小时后测试系统正常(有丢包,但在正常范围内)。
增加到三组进行测试(每台设备都有唯一地址,每组两个设备通过通信协议中地址校验区分是否为同一组,以保证不会解析/响应其它设备命令),发现一般在20分钟内就会有一组设备出现异常,主从机都有可能。
程序配置为GDO0输出电平指示无线发送/接收状态,在测试异常情况下用万用表测量GDO0管脚电压,发现GDO0一直处于assert状态,那么程序就死在了查询GDO0状态的while(1)循环中,程序仿真发现是在发送时出现了异常。把其他正常通信设备关闭后,异常设备不能恢复正常通信。
多组测试情况下丢包率变高比较好理解,但按上述情况的话,好像硬件出了问题,导致死机。有相关经验大牛还请帮忙分析下!感谢~