【Visual Studio】使用 C++ 语言,配合 Qt,开发了一个串口通信界面

知识不是单独的,一定是成体系的。更多我的个人总结和相关经验可查阅这个专栏:Visual Studio

我要使用的功能比较简单,主要包含扫描串口、打开串口、发送数据、接收数据、暂停按钮、停止按钮,因此接下里将围绕这几个功能依次更新。

我的工程项目名字叫 “GUI”。

首先展示下已经创建后的项目截图,主要包括 GUI.uiGUI.hGUI.cpp 这三个文件。

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

之后的每个功能,也都将围绕这三个地方进行添加和修改。

1. 获取串口名字

1.1 文件 GUI.ui

UI 界面中添加了一个 Combo Box 组合框,等下将扫描出来的串口号,添加到这个组合框中。

在这里插入图片描述

1.2 文件 GUI.h

GUI.h 文件中,添加需要用到的头文件,函数 getPortNameList(),变量名。

在这里插入图片描述

1.3 文件 GUI.cpp

GUI.cpp 文件中,编写函数 getPortNameList() 的具体功能。
同时,别忘了将获取到的端口号变量 m_serialPortName,添加到 comboBoxPortNumber 这个组合框中。

在这里插入图片描述
运行后,最终的效果如下:
在这里插入图片描述


潜在 Bug:LN2019

在这过程中,可能会遇到一个 LN2019 的 bug,可以参考这个教程解决:【Visual Studio】报错 LNK2019,使用 C++ 语言,配合 Qt 开发串口通信界面


2. 配置串口连接

这一步添加一个开始按钮 Push Button 和一个停止按钮 Push Button,当开始按钮按下时,我们让串口接通,当停止按钮按下时,我们关闭串口。
注意,在串口接通时,是需要选择配置一些串口传输时的必需信息的,比如波特率,数据位等。

但这我要做的项目中,用户需要操作的越少越好。因此,我这里都将所有信息内置到项目中,不再显露出来。

为了进一步观察状态,我们再添加一个文本浏览器 Text Browser,用来显示串口是否打开的状态。

2.1 文件 GUI.ui

在这里插入图片描述

2.2 文件 GUI.h

在这里插入图片描述

2.3 文件 GUI.cpp

在这里插入图片描述

最终运行效果如下:

在这里插入图片描述


潜在Bug:按下按钮无反应

如果你在编写按钮的事件函数时,没有使用和我一样的名字,那么当你按下按钮时,你编写的事件触发函数不会得到响应。这是因为你没有建立函数的按钮的信号连接。详情请参考这篇文章:【Visual Studio】开发 Qt 时右键没有自动添加 slots 槽的功能,使用 C++ 语言,配合 Qt 开发串口通信界面


3. 配置串口连接

这一步主要用来接收串口发送过来的信息并显示出来。我们添加一个文本浏览器 Text Browser,用来显示串口接收到的内容。

3.1 文件 GUI.ui

在这里插入图片描述

3.2 文件 GUI.h

在这里插入图片描述

3.3 文件 GUI.cpp

在这里插入图片描述
在这里插入图片描述

最终运行效果如下:

在这里插入图片描述


Ref

  1. Visual Studio如何使用Qt开发桌面软件?
  2. Qt 实现多线程的串口通信

猜你喜欢

转载自blog.csdn.net/weixin_36815313/article/details/131298584