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的文档非常齐全,大部分所需要的功能都会在文档中出现
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章