在 Keil 中使用 STM32CubeProgrammer

news2024/11/25 14:47:39

1. 前言

STM32 MCU 新产品的早期用户有时候会遇见工具链还在完善中的情形,例如,一部分STM32 工具已经支持该产品,而另外一部分 STM32 工具还在更新中。具体到 Keil 用户,用户有可能可以使用 STM32CubeProgrammer 进行下载,但是 Keil 编译器中支持该产品系列的软件 Pack 还需要一些时间才会被更新。从而,用户能够使用 Keil 编译器进行编译甚至调试,但没法直接在 Keil 环境中对新产品进行下载。

对此,用户可以选择等待,也可以自行扩展 Keil 的 FLM 来支持该产品。但考虑到用户产品开发的时间限制以及新的STM32 正式 Pack 很快就会发布,更简单快速的一种解决方案是在 Keil 中直接使用STM32CubeProgammer 在进行调试前下载。

2. 步骤

这里以一个 NUCLEO-H723ZG 的 CRC_Example 为例。它是 STM32Cube 包中的一个完善的工程,可以正常使用配套的 Pack 进行编译下载调试。我们只是使用这个工程说明如何直接使用 STM32CubeProgrammer 进行 Flash 下载,没有其他特别的含义。

首先,在 Keil 工程界面里,选择[Flash]->[Configure Flash Tools]菜单。

图1.配置菜单
在这里插入图片描述
或者在工程浏览器的工程名字上点击右键,选择[Options]然后选择[Utilities]

图2.工程选项
在这里插入图片描述
你可以看到如下菜单,说明该工程默认使用 Pack 中的 FLM 进行下载。
图3.配置工具选项
在这里插入图片描述
我们将其切换成[Use External Tool for Flash Programming]。
在[Command]中选择 STM32_Programmer_CLI.exe,它会自动填上所在的全路径,例如:
C:\ProgramFiles\STMicroelectronics\STM32Cube\STM32CubeProgrammer\bin\STM32_Programmer_CLI.exe
在[Agruments]中输入使用 ST-Link 以及文件名参数,如下:

-c port=swd -w #L

STM32_Programmer_CLI 的更多用法,例如,在调试前修改某个特定选项字节,可以参考STM32CubeProgrammer 用户手册 UM2237。

这里值得一提的是 Keil #L 参数的使用。为了该命令行的通用性,我们应该使用编译器工具提供的一些参数间接指向所需要烧录的路径及文件,而不是硬编码。这样,工程选项的改动,不影响该命令行;而且该命令行也可以在多个工程中复制使用。#L 以及其他类似参数的含义可以在 Keil 联机帮助中搜索 “ Key Sequence for Tool Parameters ”。

设置界面如下:
图4.配置烧写指令
图4.配置烧写指令
其中[Run Independent]的含义是,是否让 Keil 不需要等待该命令行执行完毕。我们希望按顺序执行,所以该选项没有勾上。用户可以切换此选项观察效果。

3. 效果

这时候如果直接选择[Debug]
图5. 调试
在这里插入图片描述
则会发现 Flash 下载并没有发生。确实,这是其中不够完美的地方。但是如果选择[Download]
图6.下载
在这里插入图片描述
则会发现 Keil 调用 STM32CubeProgrammer 命令行进行当前工程的下载,如下所示:

图7.命令日志
图7.命令日志

然后,用户可以使用[Debug]启动调试,一切正常。
所以,简单的方法就是,用户在调试前,按下 F8。这样比使用 Pack 的 FLM 并没有麻烦多少。

4. 小结

本文提供了在 Keil 中使用 STM32CubeProgrammer 来进行调试前下载固件的方法,适合 STM32 MCU 新产品的早期用户在使用 Keil 时进行参考。

参考文献

在这里插入图片描述

文档中所用到的工具及版本

STM32CubeProgrammer V2.8.0
MDK ARM V5.34.0.0
STM32CubeH7 Firmware Package V1.10.0


本文档参考ST官方的《【应用笔记】LAT1187+在Keil中使用STM32CubeProgrammer》文档。
参考下载地址:https://download.csdn.net/download/u014319604/88971334

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

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

相关文章

【C++进阶】C++异常详解

C异常 一,传统处理错误方式二,C处理的方式三,异常的概念四,异常的使用4.1 异常和捕获的匹配原则4.2 函数调用链中异常栈展开匹配原则4.3 异常的重新抛出(异常安全问题)4.4 RAII思想在异常中的作用 五&#…

【ROS2笔记一】ROS2的基本组件

1.ROS2的基本组件 与ROS1类似的,ROS2也具有node,topic,service,action之类的组件,并且也具有rqt等工具。 可以像使用ROS1的命令行的方式(参这里【ROS学习笔记7】ROS中的常用命令行)&#xff0…

Python机器学习学习线路

随着人工智能技术的飞速发展,机器学习已经成为计算机科学领域的热门话题。Python,作为一门功能强大且易于上手的编程语言,成为学习机器学习的理想选择。本文将为您介绍一条Python机器学习的学习线路,帮助您逐步掌握机器学习的基础…

小程序 SSL证书的重要性与选择

随着移动互联网的迅猛发展,微信小程序已成为众多企业和开发者连接用户的重要平台。然而,随之而来的是对数据安全和隐私保护的严峻挑战。在这一背景下,小程序SSL证书的作用变得尤为重要,它为小程序提供了一个安全的通信管道&#x…

神策PRO PCIe 5.0 SSD发布,光威白菜级定价,打破海外品牌价格壁垒

