STM32单片机通过ST-Link 烧录和调试

系列文章目录

STM32单片机系列专栏

C语言术语和结构总结专栏

文章目录

1. ST-LINK V2

2. 操作步骤

2.1 连接方式

2.2 驱动安装常规步骤

2.3 Keil中的设置

3. 调式仿真

4. 常见问题排查


1. ST-LINK V2

ST LINK v2下载器用于STM32单片机,可以下载程序、调试程序、读取芯片数据,解除芯片读写保护等等,辅助软件用的是STM32 ST-LINK Utility。

 STM32 ST-LINK Utility

这个软件工具是配套“ST-LINK” 工具一起使用的上位机软件,用于烧写代码。因此使用STM32 ST-LINK Utility上位机软件需要链接ST-LINK。Utility可以在产品开发过程中测试一些其他版本的代码,可以直接下载hex,而不用打开工程再编译去下载。 例如开发完一个STM32产品,需要量产的时候,就可以用这个工具直接下载hex代码或者.bin文件,对代码加密。

一个关键的点:STM32 ST-LINK Utility包含ST-Link驱动。也就是说如果安装了STM32 ST-LINK Utility软件,ST-Link就不用单独安装驱动了,可以在Keil中直接使用。

Utility集成开发环境的安装比较简单(基本上就是一路点击确定,除了安装地址修改一下,其他的默认就可以) 

ST官方网站下载链接:

官网下载链接

2. 操作步骤

2.1 连接方式

ST-link/v2与stm32f103c8t6的连接对应引脚相连接即可。

STLINK上面有标注10个引脚。,但是实际只需要连接4根线,GND和VCC是需要连接的。

ST-link V2调试下载器单片机硬件电路
3V3VCC(3.3v)
SWDIOSWDIO
SWCLKSWCLK
GNDGND

 

2.2 驱动安装常规步骤

电脑usb接口接上仿真器ST-LINK/V2,查看设备管理器,点开通用串行设备,若连接正常,则会出现STM32 STLink。如果没有,说明这个电脑一直没有安装过这个驱动。

下面的链接可以找到ST-LINK驱动文件,双击dpinst_amd64.exe可执行文件,这个要根据自己电脑系统位数来选择的。安装过程一路点击确定就可以了,不需要改变。

单片机调试和下载工具软件
 

2.3 Keil中的设置

接线完成后,并且在设备管理器中也显示了STM32 STLink(如果下面有黄色感叹号,说明没有成功,拔掉st-link,然后重新连上电脑),之后打开KEIL,点击魔术棒,然后点击Debug,选择ST-Link Debugger仿真器。

接着点击Settings,这里如果可以看到如下图所示的内容,右边可以看见我们的设备,就代表识别成功了,注意下面要选择SW。

接着不要关闭页面,点击Flash Download。如下图所示,Reset and run可选可不选,不选时下载完程序要按复位键程序才会运行,如果勾选了程序下载完成后会自动运行。
在Programming Algorithm 窗口检查是否选择芯片相应flash烧写算法。这里是F103C8T6,容量是128k的,所以选择128k的烧写算法。

如果选择的不对,要将原来的文件删除掉,重新添加文件。点击默认芯片,然后点击Remove。

删除掉原文件后,再点Add按钮添加新文件。在打开的对话框中选择第一个文件 128K大小,点Add按钮,添加新文件。这时flash文件大小就变成128k了,最后点确定按钮。

如果打开窗口时看到这个Programming Algorithm 窗口没有可选择的芯片,要检查看看是否已安装芯片所需的PACK包 Keil.STM32F1xx_DFP.2.2.0.pack。

如果使用的是别人的项目,需要更改单片机型号,可以看一下下面的文章:

使用Keil移植工程时修改单片机型号参数

3. 调式仿真

还是先点击魔术棒,点击Debug,这里要注意,左边的Use Simulator 是在线仿真,不需要连接ST-Link 和STM32,图片中勾选的就是在线仿真。如果想使用实物ST-Link进行调试,勾选右边的Use。

接着点击Debug按钮进入debug模式(Ctrl + F5)

接着就会加入调试仿真界面

4. 常见问题排查

