QT串口类Win_QextSerialPort是不是有问题
最近使用Win_QextSerialPort串口类,发现发送数据总是不对,
比如我发123应该返回456,但每次都有可能先发出readyRead()信号,然后读到4,,读完之后再次接收到readyRead()信号读出来时56。
也就是发出去数据都可能分2次或1次接收到。难道有什么特殊的处理吗?
波特率是对的,数据位,停止位等都是对的。
[解决办法]
串口就是这样的
你得把读回来的数据自己拼起来
[解决办法]
这很正常,readyRead是在第一个字节到达时就发射。
不但是串口,网络通讯也是这样的。绝对不能抱有数据发出去了对方就能一次收到的想法!否则要通讯协议做什么?
在这种情况下,你应该约定通讯协议,即要么在数据的开头,要么在数据的结尾做标记,告诉对方你的数据怎样才算发送完毕。对方在没有收到这个标记前就一直接收。