QT实现串口透传的功能
在一些产品的开发的时候,需要将一个串口的数据发送给另外一个串口进行转发。
具体的代码如下:
#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);
}
如下所示