QT应用篇
一、QT上位机串口编程
二、QML用Image组件实现Progress Bar 的效果
三、QML自定义显示SpinBox的加减按键图片及显示值效果
四、window编译LibModbus库并用QT编写一个Modbus主机
五、手把手教学用QT编写TCP上位机并显示温湿度
文章目录
QT 篇 一、QT上位机串口编程
最近因为项目需要,需要用到上位机,通过串口与上位机进行通讯,来上传和下发一些数据以及控制指令,所以用QT写了一个上位机,并记录下来,免得到时候要用又到处翻资料。
QT版本:QT Creater 4.80
硬件:stm32 + 串口转ttl模块
2023-12-28 更新
可以通过安装虚拟串口来模拟串口通信的情况
软件: Virtual Serial Port Driver 7.2
可以生成虚拟串口 无需实际硬件串口就可以实现同一台电脑上串口模拟通信 方便调试串口助手
链接:https://pan.baidu.com/s/1GuQ8UoojWZk-YjsnDhqurg?pwd=2023
提取码:2023
–来自百度网盘超级会员V5的分享
安装好了之后打开
点击Add pair
生成一对虚拟串口 COM1 和COM2
虚拟串口测试
后续可以使用虚拟串口来调试,这样就不需要ch430来才能调试了
默认安装好QT了
1.新建工程
选择Qt Widgets
然后下一步
自己填一个项目名字和项目路径
我只安装了这一个,我就选了这个
这里主要是一些基类的选择
这里我选择QMainWindow
类名,文件名什么的,你们看看要不要改名
项目管理这里版本控制选择无
然后就完成了创建了
2.添加类和库文件
QT5自带有串口的封装库 QSerialPort ,我们要用的相关的函数,所以要在.pro文件里面添加一样代码,在QT += core gui的基础上添加serialport
QT += core gui serialport
在mainwindo.h里添加串口的一些库
#include <QSerialPort> //访问串口的库
#include <QSerialPortInfo> //查询串口信息的库
#include <QDebug> //用于调试打印输出的库
#include <QTimer> //定时器的库
#include <QTime> //时间的库
#include <QDate> //日期的库
#include <QMessageBox> //一个小的弹窗库
其实上面这些这需要添加最顶上的了两个就够了,其余的是我有其他的用处就加了进去
3.设计上位机页面
这是我自己设计好的上位机
布局上参考了一下正点原子的XCOM串口软件
上位机页面
先设置好窗口的大小固定位800x480
窗口最大和最小都是800x480 这样一来就没办法拉伸了,就不会影响美观
然后可以按照我的设计页面来摆放一些控件
当然你们也可以不用这么多控件,因为实际上来说,需要修改的串口参数其实就只有名称和波特率而已,其余的是可以固定不做改变的
看需求
对象的名称最好改一下,不然到时候编写代码的时候你会不记得哪个代表哪一个部件,我的部件的名称
对象名称
摆放好这些部件后
分别添加波特率
停止位
数据位
奇偶校验等等
然后设置Combox的初始值
我把串口的波特率设置为115200是初始值
其余的你们看着来
CurrentIndex的索引和数组一样,从0开始
4.添加函数 扫描串口和初始化串口设置
在mainwindow.h里的
private:
//定时器
QTimer *timer;
// 串口对象
QSerialPort *serialport;
//扫描串口
void scanSerialPort();
//初始化
void serialPortInit();
public
int btn_on_off = 0;
int btn_state = 0;
mainwindow.cpp文件
MainWindow::MainWindow(QWidget *parent) :
QMainWindow(parent),
ui(new Ui::MainWindow)
{
ui->setupUi(this);
//对象实例化
serialport = new QSerialPort(this);
timer = new