QT5 - 串口调试助手

前言

因为后面想用Qt做一个PID控制器(调式助手),具体有啥功能暂时也没法想得那么全面,但串口通信肯定是最最基础的吧,再加上之前没有学习过Qt,C++水平也菜的不行,所以先实现一个具备最简单的串口收发功能的串口调式助手试试水。

正是因为菜,所以当我们要真正做一件事情的时候,不要急于求成,做好先前工作很重要。所以呢我去简单回顾了一下C++(学过一点,但基本没用过,属于不会的那种),又在b站上看了几个Qt入门视频,最后在网上学习别人是如何实现Qt的串口通信的。一圈下来之后,我对我要做的事情基本上就有个底了。应该说,不难。这里我也把我实现的过程做个分享,毕竟从连C++都不太会到完成一个小小的作品,怎么说也是有成就感的。

QSerialPort

我使用的是Qt5.13.2版本,Qt5提供了QSerialPort模块,可以很方便地完成串口通讯所需要的设置;QSerialPort模块提供了两个C++类,分别是 QSerialPort 和 QSerialPortInfo。

QSerialPort:提供访问串行端口的功能

QSerialPortInfo: 提供有关现有串行端口的信息

QSerialPort使用方法

  1. 在pro文件中引入串口库:
QT += serialport
  1. 在.h文件中包含相应的头文件:
#include <QSerialPort>
#include <QSerialPortInfo>

这样你就可以愉快的使用Qt提供的QSerialPort模块的功能了。

实现

1.新建一个MainWindow项目

QQ截图20191103205646.png

这里简单介绍一下,QMainWindow是Qt窗口部件的一种基类,Qt Creator提供的默认基类有三种,分别是QMainWindow,QWidget和QDialog:

QMainWindow是带有菜单栏和工具栏的主窗口类

QDialog是各种对话框的基类

QMainWindow和QDialog继承自QWidget

我这里也没作太多的考虑,就选择QMainWindow吧。

2.UI界面设计

在Qt Designer中添加所需控件,针对控件的功能,修改相应的名字,方便后续代码的编写。

QQ截图20191103224406.png

QQ截图20191103224841.png

3.编写代码

pro文件

如上面提到的,在pro文件中添加:

QT += serialport

如果你想自定义最后生成的exe文件的名称,可以再添加一行:

TARGET = serialport  //serialport就是最后的 exe文件名称
mymainwindow.h

在这里添加串口库头文件,声明槽函数,并实例一个QSerialPort对象:

#ifndef MYMAINWINDOW_H
#define MYMAINWINDOW_H

#include <QMainWindow>
/* 串口头文件 */
#include <QSerialPort>          //提供访问串行端口的功能
#include <QSerialPortInfo>      //提供有关现有串行端口的信息

QT_BEGIN_NAMESPACE
namespace Ui {
    class MyMainWindow; }
QT_END_NAMESPACE

class MyMainWindow : public QMainWindow
{
   
    Q_OBJECT

public:
    MyMainWindow(QWidget *parent = nullptr);
    ~MyMainWindow();

private slots:          //槽函数
    void read_data();
    void on_btn_open_serial_clicked();
    void on_btn_send_clicked();
    void on_btn_clear_clicked();
    void on_btn_send_clear_clicked();

private:
    Ui::MyMainWindow *ui;
    QSerialPort serial;     //实例QSerialPort对象
};
#endif // MYMAINWINDOW_H

mymainwindow.cpp
#include "mymainwindow.h"
#include "ui_mymainwindow.h"
#include 
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值