Important: Please read the Qt Code of Conduct - https://forum.qt.io/topic/113070/qt-code-of-conduct

QSerialPort线程



  • 请问大家 有遇到过这种情况吗?
    使用QSerialPort进行串口通信,在主线程中new一个QSerialPort,并连接好指定串口。在主线程中可以正常通信,传入子线程中就不能使用。
    望解答,谢谢



  • @linxisuo said in QSerialPort线程:

    使用QSerialPort进行串口通信,在主线程中new一个QSerialPort,并连接好指定串口。在主线程中可以正常通信,传入子线程中就不能使用。

    QT大多数的类都不是线程安全的,需要在主线程使用



  • QT线程中run需要独立创建QSerialPort,并且start的时候不能占用端口。



  • QSerialPort为IO设备,不要进行跨线程操作。最好的方法如楼上所说,在子线程中实例化该对象,例如:继承QThread的子类,应该在run()函数中定义并实例化QSerialPort。


Log in to reply