利用Qt多线程机制实现双路串口数据流的接收和发送(附工程源代码)

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

在上一篇文章的基础上,编写了一个对话框程序,可同时收发两路串口数据,每一路串口均在独立的子线程中实现。增加了清空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-
评论 14
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值