一,前言
之前已经用到了stm32,作为一个整体系统,有下位机那么也要有上位机,今天开始基于QT6开发上位机,为什么用QT6,因为它是跨平台的,并且是开源的,这点我非常喜欢。而且QT6上位机加stm32下位机也是一种常见的搭配。
二,需求设计
需求我进行分阶段设计,总的来说就是通过上位机传输文件到下位机,那么从通信可以选wifi,蓝牙,以太网,usb通信,串口通信。针对实现我先选最简单的串口通信方式。
简单总结系统功能就是通过上位机串口传输文件到下位机(带fat32文件系统的sd卡中)。至于上下位机的通信协议我准备自定义,暂时还没有想好,我先设计QT的框架,通信协议最后补充。
而今天主要是完成QT上位机,我设计的需求是把选中的文件传输到"F:\qfile"文件夹下。通过泳道图绘制一个示意性的流程,作为构思,以供设计参考。
三,遇到的问题
QT6没有串口模块。解决方法是下载5.15的串口源码,编译完成后如下图1
在自建文件传输系统工程的pro文件最后添加,进行使用
INCLUDEPATH += D:/QT6_pro/qtserialport-everywhere-src-5.15.2/src/serialport
LIBS += -L D:/QT6_pro/build-qtserialport-Desktop_Qt_6_0_2_MinGW_64_bit-Debug/lib/ -lQt6SerialPort
但是文件传输系统工程编译时候串口的头文件报错,所以要修改QtSerialPort/qserialportglobal.h>变"qserialportglobal.h"
一个要修改2个h文件,如下图2
然后QT6就添加了串口通信库了,可以正常使用了。
四,运行效果
4.1 界面截图
4.2 演示效果
五,总结
今天算热身,先复习下QT,制作了基于QT6的上位机文件传输的通信框架及界面。QT用起来还真是简单,当然这次QT我们没有进行GUI的重新绘制,主要目的仅仅是实现其上位机的功能。