您好!这几天一直在试用官方针对点对点的BasicRF点灯程序,普通开发板。但不知为何程序会不定期的死机,有时半天都没事,有时1个小时后就出现故障,只要手动复位一下发送端才正常,程序我也只是改动了不是用来点灯而是发射数据流。之前也有网友提出这个问题,说发射太有规律性照成,不解???
* 发送端 :以10MS的延时间隔把8个字节的有效载荷不间断发送出去,一旦收到接收端的成功应答帧后转入接收模式,延时循环等待接收端发来的有效载荷数据,在规定时间内收没收到接收端发来的数据都会重新进入发送循环。
* 接收端 :从上电一直处在接收状态,当收到发送端的8字节有效载荷数据后取反一次LED(收到指示)并通过串口打印出来,然后立即向发送端发送3个字节的有效载荷数据,在规定时间内收没收到发送端 的应答都会重新进入接收循环。
!!有时在发了几百万和字节后就出现收不到数据了,接收端的LED不闪,串口也无数据,用抓包看到发送端还不停地再发但接收端只做应答(它们的帧序号都一样),只有复位发送端其才又开始正常通讯,我这几天的大概想法是,因为发送端的BUG造成发送端帧序号的不变,也就造接收端不停地丢包不处理,这可以理解,但是什么原因照成发送端在成功发一帧后帧序号不++呢?
在发送端的接收中断里放入LED取反闪烁发现出故障时的发送端无法进接收中断,实验取消帧过滤后可以了,但同信道的任何信号都会让其频繁进中断,这样效率就低了啊。请前辈们指点如何在保证帧过滤的情况下又不死机呢?谢谢!