记得去年DDR5刚刚流行的时候,光威就推出了不少平民价位的DDR5内存产品,加速了DDR5内存的普及,最近光威再接再厉,又拿出了神策PRO PCIe 5.0 SSD,这一举措不仅展现了企业的创新实力,看来是又要来普及PCIe 5.0…

蓝桥杯 — — RSA解密

RSA解密 友情链接:RSA解密 题目: 思路: 对于这道题目,给出了三个已知量n d C,要我们进行解密,对于解密的公式 X C e m o d n X C^e \mod n XCemodn来讲,我们有唯一的参数e是未知的&#xf…

标定系列——Ubuntu18.04下opencv-4.5.3与opencv_contrib-4.5.3源码编译(二十)

Ubuntu18.04下opencv-4.5.3与opencv_contrib-4.5.3源码编译 说明下载安装步骤1.更新2.安装必要的依赖包3.下载源码包并解压4.终端运行如下命令5.添加配置路径6.验证安装是否成功 说明 Ubuntu18.04下对opencv-4.5.3与opencv_contrib-4.5.3源码编译 下载 CSDN下载 安装步骤 …

Qt创建基于应用程序的插件

应用程序插件 什么是插件插件的好处插件的种类应用程序插件创建应用程序的插件步骤:创建测试插件的应用程序步骤:应用程序插件示例开发环境创建示例生成插件运行结果总结什么是插件 插件是一种用于应用程序功能扩展和增强,且按照特定规范编写的应用程序接口的程序。 插件的…

【应急响应事件】记一次矿机木马事件

事情起因,是因为实验室有一台服务器的占用率从开机启动就是100%,很怀疑就是中了某种矿机木马,拿去挖矿了,然后经过师兄的不懈努力,终于找到了木马文件,给他命名为virus_sample 然后我就拿着样本去逆了 木马…

Centos7在线安装mysql5.7

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 安装Mysql yum源1、卸载旧环境2、下载mysql yum源3、上传到自己服务器1)、上传源2)、安装yum源3)、查看yum源是否安装成功 安装M…

【Java核心技术】第3章 Java的基本程序设计结构

1 数据类型 Java一共有8种数据类型: 4种整型 类型存储需求int4字节short2字节long8字节byte1字节 2种浮点型 类型存储需求float4字节double8字节 1种字符型 1种布尔型 2 变量声明 2.1 局部类型推断 如果可以从变量的初始值推断变量类型,只需要使用…

Linux网络基础2(下)

传输层 再谈端口号端口号的划分netstatpidof UDP协议 UDP的特点UDP缓冲区UDP使用注意事项UDP报头的理解基于UDP的应用层协议 TCP协议 4位首部长度16位窗口大小确认应答机制32位序号和32位确认序号6个标记位超时重传机制连接管理机制流量控制快重传机制再谈序号延迟应答面相字节…

Day16_学点儿JavaEE_实践_基于IDEA2023的简易JavaWeb项目、Tomcat输出乱码解决

0 JavaWeb项目目录 └──JavaWeb├──resources│ └──db.properties├──src│ └──com.sdust.web│ ├──servlet│ │ └──StudentServlet│ ├──pojo│ │ └──Student│ └──util│ └──JDBCUtil├──web│ ├──st…

电商技术揭秘十三:云计算在电商中的应用场景

相关系列文章 电商技术揭秘一:电商架构设计与核心技术 电商技术揭秘二:电商平台推荐系统的实现与优化 电商技术揭秘三:电商平台的支付与结算系统 电商技术揭秘四:电商平台的物流管理系统 电商技术揭秘五:电商平台…

百科引流攻略|小马识途分享百科营销的五个技巧

纵观整个互联网领域,国内几大巨头百度、抖音、腾讯都布局了自身的百科平台,百科营销也始终作为网络营销一个重要分支而存在。很多人都知道百科营销是品牌背书的一把王牌,但很少有人提及百科营销的引流作用。 有人可能会说,百科词条…

[数据结构]—二叉树基本概念

1.树概念及结构 1.树的概念 树是一种非线性的数据结构,它是由n(n>0)个有限结点组成一个具有层次关系的集合。把它叫做树是因为它看起来像一棵倒挂的树,也就是说它是根朝上,而叶朝下的。 有一个特殊的结点&#xff…

老房改造系列--如何用一套流程接入所有业务线

ToB业务没有太多高并发的挑战,但同一套流程往往可能需要承载各种差异化的复杂业务需求,所以如何让系统具备良好的扩展性成为ToB业务系统最大的挑战。本文将详细讲述如何用一套流程接入所有业务线? 老系统改造不是一蹴而就的,从20…

【自用笔记】【大数据】

1 mapreduce (1)Map任务的数量:由输入数据的大小决定的,如文件数量和大小、HDFS块大小以及FileInputFormat的设置等。每个MapSlot可以运行一个Map任务 (2)Reduce任务的数量(分区数)&…

想走?可以!先买票--迭代器模式

1.1 乘车买票,不管你是谁! 售票员检查谁没有买票,把车厢里的人都遍历一遍。 1.2 迭代器模式 迭代器模式(Iterator),提供一种方法顺序访问一个聚合对象中的各个元素,而又不暴露该对象的内部表示…

[CSS]布局

盒子就是把网站分割成一小块一小块的吧,然后方便移动或者管理 背景 属性名描述background-color设置元素的背景颜色。background-image设置元素的背景图片。背景图片与背景颜色同时设置时,则图片覆盖颜色。写法如下:background-image: url(&…