QT实现串口透传的功能

在一些产品的开发的时候,需要将一个串口的数据发送给另外一个串口进行转发。

具体的代码如下:

cpp 复制代码
#include "mainwindow.h"
#include "ui_mainwindow.h"

MainWindow::MainWindow(QWidget *parent)
    : QMainWindow(parent)
    , ui(new Ui::MainWindow)
{
    ui->setupUi(this);
    initport();
    connect(m_port1,&QSerialPort::readyRead, this,&MainWindow::readData);
    connect(m_port2,&QSerialPort::readyRead, this,&MainWindow::readData2);

}

MainWindow::~MainWindow()
{
    delete ui;
}

void MainWindow::initport()
{
    m_port1 = new QSerialPort();
    m_port2 = new QSerialPort();

    m_port1->setBaudRate(115200);
    m_port1->setDataBits(QSerialPort::Data8);
    m_port1->setParity(QSerialPort::NoParity);
    m_port1->setStopBits(QSerialPort::OneStop);
    m_port1->setFlowControl(QSerialPort::NoFlowControl);
    m_port1->setPortName("COM25");

    m_port2->setBaudRate(115200);
    m_port2->setDataBits(QSerialPort::Data8);
    m_port2->setParity(QSerialPort::NoParity);
    m_port2->setStopBits(QSerialPort::OneStop);
    m_port2->setFlowControl(QSerialPort::NoFlowControl);
    m_port2->setPortName("COM21");

    m_port1->open(QIODevice::ReadWrite);
    m_port2->open(QIODevice::ReadWrite);


}

void MainWindow::readData()
{
    QByteArray array = m_port1->readAll();
    ui->textEdit->append(array);
}

void MainWindow::readData2()
{
    QByteArray array = m_port2->readAll();
    ui->textEdit_2->append(array.toHex());
    m_port1->write(array);
}

如下所示

相关推荐
Boilermaker19926 小时前
[Java 并发编程] Synchronized 锁升级
java·开发语言
MM_MS6 小时前
Halcon变量控制类型、数据类型转换、字符串格式化、元组操作
开发语言·人工智能·深度学习·算法·目标检测·计算机视觉·视觉检测
꧁Q༒ོγ꧂7 小时前
LaTeX 语法入门指南
开发语言·latex
njsgcs7 小时前
ue python二次开发启动教程+ 导入fbx到指定文件夹
开发语言·python·unreal engine·ue
alonewolf_997 小时前
JDK17新特性全面解析:从语法革新到模块化革命
java·开发语言·jvm·jdk
古城小栈7 小时前
Rust 迭代器产出的引用层数——分水岭
开发语言·rust
ghie90907 小时前
基于MATLAB的TLBO算法优化实现与改进
开发语言·算法·matlab
恋爱绝缘体17 小时前
2020重学C++重构你的C++知识体系
java·开发语言·c++·算法·junit
wuk9987 小时前
VSC优化算法MATLAB实现
开发语言·算法·matlab
AI小怪兽8 小时前
基于YOLOv13的汽车零件分割系统(Python源码+数据集+Pyside6界面)
开发语言·python·yolo·无人机