QT--串口UART
qt工程文件
1)FirstQt.pro -->工程文件
2)mainwindow.h -->头文件
3)main.cpp -->c++文件,qt主界面程序。(不要动)
4)mainwindow.cpp -->界面程序
5)mainwindow.ui -->界面文件
QT头文件
#include <QString> //字符串类型头文件
#include <QDebug> //调试输出语句头文件
mainwindow.cpp: mserial = new QSerialPort; if(mserial!=NULL) { qDebug()<<tr("扫描存在的串口"); foreach (const QSerialPortInfo &info,QSerialPortInfo::availablePorts() ) { QSerialPort ser; ser.setPort(info); /* 判断端口是否能打开 */ if(ser.open(QIODevice::ReadWrite)) { ui->combobox->addItem(ser.portName()); qDebug()<<tr("Port:")+ser.portName()+tr("\r\n"); ser.close(); } } } int com_num = 0; void MainWindow::on_pushButton_clicked() { com_num++; if(com_num == 1) { //设置串口名称 mserial->setPortName(ui->combobox->currentText()); //设置波特率 mserial->setBaudRate(ui->baud_com->currentText().toInt()); //设置数据位数 mserial->setDataBits(QSerialPort::Data8); //设置奇偶校验 mserial->setParity(QSerialPort::NoParity); //设置停止位 mserial->setStopBits(QSerialPort::OneStop); //设置流控制 mserial->setFlowControl(QSerialPort::NoFlowControl); mserial->setReadBufferSize(1024); //打开串口 if(mserial->open(QIODevice::ReadWrite)==true) { QObject::connect(mserial,&QSerialPort::readyRead,this,serialrecvmsevent); qDebug("open seccess\n"); ui->pushButton->setText("关闭串口"); } else { qDebug("open false\n"); com_num = 0; } } if(com_num > 1) { if(mserial->isOpen()) { qDebug("close seccess\n"); mserial->close(); ui->pushButton->setText("打开串口"); com_num = 0; } } } void MainWindow::serialrecvmsevent() { QByteArray buffer; buffer = mserial->readAll(); if(!buffer.isEmpty()) { buffer.clear(); } } *.pro: QT += core gui printsupport serialport mainwindow.h: #include <QtSerialPort/QSerialPort> #include <QtSerialPort/QSerialPortInfo> public: QSerialPort *mserial;