1、qt的三驾马车

  • qt下的串口编程
  • qt下的网络编程
  • qt下操作GPIO

2、设计ui界面

设计ui界面之前,需要新建一个QT工程,简要再回顾一下创建QT工程的步骤:new project—》application—》Qt widgets application—》写入名字,选择路径—》基类选择“QWidget”。
创建好QT工程之后,先编译一下,看会不会报错,不然万一有错误,等到最后全部搞完的时候再去编译,如果有报错,都很难排错。上次我就是基类选错了,最后编译的时候报错,明明每一个环节都没错,直到第二天才想起来一开始的时候我就把基类选错了,哭辽.
(1)首先打开ui文件,根据下图的标准串口助手的界面去选择要使用的控件,我们从标准串口界面可以看到,想要设计一个串口助手,需要包含“接收端”、“发送端”、“串口号”、可选择的波特率等。

  • 接收框:接收其它设备发来的数据,这里选择的控件是“Input Widgets----》Plain Text Edit
  • 发送框:“Input Widgets----》Line Edit
  • 可选择的波特率:“Input Widgets----》Combo Box

    (2)界面布局以及禁止接收框写入数据
    放好控件之后,进行编译和运行。编译运行之后,结果如下图所示,但是我们发现,在发送框可以写入数据,同时在接收框也可以写入数据。在接收框可以输入数据这个就有问题啦,因为接收框是不能操作的。一般的串口工具在接收框输入数据的时候就会报错!

    修正一下,将接收框的属性改为只读的就可以啦。
    选中“接收框–勾选QPlainTextEdit(readonly)”即可。操作完成之后,重新编译运行,发现现在的接收框就不可以被写入数据啦。

    ui界面的设计大致就是现在的样子啦,下一步,给ui界面布局(小红色方框里的控件先水平布局,再垂直布局;黑色方框-水平布局;黑色与发送框、广告框垂直布局;垂直布局后的小红色方框与垂直布局后的发送框、广告、按钮水平布局;整个ui界面栅格布局。),并且设置最小宽度(将自制串口助手所在的控件的最小尺寸设置成了150x50)。编译运行结果如下,ui界面就基本完成啦。

    (3)接下来,给控件编辑它应该实现的功能,步骤如下:

    利用该方法分别给控件编辑选项,波特率(4800,9600,115200)、数据位(5,6,7,8)、停止位(1,1、5,2)、校验位(none),编译运行一下查看效果:

    效果可以的,但是出现了一个小问题,这里的布局有点乱啦,重新布一下局,回到ui文件,打破布局,将串口号以及其属性选择框等一系列相关的框给它们进行栅格布局。(红色框内的进行栅格布局,接着将黄色框内的给它水平布局)

    这次布局之后就很整齐美观啦。
    (4)设置可选择参数的默认值
    在标准的串口助手里面,有一些默认的值,比如:定时发送、HEX显示以及HEX发送,以及一打开串口助手就会在波特率等地方也显示常用的参数,这个我们应该如何实现嘞?
    比如波特率的常用参数为115200,选中波特率的属性选择控件,在属性编辑器里面找到currentIndex,可以看到第0位对应的是4800,所以相应的115200在刚才的项目里面排位为2(刚才项目里从0-2对应的是4800,9600,115200),故将此处的参数改为2试一下。编译运行结果中会自动在波特率一栏中选择115200.

    同样的方法,将数据位默认值设置为8,停止位默认值设置为1,校验位设置为none。

    (5)还需要写入串口号,串口号需要通过代码来实现。
    在写代码之前,需要给控件修改名字,避免在编写.cpp文件代码的时候对应到ui界面出现混乱,分不清楚哪个控件对应什么功能。

qt串口这里需要用到一个很关键的类serialport,要现在.pro工程文件里面添加该模块(在QT += core gui 代码后面加上该模块)

QT       += core gui serialport

添加完之后编译一下,看看有没有错误,没有错误的话再继续进行。
接下来,使用代码将串口号给加进去。打开“widget.cpp文件”,对文件进行编写和修改。

