我有一个项目里要用QSeialPort 一个串口连接几个设备(不同协议,但串口设置相同,9600,N,8,1)。
其中有只需要主机只发命令的,也有主机与从机一问一答的,采用轮询的方式与从机通信。实际测试下来发现当不同协议设备之间用write()函数给串口写命令时,串口需要Sleep很长时间,大约需要1秒延时才能实现正常的主从之间通信。但相同协议的设备串口用write()写命令时串口就不需要sleep那么长时间。问题是如何才能快速的在不同协议设备之间快速切换 ? 会不会时因为有的设备串口硬件反应比较慢造成的,但是如果串口单独连接“慢的设备”它又很正常
使用信号槽,发送和接收不要写在一起。
串口接收完数据以后会有readyread信号。