在上一篇文章的基础上,编写了一个对话框程序,可同时收发两路串口数据,每一路串口均在独立的子线程中实现。增加了清空edit的按钮。
1主程序界面

2两个子线程的线程号(调试信息中输出)

主线程的ID号为0x179c,两个串口子线程类的构造均是在主线程中,串口的启动、接收数据均在各自的子线程中,子线程ID号分别在0x14e4和0x5b0。而串口的关闭是在主线程中。这是和connect的配置有关。代码如下:
#include "serialcontroller.h"
#include <QDebug>
SerialController::SerialController(QObject *parent) : QObject(parent)
{
m_portId = -1;
}
SerialController::~SerialController()
{
if(m_serialThread.isRunning())
{
m_serialPort-

本文介绍了一种使用多线程进行串口数据收发的程序设计方法,实现了两路串口数据的同时收发。通过将串口操作放入独立子线程,有效避免了UI阻塞,提高了数据处理效率。文章详细阐述了如何在主线程中创建串口子线程,并在子线程中执行串口的启动和接收数据操作。
最低0.47元/天 解锁文章
1594





