Qt使用QSerialPort来操作串口,使用时需要在.pro文件中加入:
QT += serialport
然后使用#include引入头文件。(我不明白为什么Qt要使用这样的设计,完全可以只依靠引入头文件来实现)
以下为打开串口的代码:
#include "mainwindow.h"
#include <QApplication>
#include<QDebug>
#include<QSerialPort>
#include<QSerialPortInfo>
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
QStringList m_listport;
//获取每一个串口的名称,并将其存入m_listport
foreach(const QSerialPortInfo &info, QSerialPortInfo::availablePorts()){
m_listport<<info.portName();
qDebug()<<"name:"<<info.portName();
}
//初始化一个实例对象
QSerialPort *m_sp=new QSerialPort;
if(m_sp->isOpen()){//如果已经打开,则先关闭
m_sp->clear();
m_sp->close();
}
//设置串口名称
m_sp->setPortName(m_listport[0]);
if(!m_sp->open(QIODevice::ReadWrite)){
qDebug()<<m_listport[0]<<"打开失败!";
}
else{
qDebug()<<m_lisyport[0]<<"打开成功!";
}
MainWindow w;
w.show();
return a.exec();
}