【QT调用ST-link-使用QT编写程序-调用ST-LINK_CLI.exe-烧写STM32F4xxx-基础样例】
【QT结合ST-link,使用QT编写程序,调用ST-LINK_CLI.exe,烧写STM32F4xxx-基础样例】
- 1、前言
- 2、实验环境
- 3、先前了解-自我总结
- 4、实验过程
- (0)硬件连接与供电
- (1)安装&使用STM32 ST-LINK Utility
- (2)使用命令行工具 ST-LINK_CLI.exe
- (3)新建QT工程
- (4)代码结合
- (5)实验结果
- 5、实验代码
- 6、具体细节
- (1)如果使用软件时,提示找不到目标,
- (2)SN可以算选择不加入
- (3)文本框接受数据问题
- (4)参数问题:
- (5)报错:...St-LINK detected! ......
- (6)显示超时问题:Timeout during flash ....
- 7、总结
1、前言
最近在研究编写qt烧写STM32芯片,仿照STM32 ST-LINK Utility烧写工具,主要是是自己调试工具,不可能每次烧写固件,都需要调用STM32 ST-LINK Utility工具去烧,很麻烦的,另外给客户或者其他人使用,也不可能让他自己使用STM32 ST-LINK Utility烧写,所以做出一体的。
我开始也不知道怎么做,差了一些资料,目前如果使用qt的话,一般是都是使用qt调用st-link
相关工具,qt本身不具备烧写功能。
2、实验环境
实验环境还是挺重要的,因为有时候,在你电脑上能运行的东西,在别人的电脑就不一定能运行,这一部分的原因就可能是实验版本不一样。
系统环境:window环境
QT软件版本:qt 5.14.2
ST-Link命令行工具的版本号:STM32 ST-LINK CLI v3.6.0.0
硬件开发板:STM32F407ZET6(正点原子:探索者)
下载器:ST-link
3、先前了解-自我总结
(1)QProcess类的了解
目前看网上资料说,调用外部exe外部程序等,一般都需要这个类Qprocess。
这边有个简单简绍可以看下:https://blog.csdn.net/tianshi_1988/article/details/48273359
如果深入了解的话,可以直接看官网资料。
https://doc.qt.io/qt-6/qprocess.html
(2)下载工具ST-link的相关软件
一般下载的话,我们会可能会使用编译器内带的,如果有问题的话,才会考虑使用STM32 ST-LINK Utility或者STM32CubeProgrammer,然后弄个ST-link或者J-link硬件。
我们无论使用哪个工具,都需要保证软件是可用的,两个软件都可以去官网下载:
https://www.st.com/content/st_com/zh/search.html#q=STM32%20ST-LINK%20Utility-t=tools-page=1
(3)ST-LINK_CLI.exe与STM32_Programmer_CLI.exe
如上述图片,STM32 ST-LINK Utility工具装好后,会在对应文件目录下生成一个ST-LINK_CLI.exe文件,目录如下:
文件目录如下,一般默认的话就这个目录,这里也推荐默认的,后续编写qt程序要用。
//目录
C:\Program Files (x86)\STMicroelectronics\STM32 ST-LINK Utility\ST-LINK Utility
而对应的STM32CubeProgrammer软件也有个:
C:\Program Files\STMicroelectronics\STM32Cube\STM32CubeProgrammer\bin
当然本次重点是使用ST-LINK_CLI.exe,并且只是用基础命令,更深可以自己研究,本篇主要是使用qt调用,这个了解就好。
4、实验过程
(0)硬件连接与供电
本次使用正点原子开发板F407,我们需要知道下载口是那几个,需要连接有3个引脚,供电直接使用适配器。
这里可以去查正点原子原理图,或者你自己板子原理图,如果是STM32,大部分应该是这个。
SWCLK --- PA14
SWDIO --- PA13
GND --- GND
(1)安装&使用STM32 ST-LINK Utility
对于初学者,还是先要熟悉一下STM32 ST-LINK Utility这个软件的,就是一个下载工具。为此我们之间使用正点原子官方样例的固件。关于资料相关,可以去正点原子官网去查找,这里就不提供了,面面俱到太啰嗦了。
固件位置如下。
使用软件STM32 ST-LINK Utility进行下载:
如上我们课获得很多信息,比如芯片FLASH size,ST-link的SN,和芯片时F4的。烧写成功如下。
(2)使用命令行工具 ST-LINK_CLI.exe
如果上述你成功,那么一般而言,ST-link_CLI就是可以使用的,你可以理解上边软件工具,其实也是调用 ST-LINK_CLI.exe这个,只不过软件是写好图形界面。
使用CMD,找到命令提示符。
然后进入相应目录,就可以执行相应命令。
默认目录的好处就是,如果你安装都是默认,那么你的目录应该和我这里一样的。
然后执行命令就可以烧写了,如下。
ST-LINK_CLI.exe -c SN=0016002A4D46500F20383832 SWD -P C:/Users/Admin/Desktop/jaa/atk_f407.hex 0x08000000 -Rst
请注意找了ST-link的SN,需要根据自己下载器改,还有放置的目录也是一样的。,就是你要烧写的文件所在目录。
我开始不会时,也犯了各种错误,尝试了很多指令,总是报各种各样的问题,检验多尝试吧。
关于错误的,这块我忘记截图了,直接截图了成功的。
到这一步,你就基本会简单使用这个工具了,对于qt来说你已经验证了工具exe可用性。
(3)新建QT工程
新建qt空的工程,这个网上已很多,自己也说过,命好名字,一路向下。
弄好后,我们拉入一个文本框和按键,顺带编辑一下名字,布个局,直接运行下。
(4)代码结合
然后加入代码,代码也非常简单,不过20行。
1、第一步,编写功能代码。
2、第二步,引入头文件和在头文件中声明函数。
3、第三步,按键转到槽,让案件触发,收到信息发到文本框。
这里还是有很多注意点,自己也在这里卡了很久,有很多问题,都是参数编写错误导致。
(5)实验结果
看着文章挺简单的,但是实际上确实遇到很多问题,尤其是参数这块。
如上,就是使用一个简单qt程序调用烧写。更多情况,请看“具体细节”
5、实验代码
实验代码-样例demo:https://download.csdn.net/download/qq_22146161/88174078
6、具体细节
(1)如果使用软件时,提示找不到目标,
1、有可能没供电
2、有可能线序不对,或连接问题
(2)SN可以算选择不加入
实际测试,可以不写入SN,也是可以,就是st-link的SN参数可以不带。
(3)文本框接受数据问题
如下问题,其实是文本框接受数据问题,我发现,是加入代码46行开始报的。
如下更改就没有问题了。
(4)参数问题:
“unknow debug protocol or option” 这里其实参数"p"写错了,应该是"-p",一直摸不到头脑。
后来尝试在参数前后加入空格,发现报错“Unknown,command!Use -? for help”,只能说前车之鉴,后车之师吧。
(5)报错:…St-LINK detected! …
如此这样问题,是因为软件ST-LINK_Utility 开始,断开连接后者关掉软件就可以了。
(6)显示超时问题:Timeout during flash …
这块需要注意烧写文件的大小,已经匹配芯片flash大小,我讲一个很大的文件烧写时候,发现文件太大了,结果没烧成功,就会报错,所有烧写时候,要注意。
7、总结
记录,总结,成长。
相关文章:

【QT调用ST-link-使用QT编写程序-调用ST-LINK_CLI.exe-烧写STM32F4xxx-基础样例】
【QT结合ST-link,使用QT编写程序,调用ST-LINK_CLI.exe,烧写STM32F4xxx-基础样例】 1、前言2、实验环境3、先前了解-自我总结4、实验过程(0)硬件连接与供电(1)安装&使用STM32 ST-LINK Utility࿰…...
高并发下的Java项目解决方案
高并发下的Java项目解决方案 在当今的互联网时代,高并发是Java项目在设计和开发过程中必须要考虑的重要因素之一。本文将详细介绍如何在Java项目中处理高并发的问题,并提供具体的解决方案。我们将主要讨论四个主要的主题:服务器扩展…...

华为推出手机系统云翻新服务:什么是云翻新?如何使用?
华为手机系统云翻新是华为推出的一项功能,旨在通过云服务提供系统翻新的服务。它可以帮助用户对手机的系统进行优化和更新,以提高手机的性能和流畅度。具体而言,华为手机系统云翻新功能提供了免费的云空间,用户可以将手机中的系统…...
修改时间和创建时间的设计问题
记录一次 在django框架开发中遇到问题: 想要的逻辑: 当在保存数据时,create_time字段只会在新建数据时被设置为当前时间,并且之后不会再修改,而modify_time字段在每次保存数据时都会被设置为当前时间也可以为空&…...

CentOS 搭建 Harbor 镜像仓库(图文详解)
本文目录 1. 下载 Harbor 安装包2. 解压3. 修改配置文件4. 安装 Harbor5. 修改 docker 配置6. docker 登录方式7. 访问 Harbor Web 界面8. 创建证书9. 生成证书10. 更新配置11. 网页登录 说明:在搭建 Harbor 镜像仓库之前,虚拟机要先安装 docker 和 dock…...

