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();
}