1. 提示No target detected 或者下面的错误

大概率是型号选择错误或者没有设置好,按照上面的步骤再检查一遍

2. 如果提示的是No target connected,那么原因就是板子没有独立供电导致的。

3. 如果提示ST-LINK USB communication error,说明需要升级一下固件。


 

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

01、创建型-单例模式--只有一个实例

文章目录 前言一、基本介绍1.1 什么是单例模式1.2 为什么要用单例模式1.3 应用场景1.4 单例优缺点 二、单例模式的实现方式2.1 饿汉式单例2.1.1 静态变量方式2.1.2 静态代码块 2.2 懒汉式单例2.2.1 懒汉式单例2.2.2 懒汉式优化①-线程安全2.2.2 懒汉式优化②-双重检查锁2.2.3 懒…

构建NodeJS库--前端项目的打包发布

1. 前言 学习如何打包发布前端项目,需要学习以下相关知识: package.json 如何初始化配置,以及学习npm配置项; 模块类型type配置, 这是nodejs的package.json的配置main 入口文件的配置 webpack 是一个用于现代 JavaSc…

spring boot3单模块项目工程搭建-上(个人开发模板)

⛰️个人主页: 蒾酒 🔥系列专栏:《spring boot实战》 目录 写在前面 上文衔接 常规目录创建 common目录 exception.handle目录 result.handle目录 controller目录 service目录 mapper目录 entity目录 test目录 写在最后 写在前面 本文…

[Java EE] 多线程(四):线程安全问题(下)

