QT環境
win10、qt5.14.2
添加引用
工程文件.pro下添加QT += serialport
#include <QSerialPort>
#include <QSerialPortInfo>
獲取串口列表
QStringList SerialPort:: GetSerialPortList()
{
QStringList m_serialPortName;
foreach(const QSerialPortInfo &info,QSerialPortInfo::availablePorts())
{
m_serialPortName << info.portName();
qDebug()<<"serialPortName:"<<info.portName();
qDebug()<<"serialPortDescription:"<<info.description();
}
return m_serialPortName;
}
連接信號槽
connect(m_QSerialPort,SIGNAL(readyRead()),this,SLOT(readData()));
槽函數
void serialport::readData(){ QByteArray bytes = m_QSerialPort->readAll(); }
寫數據
m_QSerialPort->write(bytes);
注意
- 串口的寫是線程形式,在主線程創建後不能在其他線程中直接寫數據
- 在線程中寫data1和寫data2過程中延時QThread::masleep(),此寫法,在串口寫的時候沒有作用,還是會一起發送,可使用線程通知其發送
總結
- QT中和硬件讀寫相關的類,裏面都有數據準備好後都有信號產生,大多數都會繼承QIODevice
- 使用 F1 F2多查看文檔和類,QT的文檔非常齊全,大部分所需要的功能都會在文檔中出現