最近在使用stm32做人机交互系统,使用的是迪文的串口屏,单片机使用的是正点原子stm32H743开发板。
串口屏和单片机通过rs232通信,屏幕和开发板上电后,运行正常(开发板可正常接收发送串口数据)
问题来了:::::
一旦屏幕因为电流电压不稳或者其他情况导致屏幕重启,此时单片机就不能接收到屏幕发送的数据(此时屏幕的指令用逻辑分析仪检测是正确的,但是单片机无法进行接收),而且此时单片机工作正常、还可以发送数据到屏幕来显示一些数据。只有按下单片机复位键之后,两者之间的通信才恢复正常(可正常收发数据)。
总之就是:屏幕因为电压电流不稳定或者其他情况重启后,单片机只能发送数据不能接受数据。
调式了许久还是没有找到问题所在,尝试了给单片机的232rx端串联了电阻(1K、10K)还是没能解决。不失一般性,其他串口通信的设备也是,在正常的通信情况下,拔掉rx和tx再插上,此时也不能通信。实在不知道原因所在,串口初始化配置是使用cubemx自动生成的,请各位指导指导吧