在与硬件进行通信时,需要通过com口来进行与硬件的通讯,但是在qt中没有自动添加关于端口的包,因此需要自行添加。
第一步 在项目中的.pro文件中添加下面这句话
QT += serialport
第二步 包含关于端口的头文件 这两个头文件都必须同时存在。
QSerialPort:这个类的主要作用是提供访问端口的功能,在使用端口之前必须先实例化一个QSerialPort类,再通过这个实例化的对象进行配置参数等等。
QSerialPortInfo:最为重要的是QSerialPortInfo 这个类,在这个类里面包含很多和串口有关的变量和方法,就是为了方便Qt程序员进行Qt开发。就像获取系统中的所有端口,以及每个端口所对应的名称,都是通过这个类进行的。他说存储的端口信息主要包括端口号(com),系统的位置,以及串口类型,厂商等信息
#include <QtSerialPort/QSerialPort>
#include <QtSerialPort/QSerialPortInfo>
QList<QSerialPortInfo> listPort = QSerialPortInfo::availablePorts();
for (int i = 0; i < listPort.size(); i++)
{
QSerialPortInfo stInfo = listPort[i];
QString qsPortName = stInfo.portName();
qDebug()<<qsPortName;
ui->comboBox->addItem(qsPortName);
}
QSerialPortInfo::availablePorts() 是自带的获取端口的函数,他的返回值是将所有的端口一次返回,可以使用QList,通过链表的方式来存储返回的端口,也可以用循环的方式来存储
foreach(const QSerialPortInfo &info, QSerialPortInfo::availablePorts())
{
QSerialPort serial;
serial.setPort(info);
}
最后 comboBox->addItem(qsPortName) 将端口号存储到一个下拉列表中。
结果展示:
**QSerialPort** 类主要是提供了一些对端口操作的各种接口。但是他也有特别指出,他可以设置为仅读模式
SerialPort.open(QIODevice::ReadOnly);//打开串口,并设置串口为只读模式
SerialPort.setBaudRate(QSerialPort::Baud115200);//设置串口波特率(9600)
SerialPort.setDataBits(QSerialPort::Data8);//设置数据位(8)
SerialPort.setParity(QSerialPort::NoParity); //设置奇偶校检(无)
SerialPort.setStopBits(QSerialPort::OneStop);//设置停止位(一位)
本文福利, 免费领取Qt开发学习资料包、技术视频,内容包括(C++语言基础,Qt编程入门,QT图像,QT网络,QT数据库编程,QT项目实战,QT嵌入式开发,Quick模块等等)↓↓↓↓↓↓见下面↓↓文章底部点击免费领取↓↓