QThread中使用QSerialPort出现问题

时间:2021-05-08 05:27:36
我在QThread子类中使用QSerialPort局部栈对象readAll读取串口发现我接收到数据的大小有限定,限定在256最大。但是主线程中readAll数据大小就没有限定。这是什么情况?

4 个解决方案

#1


使用非阻塞模式,一个线程就够用了

#2


二楼就是正解

#3


非阻塞模式,你就使用信号与槽按照自动方式连接就好了,在主界面里面使用例如按下pushbutton这类处罚信号,然后执行打开文件,使用IO读取readall,将数据按串口发送就好了,如果非要多线程操作也是可以的,但是数据你需要现在主线程获得然后传给子线程,比如你在主线程读到QByteArray by,然后子线程关联函数获得这个by:void myThread::getArray(QByteArray by){myArray = by;},这样关联到子线程,然后子线程执行自己的myArray就可以了

#4


楼上的都对,你可以参考Qt的样例 Terminal Example 

#1


使用非阻塞模式,一个线程就够用了

#2


二楼就是正解

#3


非阻塞模式,你就使用信号与槽按照自动方式连接就好了,在主界面里面使用例如按下pushbutton这类处罚信号,然后执行打开文件,使用IO读取readall,将数据按串口发送就好了,如果非要多线程操作也是可以的,但是数据你需要现在主线程获得然后传给子线程,比如你在主线程读到QByteArray by,然后子线程关联函数获得这个by:void myThread::getArray(QByteArray by){myArray = by;},这样关联到子线程,然后子线程执行自己的myArray就可以了

#4


楼上的都对,你可以参考Qt的样例 Terminal Example