QT串口开发实战:5分钟搞定串口检测与波特率设置(附完整代码)
在嵌入式、工业控制或者物联网设备调试的日常里,串口通讯就像一位沉默而可靠的老朋友。无论是单片机上传数据,还是传感器反馈信息,我们总需要与之建立对话。然而,对于许多刚接触QT进行桌面应用开发的工程师或爱好者来说,如何快速、优雅地在图形界面中集成串口功能,常常是第一个需要翻越的小山丘。网上资料虽多,但要么过于零散,要么深陷底层细节,难以直接“抄作业”。
这篇文章,就是为你准备的“速成工具箱”。我们不谈冗长的理论,不搞复杂的框架设计,直接聚焦于一个最核心、最高频的需求:如何在QT应用中,快速实现串口设备的自动检测与关键参数(尤其是波特率)的便捷设置。目标是让你在五分钟内,拥有一个可直接运行、功能完整且代码清晰的模块,并能轻松整合到你自己的项目中。无论你是需要为硬件产品开发一个调试上位机,还是想快速验证某个串口设备的通讯协议,这里的内容都将提供一条清晰的路径。
1. 项目起手式:环境与工程搭建
在开始敲代码之前,确保你的“工坊”已经准备妥当。这里假设你已经对C++和QT有基本的了解,我们的目标是快速实现,因此会使用最直接、最通用的方法。
开发环境准备:你需要一个安装了QT开发环境的IDE,Qt Creator是官方推荐,也是最方便的选择。确保你的QT版本包含了serialport模块。从QT 5.1开始,串口模块就以附加模块的形式提供,在安装QT时,记得勾选上它。你可以通过Qt Creator的“帮助”->“关于插件”来确认,或者在项目配置中查看。
提示:如果你在新建项目时没有找到相关的串口类,很可能是因为没有正确安装或引入
Qt Serial Port模块。可以通过维护工具(MaintenanceTool)来添加该模块。
创建一个新项目的步骤非常标准:
- 打开Qt Creator,选择“新建项目”。
- 在“Application”中选择“Qt Widgets Application”。虽然Qt Quick也能做,但Widgets对于这类工具型桌面应用,开发效率更高,资源占用也更直观。
- 为项目取个名字,比如
SerialPortQuickStart,并选择好保存路径。 - 在“Kit Selection”页面,选择你电脑上已配置好的编译套件(如Desktop Qt 5.15.2 MinGW 64-bit)。
- 一路点击“下一步”,直到“类信息”页面。这里我们可以先保持默认,创建一个带主窗口(MainWindow)的应用。最后点击“完成”。
项目创建好后,第一件要紧事是在项目配置文件(.pro文件)中,添加串口模块的依赖。打开你的.pro文件,在已有的QT变量后面加上serialport:
QT += core gui serialport
保存后,Qt Creator会重新解析项目。至此,你的开发环境就已经就绪,可以调用QSerialPort和QSerialPortInfo这两个核心类了。
2. 界面设计:简约而不简单的配置面板
一个友好的界面能极大提升工具的使用体验。我们不需要花哨的UI,但关键信息必须一目了然。我们将设计一个紧凑的对话框,包含所有必要的串口配置选项。
核心控件规划:
- 串口选择下拉框(QComboBox):用于列出当前系统所有可用的串行端口。
- 波特率选择下拉框(QComboBox):预置一系列常用波特率供用户选择。
- 刷新按钮(QPushButton):用户点击后,重新扫描系统串口,应对设备热插拔场景。
- 操作按钮(QDialogButtonBox):提供“确定”和“取消”的标准操作。
在Qt Creator中,你可以通过拖拽的方式,在mainwindow.ui文件里快速布局。但为了代码的独立性和复用性,我强烈建议你新建一个独立的对话框类。这样,这个串口配置模块可以像乐高积木一样,轻松插入到任何需要它的窗口中去。
创建新对话框类的步骤:
- 在Qt Creator项目树中,右键点击项目名称,选择“添加新文件...”。
- 选择“Qt” -> “Qt Designer Form Class”。
- 选择“Dialog without Buttons”模板,命名为
SerialConfigDialog。 - 点击“下一步”直到完成。这会自动生成
.ui、.h和.cpp三个文件。
打开serialconfigdialog.ui文件,使用设计师进行布局。一个参考的布局如下表所示,你可以根据喜好调整:
| 控件类型 | 对象名称 |
|---|

1516

被折叠的 条评论
为什么被折叠?