#include "widget.h"
#include "ui_widget.h"
//包含头文件
#include <QSerialPortInfo>Widget::Widget(QWidget *parent) :QWidget(parent),ui(new Ui::Widget)
{ui->setupUi(this);//先定义一个QStringListQStringList serialNamePort;foreach (const QSerialPortInfo &info, QSerialPortInfo::availablePorts()) {serialNamePort << info.portName();//QSerialPortInfo是串口的信息类,是存放串口信息的。//QSerialPortInfo::availablePorts是自动搜索当前的可用串口,其返回值是一个数组,数组的元素是QSerialPortInfo类型的//然后将返回值加到了QStringList这个二维数组里面。}ui->serialCb->addItems(serialNamePort);//将代码实现的功能显示在ui界面里面,这就是为啥刚才改名字。}
//通过这段代码就可以把当前搜索的可用的串口在ui界面显示出来Widget::~Widget()
{delete ui;
}

把购买开发板的时候送的U转串的线插到电脑上,然后编译运行该工程,就看到有自动匹配的COM3串口号了。

嵌入式学习之QT学习---5 QT上位机开发之串口助手(上)相关推荐

  1. 基于QT做上位机开发,实现FPGA通过cyusb3014芯片完成数据的收发

    <基于QT做上位机开发,实现FPGA通过cyusb3014芯片完成数据的收发> #任务要求: 要求用qt编写上位机程序,实现FPGA通过cyusb3014芯片完成数据的收发.下面是采用通过 ...

  2. 1.QT上位机开发之表格设计-TABLE WIDGET

    QT上位机开发之表格设计-TABLE WIDGET 开发平台: QT Designer QT5 系统:Windows 11 软件语言:python 项目需要开发上位机软件用于模块测试,自己之前没有做过 ...

  3. python上位机开发实例-python上位机

    广告关闭 腾讯云双11爆品提前享,精选热门产品助力上云,云服务器首年88元起,买的越多返的越多,最高满返5000元! 若python上位机接受到的字符为"1',则print出ok,如果字符是 ...

  4. Matlab上位机开发

    Matlab上位机开发 1 了解上位机 1.1 上位机的作用 1.2 常用上位机开发方式 1.2.1 Windows上位机(基于串口通信) 1.2.2 Android上位机(基于网络通信) 1.3 教 ...

  5. 1.3-原来这才是大家常用的上位机开发平台

    一.有哪些上位机开发平台(优缺点和使用场景) 由于上位机概念的广泛性,所以上位机开发平台可以是任何开发平台.这里介绍几个常用的经典的上位机开发平台及其特性. VB(Visual Basic) 开发语言 ...

  6. 上位机开发 常用的平台及语言

    首先看一下!全球范围内,编程语言流行度! 排名 编程语言 流行度 1 Java 16.896% 2 C 15.773% 3 Python 9.704% 4 C++ 5.574% 5 C# 5.349% ...

  7. 【上位机】通过QTCreator编写WIFI上位机与网络调试助手通信绘制曲线

    文章目录 前言 一.使用QT Creator编写上位机 二.上位机与网络调试助手联调 三.总结 前言 17年电赛H题中要求编写WIFI上位机实现远程幅频特性曲线显示, 以下是本人在近期摸索出来的一些心 ...

  8. 哈喽上位机(上位机开发指南)

    哈喽,上位机! -------上位机开发指南 作者:Robert Zhang 本博客以一个程序猿的角度解答了: - 有关上位机开发的疑惑 - 上机软件开发需要学习哪些知识 - 开发一个完整商业软件所需 ...

  9. java上位机开发(开篇)

    [ 声明:版权所有,欢迎转载,请勿用于商业用途. 联系信箱:feixiaoxing @163.com] 目前对于java语言,很多人都认为太简单.其实这是不对的,因为某种意义上来说所,java语言就像 ...

最新文章

  1. lvm的备份还原及修改UUID
  2. unity-tweak-tool不能打开的解决办法
  3. HDU 2852 KiKi's K-Number 主席树
  4. c# 溢出抛异常_Rust竟然没有异常处理?
  5. MEGA | 多序列比对及系统发育树的构建
  6. 假如有人炸了支付宝的存储服务器...
  7. Python之路(第十七篇)logging模块
  8. win 10 配置docker 阿里云 加速器
  9. 安装McAfee 8.7i 提示错误1920怎么办?
  10. 10.66道经典的Java基础面试题集锦为何晴空
  11. sublime text 3 输入中文 linux,解决 Linux 下 Sublime Text 3 中文无法输入问题
  12. 2015-FCN论文翻译
  13. 十六进制数相加校验和计算程序
  14. 介绍两款实用软件:CCPROXY和SOCKSCAP
  15. 红帽linux安装ftp服务,红帽Linux安装FTP服务
  16. 基于DSP/FPGA的超高速跳频系统基带设计与实现
  17. vue加d3js实现3d饼图
  18. 凌晨!科比因坠机离世, 球迷泪崩:凌晨4点,我的青春没了
  19. 小飞升值记——(15)
  20. kafka-整理-重试机制

热门文章

  1. python读取二进制流的CSV文件、读取zip压缩包中的csv文件(流)并把数据解析成dict
  2. Azure Data Factory操作使用介绍
  3. 智能手机背后隐藏的第二系统——RTOS
  4. # 什么是前端重构?
  5. Vue项目打包步骤详细流程,新手必需掌握的知识点!
  6. HT780S 编程软件 官方版 v1.07.04
  7. IDEA操作小乌龟(SVN)
  8. 计算机二级是笔试还是机考,计算机二级考试是上机考还是笔试?
  9. 0x000000f怎么修复 win10_win100xc000000f 解决办法_win10出现错误代码0xc000000f怎么修复...
  10. python入门指南小说免费阅读-python3.6.0入门指南(官方版).pdf