【QT调用ST-link-使用QT编写程序-调用ST-LINK_CLI.exe-烧写STM32F4xxx-基础样例】

41 篇文章 12 订阅
32 篇文章 13 订阅

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、总结

记录,总结,成长。

  • 3
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

好奇龙猫

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值