串口通信因为其协议简单、应用灵活,被广泛使用。Qt自带了串口通信模块QtSerialPort,功能齐全,使用起来非常方便。QtSerialPort模块中有2个类使用的最多,分别是QSerialPort类和QSerialPortInfo类,QSerialPort类中包含了串口的一些操作,包括串口的打开关闭、COM口、波特率、数据位、停止位、校验位、流控制设置等操作,QSerialPortInfo类提供了计算机上已有的串口信息,包括端口名、系统位置、描述符、制造商、串口号等信息。
使用串口通信模块QtSerialPort之前,需要在项目的.pro文件中添加 QT += serialport 这句,否则程序编译报错,找不到串口相关类。
我用Qt写了一个简单的串口调试助手,可以在设备串口通信的时候用来收发数据,方便调试。开发所使用环境如下:
① Qt 5.14.1(包含对应的Qt Creator);带有QtSerialPort的其它Qt版本都支持;
② windows系统,理论上桌面系统都通用。
下面展示界面与使用效果:
实现的功能如下:
① 自动识别计算机中存在的COM口;
② COM口、波特率、数据位、停止位、校验位选择,打开与关闭串口;
③ 接收数据以字符串char、十六进制hex或十进制dec格式显示;
④ 清空接收数据区;保存接收数据区为txt格式文件;
⑤ 以字符串char、十六进制hex或十进制dec格式发送数据;
⑥ 按设定的发送周期自动发送数据;
⑦ 清空发送数据区;保存发送数据区为txt格式文件;
⑧ 接收字节数和发送字节数计数,并可清除计数;
为了展示功能,我使用虚拟串口驱动软件在电脑上虚拟出COM1和COM2两个串口,我打开两个串口调试助手,一个收一个发互相通信,如下图所示:
程序的源码我上传到CSDN上,地址:https://download.csdn.net/download/weixin_47488212/87741477
初学者可以借此学习Qt串口的使用,也可以直接嵌入到应用程序中使用,其它更具体的操作可以查看源码,喜欢的就给个赞吧!