当前位置: 首页 > news >正文

【QT 自研上位机 与 STM32F103下位机联调>>>通信测试-基础样例-联合文章】

【QT 自研上位机 与 STM32F103下位机联调>>>通信测试-基础样例-联合文章】

  • 1、概述
  • 2、实验环境
  • 3、联合文章
    • (1)对于上位机,可以参照如下例子
    • (2)对于下位机,可以参照如下例子
  • 4、QT上位机部分
    • 第一步:QT代码下载编译。
    • 第二步:QT代码验证。
  • 5、STM32下位机部分
    • 第一步:STM32代码验证。
    • 第二步:更改下载器与串口转换器。
    • 下载后,使用串口助手-验证结果
  • 6、联合调试
  • 细节部分
        • (1)验证STM32代码部分时,一直无法通信>>>DMA与堵塞,不要混用。
        • (2)设置波特率问题。
        • (3)数据帧长度问题
  • 总结

1、概述

刚开始接收这样的需求的时候,其实一脸懵逼,因为既要调试qt上位机,又要调试stm32下位机,如何把配合,又不是太了解。这个时候,建议分解任务,上位机做一部分任务,下位机做一部分任务,之前有做个STM32F103使用串口解析任务的,又有QT串口通信的,那么完全可以联合调试。

2、实验环境

实验环境还是挺重要的,因为有时候,在你电脑上能运行的东西,在别人的电脑就不一定能运行,这一部分的原因就可能是实验版本不一样。
QT软件版本:qt 5.14.2
在这里插入图片描述

硬件环境:野火-指南者STM32F103VET6
其它硬件配件:j-link,串口转换器,PC
说明:上下位机链接桥梁,依靠串口转换器
如图下图,本次硬件。
在这里插入图片描述

3、联合文章

(1)对于上位机,可以参照如下例子

样例文章:【QT 5 调试软件+串口相关初试串口+基础样例】

直接将代qt码链接放在这里:https://download.csdn.net/download/qq_22146161/86722251

(2)对于下位机,可以参照如下例子

样例文章:【软件STM32cubeIDE下F103配置uart3+DMA收发+简单数据解析-基础样例】

直接将代码链接放在这里: https://download.csdn.net/download/qq_22146161/86394451

4、QT上位机部分

虽然之前就做个QT相关实验,但是我们无论拿到的是他人的代码,还是自己的代码,最好都验证一下,保证代码本身没有问题,否则联调时,不通,怀疑来怀疑去的,最后自己的一个点没注意到,损失的是自己。

第一步:QT代码下载编译。

将代码下载下来后,更改波特率为9600,直接运行。
如下图所示
在这里插入图片描述

第二步:QT代码验证。

准备转换器,将RT与TX短接。
在这里插入图片描述
点击软件发送消息。

在这里插入图片描述
由此,QT软件部分就验证完毕了。

5、STM32下位机部分

虽然之前就做个STM32相关实验,但是我们无论拿到的是他人的代码,还是自己的代码,最好都验证一下,保证代码本身没有问题,否则联调时,不通,怀疑来怀疑去的,最后自己的一个点没注意到,损失的是自己。

第一步:STM32代码验证。

将代码下载下来,后点击编译,更改循环部分代码,使用堵塞方式传输。
在这里插入图片描述

第二步:更改下载器与串口转换器。

(1)我本次使用的j-link,没有使用ST-link,需要设置下。
在这里插入图片描述
(2)更加转换器型号不同,接的方式可能不同,但是接在STM32引脚如下。

PB10 --- USART3_TX---
PB11 --- USART3_RX---
GND  --- GND ----//共地细节 别忘了

下载后,使用串口助手-验证结果

使用串口助手发送“123”,十六进制就是 31 32 33,可以看到,回复 4 5 6 .
在这里插入图片描述

6、联合调试

完成以上测试,那么就可以联调了。其实整个硬件通路已经搭建好了,在测试STM32代码时,完事了,只需要关闭“串口助手”,运行QT程序就可以了。如下图。
在这里插入图片描述

细节部分

(1)验证STM32代码部分时,一直无法通信>>>DMA与堵塞,不要混用。

