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

news2024/11/17 21:34:37

【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)数据帧长度问题

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

总结

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1126.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

python中os库的使用

目录介绍1 listdir(path: str)2 path.isdir(path: str)3 path.isfile(path: str)4 path.join(path: str, file: str)5 path.getsize(path: str)介绍 本博客记录python中os库的一些函数使用。 1 listdir(path: str) listdir()函数输入一个目录,返回该目录下的所有…

web前端 html+css+javascript游戏网页设计实例 (网页制作课作业)

🎉精彩专栏推荐👇🏻👇🏻👇🏻 ✍️ 作者简介: 一个热爱把逻辑思维转变为代码的技术博主 💂 作者主页: 【主页——🚀获取更多优质源码】 🎓 web前端期末大作业…

数字化浪潮下,低代码能否加速企业的数字化转型

随着加快建设数字中国的目标明确下来,市场上与数字化相关的企业都得到了极大鼓舞,这不仅意味着后续数字领域的加速发展,更是代表着数字化已经完全可以向各行各业拓展,大力推进数字化建设。数字中国也说明了数字化并不能只是限制在…

FastTunnel Win10内网穿透实现远程桌面

目录 一、需求 二、购买公网服务器 三、远程公网服务器 四、FastTunnel 的使用 1.下载 FastTunnel 2.启动服务器端 3.启动客户端 五、测试 六、安装服务 结束 一、需求 FastTunnel 简介 高性能跨平台内网穿透工具,使用它可以实现将内网服务暴露到公网供…

【数据结构与算法】时间复杂度和空间复杂度

✨ 个人主页:bit me ✨ 当前专栏:数据结构 🌟每日一语:窗外有风景 笔下有前途 低头是题海 抬头是鹏程 时间复杂度和空间复杂度的认知🌎 一. 如何衡量一个算法的好坏🌙 二. 算法效率🪐 三. 时间…

Word处理控件Aspose.Words功能演示:在 Python 中将 TXT 文件转换为 PDF

各种人使用记事本以TXT格式记下重点或快速创建笔记。此外,TXT 文件用于在各种应用程序中存储纯文本。但是,由于记事本不提供高级功能,因此 TXT 文件通常会转换为PDF。为了以编程方式自动将 TXT 转换为 PDF,本文介绍了如何在 Pytho…

WEB API 接口签名sign验证入门与实战

目录参考什么是加解密加密方式分类对称加密技术非对称加密技术(RSA加密算法)(数字证书)场景1:公钥加密,私钥解密场景2:秘钥加密:数字签名,公钥解密:验证签名M…

从位运算理解位图

位图是一种较难理解的数据结构,想了解位图,我需要先温习一下基础,复习下一些二进制的知识 位运算 1个字节8个二进制位 二进制每逢二进一,下面是二进制对应的十进制转换方式 二进制十进制0000 00012^010000 00102^120000 00112…

用户故事地图怎么用?实践才能出真知

在产品设计和交互过程中,用户体验是一个非常重要的部分。 随着产品的逐渐完善,主创团队也需要通过各个维度来了解用户需求,完善用户的整体体验。在这里,我们经常用到的一个实践是用户故事地图。 一、用户故事地图是什么&#xff…

【Linux】指令及权限管理的学习总结

文章目录1️⃣ Linux的文件系统结构简介2️⃣ Linux下的基本指令1. ls2. pwd3. cd4. touch5. mkdir6. rm7. rmdir8. cp9. mv10. cat11. more12. less13. head14. tail15. find16. grep17. zip18. unzip19. tar20. uname3️⃣ Linux下的权限权限管理1. 文件的访问者分类&#xf…

【C++】多态

1.多态 1.1多态的概念: 多态:就是多种形态,具体点就是去完成某个行为,当不同的对象去完成时会产生出不同的状态。李明要吃饭,那就要吃早饭,午饭,晚饭,而不是一天只吃午饭这种单一…

Java多线程(4):ThreadLocal

您好,我是湘王,这是我的CSDN博客,欢迎您来,欢迎您再来~ 为了提高CPU的利用率,工程师们创造了多线程。但是线程们说:要有光!(为了减少线程创建(T1启动&#xf…

Synchronized底层核心原理

前言:大家好,我是小威,24届毕业生,在一家满意的公司实习。本篇文章是关于并发编程中Synchronized锁的底层核心原理知识记录,由于篇幅原因,下篇文章将介绍各种锁的优化原理。 本篇文章记录的基础知识&#x…

vue3 异步组件

前端开发经常遇到异步的问题&#xff0c;请求函数&#xff0c;链接库&#xff0c;等&#xff0c;都有可能需要通过promise或者async await 来进行异步的一个封装。 异步组件也由此诞生&#xff0c;我用settimeout来模拟一个vue3的异步组件 异步的子组件 <template><…

spring框架源码十三、spring ioc高级特性-后置处理器

spring ioc高级特性-后置处理器BeanPostProcessor实例MyBeanPostProcessorapplication-context.xmlTestServiceImpl测试BeanFactoryPostProcessorspring提供了两种后置处理bean的扩展接口&#xff0c; 分别为BeanPostProcessor和BeanFactoryPostProcessor&#xff0c; BeanPos…

攻防世界WEB练习 | easyphp

目录 题目场景 代码分析 找到flag 题目场景 代码分析 if(isset($a) && intval($a) > 6000000 && strlen($a) < 3) isset&#xff1a;检查变量是否设置 intval&#xff1a;检查变量是否为int型 strlen&#xff1a;检查变量的长度 要求a存在且大于6…

Matlab之多平台雷达检测融合仿真(附源码)

此示例演示如何融合来自多平台雷达网络的雷达检测。该网络包括两个机载和一个地面远程雷达平台。中央跟踪器以固定的更新间隔处理来自所有平台的检测。这能够根据目标类型、平台机动以及平台配置和位置评估网络的性能。 一、定义中央跟踪器 将trackerGNN用作中央跟踪器&#…

云原生时代下,如何打造开源监控体系?宏时数据在GOPS与你相聚

相聚上海 宏时数据受邀出席2022 GOPS全球运维大会上海站&#xff0c;将分享演讲&#xff01; 时间&#xff1a;2022年10月28日15:20-15:40 AIOps最佳实践及解决方案专场 同时展位在301&#xff0c;现场有丰富礼品&#xff0c;快来做任务夺宝&#xff01; 还有Zabbix高级认…

【CSDN开发云】光速认识Cloud IDE

⌚️⌚️⌚️个人格言&#xff1a;时间是亳不留情的&#xff0c;它真使人在自己制造的镜子里照见自己的真相! &#x1f4d6;Git专栏&#xff1a;&#x1f4d1;Git篇&#x1f525;&#x1f525;&#x1f525; &#x1f449;&#x1f449;&#x1f449;你的一键三连是对我的最大支…

10.26 要尝试让自己安静下来,去做该做的事 而不是让内心烦躁,焦虑,毁掉你本就不多的热情和定力

要尝试让自己安静下来&#xff0c;去做该做的事 而不是让内心烦躁&#xff0c;焦虑&#xff0c;毁掉你本就不多的热情和定力 复习 import torch import torch.nn as nn import math from torch.autograd import Variable# 定义embedding类来实现文本嵌入层&#xff0c;这里的s…