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

news2024/11/23 21:19:45

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

文章目录

  • 1. 获取串口名字
    • 1.1 文件 `GUI.ui`
    • 1.2 文件 `GUI.h`
    • 1.3 文件 `GUI.cpp`
  • 2. 配置串口连接
    • 2.1 文件 `GUI.ui`
    • 2.2 文件 `GUI.h`
    • 2.3 文件 `GUI.cpp`
  • 3. 配置串口连接
    • 3.1 文件 `GUI.ui`
    • 3.2 文件 `GUI.h`
    • 3.3 文件 `GUI.cpp`
  • Ref

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

我的工程项目名字叫 “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 这个组合框中。

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


在这过程中,可能会遇到一个 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

在这里插入图片描述

最终运行效果如下:

在这里插入图片描述

3. 配置串口连接

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

3.1 文件 GUI.ui

在这里插入图片描述

3.2 文件 GUI.h

在这里插入图片描述

3.3 文件 GUI.cpp

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

最终运行效果如下:

在这里插入图片描述


Ref

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/668783.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

chatgpt赋能python:Python排错大全:10年经验总结,快速定位并解决问题!

Python排错大全:10年经验总结,快速定位并解决问题! 作为一名有着10年Python编程经验的工程师,在这篇文章中,我将详细介绍常见的Python排错技巧,以及我在实际工作中使用的一些技巧和最佳实践。我们将学习如…

《网络安全0-100》安全策略制定

安全策略制定 安全策略制定是指制定一系列的规范、标准和 流程,以保护企业或组织的信息资源和业务活 动,确保其安全性和可靠性。安全策略制定通 常包括以下几个步骤: 风险评估:对企业或组织的信息系统进行全面 评估&#xff…

Electron 和 Angular 项目升级

Electron 和 Angular 项目升级: Angular4Electron1.7.8 升级到 Angular13Electron2 原项目 Angular 和 Electron 版本: angular/cli: 1.4.9angular/core: 4.4.6Electron: 1.7.8 升级后 Angular 和 Electron 版本: Angular: 13.3.1Electron: 21.2.1 流程: angular-electro…

一次服务器被入侵的处理过程分享

一、服务器入侵现象 近期有一个朋友的服务器(自己做了网站)好像遭遇了入侵,具体现象是: 服务器 CPU 资源长期 100%,负载较高。 服务器上面的服务不能正常提供服务。 ​ 朋友处理了一会没有解决,我开始想说我不是搞安全的&#xf…

【Visual Studio】报错 LNK2019,使用 C++ 语言,配合 Qt 开发串口通信界面

知识不是单独的,一定是成体系的。更多我的个人总结和相关经验可查阅这个专栏:Visual Studio。 文章目录 问题解决方案Ref. 问题 使用 C 语言,配合 Qt 开发串口通信界面时,报错代码 LNK2019。 复制以下错误信息,方便别…

15、SQL注入之Oracel,MongoDB等注入

这里写目录标题 引言补充上篇文章Json注入案例分析 简要学习各种数据库的注入特点Access数据库Mssql数据库PostgreSQL数据库Oracle数据库MongoDB数据库 简要学习各种注入工具的使用指南 引言 mysql的注入方法跟其它的数据库注入方法是差不多的,是可以举一反三的&am…

【Pandas】pandas用法解析(下)

一、生成数据表 二、数据表信息查看 三、数据表清洗 四、数据预处理 ———————————————— 目录 五、数据提取 1.按索引提取单行的数值 2.按索引提取区域行数值 3.重设索引 4.设置日期为索引 5.提取4日之前的所有数据 6.使用iloc按位置区域提取数据 7…

elasticsearch8.5.2 报错(SearchPhaseExecutionException: all shards failed)

一、问题 logstash突然无法对elasticsearch服务进行读写操作了,提示elasticsearch的地址有问题,检测elasticsearch发现端口存在。查看日志发现有报错。 二、问题原因 有一些索引的数据损坏了 三、解决 官网文档:https://www.elastic.co/…

记录HBuilderX将uniapp项目运行到华为手机

解压并运行刚从官网下载的HBuilder X,新建一个项目 一、电脑下载【华为手机助手】并安装 下载地址: https://consumer.huawei.com/cn/support/hisuite/ 二、华为手机设置 1、手机准备:华为(没有插入手机卡)&#x…

