QT串口的使用

 

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

注意

  1. 串口的寫是線程形式,在主線程創建後不能在其他線程中直接寫數據
  2. 在線程中寫data1和寫data2過程中延時QThread::masleep(),此寫法,在串口寫的時候沒有作用,還是會一起發送,可使用線程通知其發送

總結

  1. QT中和硬件讀寫相關的類,裏面都有數據準備好後都有信號產生,大多數都會繼承QIODevice
  2. 使用 F1 F2多查看文檔和類,QT的文檔非常齊全,大部分所需要的功能都會在文檔中出現
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章