搭建工程
拷贝qextserialbase.cpp、qextserialbase.h、win_qextserialport.cpp和win_qextserialport.h
到自己的工程下
#include "win_qextserialport.h"
Win_QextSerialPort *Com;
private slots:
void readCom();
void on_pushButton_clicked();
初始化
Com = new Win_QextSerialPort("COM2", QextSerialBase::EventDriven);
if(Com->open(QIODevice::ReadWrite) == false)
{
QMessageBox::warning(this, tr("warning"), tr("COM2 open failed."));
}
Com->setBaudRate(BAUD9600);
Com->setDataBits(DATA_8);
Com->setParity(PAR_NONE);
Com->setStopBits(STOP_1);
Com->setFlowControl(FLOW_OFF);
connect(Com,SIGNAL(readyRead()),this,SLOT(readCom()));
connect(button,SIGNAL(clicked()),this,SLOT(on_pushButton_clicked()));
读
void MainWindow::readCom()
{
qDebug() << "read: "<< Com->bytesAvailable() << "bytes";
QByteArray data = Com->readAll();
ui->textBrowser->insertPlainText(data);
}
写
void MainWindow::on_pushButton_clicked()
{
Com->write(ui->lineEdit->text().toAscii());
qDebug() << "write: "<< Com->bytesToWrite() << "bytes";
}
实际效果
经测试,在Win10运行,串口数据异常,还未找到原因
建议使用:https://blog.csdn.net/zhangxuechao_/article/details/81154296