请教STC15F2K32和串口屏通讯失败的问题
如题,上电是正常的,大概几小时后,偶尔会发现通讯失败,屏端有重发机制,屏发给单片机的是正常的,但是单片机收到后要回复一个数据,屏端收不到就一直重发。实测发生情况就是单片机的发送不正常了。
这个是单片机接收到的信号,波特率9600
这个是单片机发送的内容,很明显是不对的。
这是啥情况?
出现概率不大,5%以下吧,时间也不一定,有时候通电运行好几天也没有。有时候不到1小时就出现。出现时屏幕操作对输出是有效的。但是屏收不到任何信息了。只能断电重启才能恢复正常,怎样避免这种情况发生?单片机端有啥办法可以实施?
大概率是你的代码写得有问题 这明显是你程序问题,建议接收用队列缓冲区,主循环取出数据处理 Ayb_ice 发表于 2025-12-9 10:13
这明显是你程序问题,建议接收用队列缓冲区,主循环取出数据处理
是用中断方式的,每次TI后发送下个字节。直到缓冲区内容发送完毕。如果程序问题,为何有的好使有的不好使,大部分都没问题啊。有问题的也不是一直有,不定时出现,同一个板子,大概率只会出一次,断电重启后就连续几天都不会出了。
看起来只是发送了一个起始位,连续的起始位,没有数据。这个板子用的P16和17.
另外一个没有转移,是30和31的,一样的也会这样,都是偶尔出现。 Ayb_ice 发表于 2025-12-9 10:13
这明显是你程序问题,建议接收用队列缓冲区,主循环取出数据处理
就算程序问题,起码也要发送一个完整的字节吧。
难道发送没完成1毫秒时又写了SBUF就会重启发送起始位?而不是等待完成再发?
我发送第一个字节是直接写SBUF的,剩余的都是在TI发生以后才发送的啊 Ayb_ice 发表于 2025-12-9 10:13
这明显是你程序问题,建议接收用队列缓冲区,主循环取出数据处理
即便是第一个字节,也是在RI中发送的。 xiaobendan 发表于 2025-12-9 10:24
就算程序问题,起码也要发送一个完整的字节吧。
难道发送没完成1毫秒时又写了SBUF就会重启发送起始位?而 ...
每次发送都要等待前一发送完成,建议第一字节发帝直接延时一段时间再发 xiaobendan 发表于 2025-12-9 10:24
就算程序问题,起码也要发送一个完整的字节吧。
难道发送没完成1毫秒时又写了SBUF就会重启发送起始位?而 ...
我觉得你应该把你的代码甩到他们脸上,,让他们看看 串口屏重发周期是多少?会不会偶发的单片机发送处理错误,串口屏拼命重发导致单片机来不及处理,一直重发一直出错锁死了 网老四 发表于 2025-12-9 10:44
串口屏重发周期是多少?会不会偶发的单片机发送处理错误,串口屏拼命重发导致单片机来不及处理,一直重发一直 ...
看波形,锁死就会出现这种波形?关键是屏上的操作单片机这边还是有正常的动作的,重发间隔和正常工作时是一样的。而且出问题时,屏幕没有任何操作。只是不断的请求一些数据用来显示的。