【云原生】k8s组件架构介绍与K8s最新版部署
个人主页:征服bug-CSDN博客 kubernetes专栏:kubernetes_征服bug的博客-CSDN博客 目录 1 集群组件 1.1 控制平面组件(Control Plane Components) 1.2 Node 组件 1.3 插件 (Addons) 2 集群架构详细 3 集群搭建[重点] 3.1 mi…...

你真的了解什么是生成式AI吗?
最近正好有这样的机会,让我给一群非技术人士介绍生成式AI,忙忙碌碌了一阵子,结果发现受众还是未能理解什么是生成式AI,到底和之前的AI有什么区别。因此希望此篇能够帮助普通人真正理解生成式AI,有个直观印象。 人工智…...

Linux--高级IO
高级IO 1. 五种IO模型 阻塞IO:在内核将数据准备好之前,系统调用会一直等待。 所有的套接字,默认都是阻塞方式。阻塞IO是最常见的IO模型。 非阻塞IO:如果内核还未将数据准备好,系统调用仍然会直接返回,并…...

【C# 基础精讲】C# 开发环境搭建(Visual Studio等)
安装C#开发环境是开始学习和使用C#编程的第一步。目前,最常用的C#开发环境是Microsoft Visual Studio,它是一套强大的集成开发环境(IDE),提供了丰富的工具和功能,使开发C#应用程序变得更加便捷。以下是安装…...

谷粒商城第九天-解决商品品牌问题以及前后端使用检验框架检验参数
目录 一、总述 二、商品分类问题 三、前端检验 四、后端检验 五、总结 一、总述 在完成完商品分类的时候,后来测试的时候还是发现了一些问题,现在将其进行解决,问题如下: 1. 取消显示的时候,如果取消了显示&…...
Java8函数式接口
在工作中我需要,我需要递归处理复杂嵌套的JSON字符串,然后处理方法有多种,为了代码通用性,我想要把处理方法当作参数,传入到函数中,然后根据不同的处理方法处理字符串。通过查资料得知,可以使用…...

.Net6 Web Core API --- Autofac -- AOP
目录 一、AOP 封装 二、类拦截 案例 三、接口拦截器 案例 AOP拦截器 可开启 类拦截器 和 接口拦截器 类拦截器 --- 只有方法标注 virtual 标识才会启动 接口拦截器 --- 所有实现接口的方法都会启动 一、AOP 封装 // 在 Program.cs 配置 builder.AddAOPExt();//自定义 A…...

RocketMQ基本概念和高级原理
基础概念 消息模型 RocketMQ 主要由 Producer、Broker、Consumer 三部分组成,其中 Producer 负责生产消息,Consumer 负责消费消息,Broker 负责存储消息。Broker 在实际部署过程中对应一台服务器,每个 Broker 可以存储多个 Topic…...

