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);
}

如下所示

相关推荐
Anastasiozzzz5 分钟前
Java Lambda 揭秘:从匿名内部类到底层原理的深度解析
java·开发语言
刘琦沛在进步9 分钟前
【C / C++】引用和函数重载的介绍
c语言·开发语言·c++
机器视觉的发动机21 分钟前
AI算力中心的能耗挑战与未来破局之路
开发语言·人工智能·自动化·视觉检测·机器视觉
HyperAI超神经29 分钟前
在线教程|DeepSeek-OCR 2公式/表格解析同步改善,以低视觉token成本实现近4%的性能跃迁
开发语言·人工智能·深度学习·神经网络·机器学习·ocr·创业创新
R_.L39 分钟前
【QT】常用控件(按钮类控件、显示类控件、输入类控件、多元素控件、容器类控件、布局管理器)
开发语言·qt
Zach_yuan1 小时前
自定义协议:实现网络计算器
linux·服务器·开发语言·网络
云姜.1 小时前
java多态
java·开发语言·c++
CoderCodingNo1 小时前
【GESP】C++五级练习题 luogu-P1865 A % B Problem
开发语言·c++·算法
陳10301 小时前
C++:红黑树
开发语言·c++
一切尽在,你来1 小时前
C++ 零基础教程 - 第 6 讲 常用运算符教程
开发语言·c++