这其实有点尴尬了,话说自己写的,感觉应该没有问题,后来没办法,只能取野火官方下载样例跑,才证明板子没有问题,后来才发现,DMA传输与阻塞混用导致,这点还是需要注意下的,另一方面,如果我开始全部搭建好联调,那真不知道,到底是哪里出现问题了。
以下为使用开发样例效果,证明了板子硬件没有问题。
在这里插入图片描述

(2)设置波特率问题。

本文只是一个简单样例,是一个入门,在调试上,你觉得改QT简单,就改qt代码波特率以及配置,或者改32代码。

(3)数据帧长度问题

本次实验中,使用的数据其实非常短,但是实际应用中,数据可能非常长,并且非常快,实际需要调试的,可能会需要开定时器什么,那些暂时不在本文讨论范围之内。

总结

感觉最简单的,也需要一步一步调试出来。

相关文章:

  • c语言的三种基本结构——初学者一定要了解哦
  • 无人驾驶:高精地图与定位
  • 【论文笔记】提高超高分辨率图像的语义分割准确性的两种方法:MagNet(CVPR2021)与FCtL(ICCV2021)
  • OGG21C微服务的安装和配置
  • Matlab之多平台雷达检测融合仿真(附源码)
  • 2022年计网《宿舍网有线无线一体化项目》总结
  • 渗透测试基础- - -windows网络安全常用dos命令
  • 【Python】近似熵,样本熵,模糊熵计算高效版
  • Java获取自增主键ID值
  • 【算法入门图论】【模板】拓扑排序|【模板】单源最短路2 |最小生成树
  • 第31讲:MySQL事务的并发问题以及事务的隔离级别
  • JavaScript 2 JavaScript 简介
  • 【目标检测】YOLOv5在Android上的部署
  • 攻防世界WEB练习 | easyphp
  • Java数据结构:栈与综合计算器的实现(图解+完整代码)
  • 8年软件测试工程师感悟——写给还在迷茫中的朋友
  • ABAP的include关键字,Java的import, C的include和C4C ABSL 的import比较
  • Apache Zeppelin在Apache Trafodion上的可视化
  • golang中接口赋值与方法集
  • JavaScript创建对象的四种方式
  • java概述
  • k个最大的数及变种小结
  • Laravel深入学习6 - 应用体系结构:解耦事件处理器
  • python 装饰器(一)
  • yii2中session跨域名的问题
  • 编写高质量JavaScript代码之并发
  • 基于阿里云移动推送的移动应用推送模式最佳实践
  • 学习笔记DL002:AI、机器学习、表示学习、深度学习,第一次大衰退
  • kubernetes资源对象--ingress
  • 第二十章:异步和文件I/O.(二十三)
  • # Python csv、xlsx、json、二进制(MP3) 文件读写基本使用
  • #LLM入门|Prompt#1.8_聊天机器人_Chatbot
  • (0)Nginx 功能特性
  • (2)空速传感器
  • (Bean工厂的后处理器入门)学习Spring的第七天
  • (动态规划)5. 最长回文子串 java解决
  • (学习日记)2024.01.19
  • (原+转)Ubuntu16.04软件中心闪退及wifi消失
  • (转) Android中ViewStub组件使用
  • (轉貼) 蒼井そら挑戰筋肉擂台 (Misc)
  • .DFS.
  • .Net 知识杂记
  • .NET中统一的存储过程调用方法(收藏)
  • .pyc文件是什么?
  • /proc/stat文件详解(翻译)
  • @KafkaListener注解详解(一)| 常用参数详解
  • @serverendpoint注解_SpringBoot 使用WebSocket打造在线聊天室(基于注解)
  • @WebServiceClient注解,wsdlLocation 可配置
  • [ 手记 ] 关于tomcat开机启动设置问题
  • [Angular] 笔记 18:Angular Router
  • [COGS 622] [NOIP2011] 玛雅游戏 模拟
  • [docker] Docker的数据卷、数据卷容器,容器互联
  • [docker]docker网络-直接路由模式
  • [Firefly-Linux] RK3568修改控制台DEBUG为普通串口UART
  • [flask]http请求//获取请求体数据