小白到运维工程师自学之路 第六十六集 (docker 网络模型)
一、概述 Docker网络模型是指Docker容器在网络中的通信方式和组织结构。Docker容器通过网络连接,使得容器之间可以相互通信,并与主机和外部网络进行交互。 在Docker中,有几种不同的网络模型可供选择: 1、主机模式(H…...
Go和Java实现建造者模式
Go和Java实现建造者模式 下面通过一个构造人身体不同部位的案例来说明构造者模式的使用。 1、建造者模式 建造者模式使用多个简单的对象一步一步构建成一个复杂的对象。这种类型的设计模式属于创建型模式,它提供了 一种创建对象的最佳方式。 一个 Builder 类会…...

AutoSAR系列讲解(实践篇)11.6-服务映射(自顶向下)
目录 一、配置Service Needs 二、配置Cfg同步 我们在下一节的实验课中讲解这里的具体配置流程,本节主要讲一下这些配置的大致流程和配置项的作用。NvBlockSwComponents是一个可选项, 我们这里开始不使用NvBlockSwComponents,将我们的Application SWC直接和NvM通过C/S连接起…...

EXCEL, 用if({1,0,0} ...) 实现把给定的区域,输出为任意你想要的矩阵,数组区域!
目录 1 原材料:这样的一个区域 工具 if({1,0,0}) 数组公式 1.1 原始数据 1.2 原理 if(0/1,t-value,f-value)---变形--->if({},range1,range2) 1.2.1 if(0/1,t-value,f-value)---变形--->if({},range1,range2) 1.2.2 原理1: if 数组原理&#…...

c++实现Qt对象树机制
文章目录 对象树是什么使用对象树的好处使用c实现对象树 对象树是什么 我们常常听到 QObject 会用对象树来组织管理自己,那什么是对象树? 这个概念非常好理解。因为 QObject 类就有一个私有变量 QList<QObject *>,专门存储这个类的子…...

骨传导蓝牙耳机排行榜,精选五款排名最靠前的耳机
不知道大家在挑选耳机的时候会考虑什么?有些人会考虑耳机的功能、有些会考虑价格,还有的会考虑品牌等因素,但是综合下来,我们作为消费者无非是想要一款音质很好,而佩戴又很适合我们的耳机~我们年轻人作为耳…...

JDBC用法小结
JDBC用法小结 本文实例总结了JDBC的用法。分享给大家供大家参考。具体分析如下: DriverManger:驱动管理器类 要操作数据库,必须先与数据库创建连接,得到连接对象 public static Connection getConnection(String url, String username,Str…...

基于FPGA的PID算法学习———实现PID比例控制算法
基于FPGA的PID算法学习 前言一、PID算法分析二、PID仿真分析1. PID代码2.PI代码3.P代码4.顶层5.测试文件6.仿真波形 总结 前言 学习内容:参考网站: PID算法控制 PID即:Proportional(比例)、Integral(积分&…...

Spark 之 入门讲解详细版(1)
1、简介 1.1 Spark简介 Spark是加州大学伯克利分校AMP实验室(Algorithms, Machines, and People Lab)开发通用内存并行计算框架。Spark在2013年6月进入Apache成为孵化项目,8个月后成为Apache顶级项目,速度之快足见过人之处&…...
在鸿蒙HarmonyOS 5中实现抖音风格的点赞功能
下面我将详细介绍如何使用HarmonyOS SDK在HarmonyOS 5中实现类似抖音的点赞功能,包括动画效果、数据同步和交互优化。 1. 基础点赞功能实现 1.1 创建数据模型 // VideoModel.ets export class VideoModel {id: string "";title: string ""…...
2024年赣州旅游投资集团社会招聘笔试真
2024年赣州旅游投资集团社会招聘笔试真 题 ( 满 分 1 0 0 分 时 间 1 2 0 分 钟 ) 一、单选题(每题只有一个正确答案,答错、不答或多答均不得分) 1.纪要的特点不包括()。 A.概括重点 B.指导传达 C. 客观纪实 D.有言必录 【答案】: D 2.1864年,()预言了电磁波的存在,并指出…...

HTML 列表、表格、表单
1 列表标签 作用:布局内容排列整齐的区域 列表分类:无序列表、有序列表、定义列表。 例如: 1.1 无序列表 标签:ul 嵌套 li,ul是无序列表,li是列表条目。 注意事项: ul 标签里面只能包裹 li…...
服务器硬防的应用场景都有哪些?
服务器硬防是指一种通过硬件设备层面的安全措施来防御服务器系统受到网络攻击的方式,避免服务器受到各种恶意攻击和网络威胁,那么,服务器硬防通常都会应用在哪些场景当中呢? 硬防服务器中一般会配备入侵检测系统和预防系统&#x…...

cf2117E
原题链接:https://codeforces.com/contest/2117/problem/E 题目背景: 给定两个数组a,b,可以执行多次以下操作:选择 i (1 < i < n - 1),并设置 或,也可以在执行上述操作前执行一次删除任意 和 。求…...

JVM虚拟机:内存结构、垃圾回收、性能优化
1、JVM虚拟机的简介 Java 虚拟机(Java Virtual Machine 简称:JVM)是运行所有 Java 程序的抽象计算机,是 Java 语言的运行环境,实现了 Java 程序的跨平台特性。JVM 屏蔽了与具体操作系统平台相关的信息,使得 Java 程序只需生成在 JVM 上运行的目标代码(字节码),就可以…...
Java编程之桥接模式
定义 桥接模式(Bridge Pattern)属于结构型设计模式,它的核心意图是将抽象部分与实现部分分离,使它们可以独立地变化。这种模式通过组合关系来替代继承关系,从而降低了抽象和实现这两个可变维度之间的耦合度。 用例子…...

逻辑回归暴力训练预测金融欺诈
简述 「使用逻辑回归暴力预测金融欺诈,并不断增加特征维度持续测试」的做法,体现了一种逐步建模与迭代验证的实验思路,在金融欺诈检测中非常有价值,本文作为一篇回顾性记录了早年间公司给某行做反欺诈预测用到的技术和思路。百度…...