1.5 volatile关键字 我们在了解这个关键字之前,我们首先要把产生线程安全的第4个原因补齐,我们来说说由于内存可见性引起的线程安全问题. 我们来看下面这样一段代码: import java.util.Scanner;public class Demo16 {public static int count 0;public static void main(Str…

HTML随机点名程序

案例要求 1.点击点名按钮&#xff0c;名字界面随机显示&#xff0c;按钮文字由点名变为停止 2.再次点击点名按钮&#xff0c;显示当前被点名学生姓名&#xff0c;按钮文字由停止变为点名 案例源码 <!DOCTYPE html> <html lang"en"> <head> <m…

动态规划——斐波那契数列模型:746.使用最小花费爬楼梯

文章目录 题目描述算法原理解法一1.状态表示2.状态转移方程3.初始化4.填表顺序5.返回值 解法二1.状态表示2.状态转移方程3.初始化4.填表顺序5.返回值 代码实现解法一&#xff1a;C解法一&#xff1a;Java解法二&#xff1a;C解法二&#xff1a;Java 题目描述 题目链接&#xf…

K8S探针分享

一&#xff0c;探针介绍 1 探针类型 livenessProbe&#xff1a;存活探针&#xff0c;用于判断容器是不是健康&#xff1b;如果探测失败&#xff0c;Kubernetes就会重启容器。 readinessProbe&#xff1a;就绪探针&#xff0c;用于判断是否可以将容器加入到Service负载均衡池…

STM32H7使用FileX库BUG,SD卡挂载失败

问题描述&#xff1a; 使用STM32H7ThreadXFileX&#xff0c;之前使用swissbit牌的存储卡可正常使用&#xff0c;最近项目用了金士顿的存储卡&#xff0c;发现无法挂载文件系统。 原因分析&#xff1a; 调试过程发现&#xff0c;关闭D-Cache可以挂载使用exfat文件系统。 File…

接口测试全流程扫盲

扫盲内容&#xff1a; 1.什么是接口&#xff1f; 2.接口都有哪些类型&#xff1f; 3.接口的本质是什么&#xff1f; 4.什么是接口测试&#xff1f; 5.问什么要做接口测试&#xff1f; 6.怎样做接口测试&#xff1f; 7.接口测测试点是什么&#xff1f; 8.接口测试都要掌…

pytest-xdist:远程多主机 - 分布式运行自动化测试

简介&#xff1a;pytest-xdist插件使用新的测试执行模式扩展了pytest&#xff0c;最常用的是在多个CPU之间分发测试以加快测试执行&#xff0c;即 pytest -n auto同时也是一个非常优秀的分布式测试插件&#xff0c;分别支持ssh和socket两种方式实现master和worker的远程通讯。…

Linux 第十一章

&#x1f436;博主主页&#xff1a;ᰔᩚ. 一怀明月ꦿ ❤️‍&#x1f525;专栏系列&#xff1a;线性代数&#xff0c;C初学者入门训练&#xff0c;题解C&#xff0c;C的使用文章&#xff0c;「初学」C&#xff0c;linux &#x1f525;座右铭&#xff1a;“不要等到什么都没有了…

Ubuntu终端常用指令

cat cat 读取文件的内容 1、ls 一、 1、ll 显示当前目录下文件的详细信息,包括读写权限,文件大小,文件生成日期等(若想按照更改的时间先后排序,则需加-t参数,按时间降序(最新修改的时间排在最前)执行: $ ll -t, 按时间升序执行: $ ll -t | tac): ll 2、查看当前所处路径(完整…

自然语言处理: 第二十八章大模型基底之llama3

项目地址: meta-llama/llama3: The official Meta Llama 3 GitHub site 前言 LLaMa系列一直是人们关注的焦点&#xff0c;Meta在4月18日发布了其最新大型语言模型 LLaMA 3。该模型将被集成到其虚拟助手Meta AI中。Meta自称8B和70B的LLaMA 3是当今 8B 和 70B 参数规模的最佳模…

【oj题解】二分算法、二分答案

1909 - 跳石头 题目描述 一年一度的“跳石头”比赛又要开始了! 这项比赛将在一条笔直的河道中进行&#xff0c;河道中分布着一些巨大岩石。组委会已经选择好了两块岩石作为比赛起点和终点。在起点和终点之间&#xff0c;有 N 块岩石&#xff08;不含起点和终点的岩石&#xf…

Qt:学习笔记一

一、工程文件介绍 1.1 main.cpp #include "widget.h" #include <QApplication> // 包含一个应用程序类的头文件 //argc&#xff1a;命令行变量的数量&#xff1b;argv&#xff1a;命令行变量的数组 int main(int argc, char *argv[]) {//a应用程序对象&…

朴素贝叶斯算法分类

def loadDataSet():postingList[[my, dog, has, flea, problems, help, please], #切分的词条[maybe, not, take, him, to, dog, park, stupid],[my, dalmation, is, so, cute, I, love, him],[stop, posting, stupid, worthless, garbage],[mr, licks, ate, my, steak, …

Linux - tar (tape archive)

tar 的全称是 Tape Archive。它最初是在 Unix 系统中用于将数据写入磁带的工具&#xff0c;但现在它通常用于创建、维护、修改和提取文件的归档文件。尽管 tar 可以用于压缩和解压缩文件&#xff0c;但它本身并不进行压缩&#xff0c;而是通常与 gzip 或 bzip2 等压缩工具一起使…

记录——FPGA的学习路线

文章目录 一、前言二、编程语言2.1 书籍2.2 刷题网站2.3 仿真工具 三、基础知识3.1 专业基础课3.2 fpga相关专业知识 四、开发工具五、动手实验 一、前言 也不是心血来潮想学习fpga了&#xff0c;而是祥哥还有我一个国科大的同学都在往fpga这个方向走 并且看过我之前文章的同…

springboot+springsecurity+vue前后端分离权限管理系统

有任何问题联系本人QQ: 1205326040 1.介绍 优秀的权限管理系统&#xff0c;核心功能已经实现&#xff0c;采用springbootvue前后端分离开发&#xff0c;springsecurity实现权限控制&#xff0c;实现按钮级的权限管理&#xff0c;非常适合作为基础框架进行项目开发。 2.效果图…

EureKa技术解析:科技行业的革新风暴(ai写作)

首先&#xff0c;这篇文章是基于笔尖AI写作进行文章创作的&#xff0c;喜欢的宝子&#xff0c;也可以去体验下&#xff0c;解放双手&#xff0c;上班直接摸鱼~ 按照惯例&#xff0c;先介绍下这款笔尖AI写作&#xff0c;宝子也可以直接下滑跳过看正文~ 笔尖Ai写作&#xff1a;…