Qt 串口助手
关键词: Qt QSerialPort QSerialPortInfo 串口助手
之前有讲到Stm32的串口,从硬件的原理图到制作Stm32的开发板,再到Stm32的串口驱动程序。
这一章我们来看看我们用来接收串口数据的上位机------串口调试助手。
Qt已经帮我们封装好了两个类 QSerialPort 和 QSerialPortInfo,
使用这两个类就能很容易的写出一个串口调试助手了。
主要内容:
- Qt 串口类,QSerialPort和QSerialPortInfo基本用法
- Qt 串口类的 Ui 实现
- 实现串口的基本功能
- Qt 串口的一些使用技巧。
文档参考:
最新地址: https://taotaodiy-qt.readthedocs.io/en/latest/project/serialPort.html
Qt 串口类
首先我们来了解一下这两个基本类。
要使用串口类 需要在工程文件,pro文件中添加 QT += serialport
QSerialPortInfo
从类名上来看,这个类的功能大概就是串口信息了。
这个类的主要用法也就是来查询设备的串口信息,比如端口的名称,系统位置,描述和制造商等等。
例如调用 QSerialPortInfo 的静态函数 availablePorts()
就能获取目前计算机的所有连接的COM口列表,在初始化的时候用来查询可用串口
foreach (const QSerialPortInfo &info, QSerialPortInfo::availablePorts())
{
qDebug()<<"Name:"<<info.portName();
qDebug()<<"Description:"<<info.description();
qDebug()<<"Manufacturer:"<<info.manufacturer();
}
更多 QSerialPortInfo 参考 https://doc.qt.io/qt-5/qserialportinfo.html#details
QSerialPort
QSerialPort 就包含了串口的所有操作接口,初始化串口,读写数据等等。
初始化串口的时候,我们需要对串口进行设置。像之前Stm32一样,要设置串口的波特率,停止位,校验位。
这些,Qt都提供了接口,我们只需要调用该特定函数,传入我们想要的参数即可。
QSerialPort继承自QIODevic,串口被抽象成设备文件,我们只需要调用统一的接口,open()、read()、write()、close(),
就能完成串口的打开、读数据、写数据、关闭等等。
QSerialPort 还有一组信号,常用的包括 errorOccurred() 和 readyRead()
,在使用过程中, 通过关联信号和槽来监控串口收到数据和串口发生错误。
下面是 QSerialPort 头文件和构造函数
# 使用 QSerialPort 之前先添加
QT+= serialport
# 头文件
#include <QSerialPort> //串口访问
#include <QSerialP