《网络安全》0-100 零基础

网络安全基础 什么是网络安全 网络安全是指保护计算机网络不受未经授权的攻击、损伤、窃取或破坏的一系列措施。它包括保护计算机系统、网络和数据的完整性、可用性和保密性,以及防止未经授权的访问、使用、披露、破坏、修改、记录或丢失数据。 网络安全是保护信息…

探秘华为交换机:端口类型全解析

在下列情况下,判断的一般方法是什么? 1.交换机某个端口下的用户丢包。 2.交换机下的所有用户都在丢失数据包。 3、用户反映网速缓慢 检查网络电缆,重做水晶头,检查用户的计算机网卡,并重新启动交换机。 这几种做法都能…

在 PyTorch 中实现可解释的神经网络模型

动动发财的小手,点个赞吧! 目的 深度学习系统缺乏可解释性对建立人类信任构成了重大挑战。这些模型的复杂性使人类几乎不可能理解其决策背后的根本原因。 ❝ 深度学习系统缺乏可解释性阻碍了人类的信任。 ❞ 为了解决这个问题,研究人员一直在…

chatgpt赋能python:Python中算法的几种描述方法

Python中算法的几种描述方法 在Python中,我们可以采用不同的方法来描述和实现不同的算法。本文将介绍三种常见的描述算法的方法,希望能够帮助读者更好地理解算法和Python编程。 方法一:自然语言描述 自然语言是我们最熟悉的方式来描述算法…

三层交换器与可配置的二层交换机通信配置(华为交换机)

#三层交换器与可配置的二层交换机通信配置 三层交换机配置 #进入系统视图 <Huawei>system-view #关闭系统提示信息 [Huawei]undo info-center enable #启动DHCP功能 [Huawei]dhcp enable #创建vlan 10 并配置 vlanif 地址 作为二层交换机默认网关 [Huawei]vlan 10 …

nodejs高版本降为低版本的详细解决方案

部分老旧项目需要使用低版本的node,网上很多是无效的,高版本无法直接安装低版本node,但是低版本nodejs可以安装部分高版本node,从而达到升级效果,下面这篇文章主要给大家介绍了关于nodejs高版本降为低版本的详细解决方案,需要的朋友可以参考下 1.首先通过控制面板应用卸载当前环…

如何使用 Swagger2 自动生成 RESTful API 文档

如何使用 Swagger2 自动生成 RESTful API 文档 在开发 RESTful API 的过程中&#xff0c;文档是非常重要的一部分。它可以帮助开发者了解 API 的功能和使用方法&#xff0c;同时也是接口设计和测试的重要依据。而手动编写 API 文档往往比较耗时且容易出错&#xff0c;这时候 S…

【kubernetes】部署controller-manager与kube-scheduler

前言:二进制部署kubernetes集群在企业应用中扮演着非常重要的角色。无论是集群升级,还是证书设置有效期都非常方便,也是从事云原生相关工作从入门到精通不得不迈过的坎。通过本系列文章,你将从虚拟机准备开始,到使用二进制方式从零到一搭建起安全稳定的高可用kubernetes集…

NodeJS 配置HTTPS协议证书⑩⑤

文章目录 ✨文章有误请指正&#xff0c;如果觉得对你有用&#xff0c;请点三连一波&#xff0c;蟹蟹支持&#x1f618;前言HTTPS ❓配置证书工具 CertbotCertbot 使用步骤总结 ✨文章有误请指正&#xff0c;如果觉得对你有用&#xff0c;请点三连一波&#xff0c;蟹蟹支持&…

chatgpt赋能python:Python描述符详解

Python 描述符详解 Python 中的描述符是一种机制&#xff0c;用于控制属性&#xff08;attribute&#xff09;的访问。通过描述符&#xff0c;我们可以在属性被访问或者修改时加入特定的逻辑。 描述符是一个类&#xff0c;其中至少定义了以下三个方法&#xff1a; __get__(s…

docker入门手册

目录 1. docker基础 1. 1 docker介绍 1.2 docker架构与核心组件 1.3 docker安装和卸载 安装 卸载 docker加速器设置 -> 可选 1.4 权限问题 1.5 docker服务相关操作命令 2. docker镜像管理 2.1 镜像的搜索/获取/查看 镜像搜索 2.2 镜像别名/删除 2.3 镜像的导入…