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