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.mzph.cn/web/4188.shtml

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

相关文章

c++并查集

文章目录 前言一、并查集1、并查集原理2、并查集实现3、并查集应用1.省份数量2.等式方程的可满足性 前言 一、并查集 1、并查集原理 在一些应用问题中,需要将n个不同的元素划分成一些不相交的集合。开始时,每个元素自成一个单元素集合,然后…

机器视觉检测技术是什么?突出的亮点有哪些?

机器视觉检测技术是一种利用图像处理软件分析处理相机捕捉到的图像,以替代人眼在制造和测试过程中进行检测和测量的技术。它广泛应用于工业自动化领域,可以提高生产效率和质量控制的精度。机器视觉系统通常包括光源、相机、图像处理单元和执行机构等组成…

如何链接多个modbus_tcp设备,并将设备数据写入同一个modbusSlave,以便外部客户端获取所有链接设备的数据。

在modbus通信中,一个modbus服务器一次只能链接一个客户机,那么,外部客户端要获取多个设备的modbus数据,就需要使用链接一个专用的mosbus服务器,一下就是详细解决方法。 第一步:创建modbus客户端&#xff0…

组合总数 python

‘’已知—个无重复元素的序列,给定—个目标数,找出序列中所有可以使数字和未目标数的组合。 序列中的元素可以被多次选用,不能出现重复的组合, 序列中的元素和目标数都是正整数。 例如序列 [2, 3, 5], 目标值为8, 最终的组合有 (2, 3, 3&am…

nvm基本使用

nvm基本使用 文章目录 nvm基本使用1.基本介绍2.下载地址3.常用指令 1.基本介绍 NVM是一个用于管理 Node.js 版本的工具。它允许您在同一台计算机上同时安装和管理多个 Node.js 版本,针对于不同的项目可能需要不同版本的 Node.js 运行环境。 NVM 主要功能&#xff…

嵌入式学习——C语言基础——day10

1. 指针的基本概念 1.1 地址 用来区别不同内存字节空间的编号 1.2 指针 地址就是指针,指针就是地址,地址是一个编号,指针多了指向的概念 1.3 指针变量 用来存放指针的变量,有时将指针变量简称为指针 2. 指针相关运算符 & …

24深圳杯AC题完整思路+可执行代码+参考论文!!!!

比赛题目的完整版思路可执行代码数据参考论文都会在第一时间更新上传的,大家可以参考我往期的资料,所有的资料数据以及到最后更新的参考论文都是一次付费后续免费的。注意:(建议先下单占坑,因为随着后续我们更新资料数…

001 rabbitmq减库存demo direct

文章目录 ProducerConsumerRabbitMQDirectConfig.javaapplication.yamlServletInitializer.javaRabbitmqApplication.javapom.xml“该消息已经准备好再次被消费”和“队列已经准备好重新分发该消息” Producer 这段代码定义了一个名为Producer的RESTful Web服务Controller&…

iOS(Object C) 插入排序

插入排序的思想: 可以想象你在打牌,手里有一张牌2, 第一次摸到一张牌5; 5 比1 大,所以摸到的牌5放在1的右边; (此时手里的牌为 2->5) 第二次摸到一张牌3; 3比5小,所以3和5互换位置,再拿3和2比,3比2大,3不动(此时手里的牌为 2-> 3 -> 5) 第三次摸到一张牌1,1比5小,…

Windows10系统安装IIS的步骤

在Windows 10上安装IIS的步骤如下:12 打开控制面板,选择“程序”或“程序和功能”。点击“启用或关闭Windows功能”。在列表中找到“Internet Information Services”,勾选该选项。根据需要勾选IIS的具体组件,如万维网服务、IIS可…

创新指南 | 2024年企业如何十步打造最佳的数字化营销策略组合

营销是一个动态且不断变化的领域。顶级的数字营销策略随着消费者和技术趋势的变化而变化。这就是为什么每个公司都需要一个经过良好规划并具有明确里程碑和目标的营销策略。一旦你有了正确的计划,你实现为业务设定的目标的可能性就会大大增加。这意味着,…

面试经典150题——求根节点到叶节点数字之和

​ 1. 题目描述 2. 题目分析与解析 2.1 思路一——DFS 理解问题: 首先要理解题目的要求,即对于给定的二叉树,我们需要找出从根节点到所有叶子节点的所有路径,然后将每一条路径上的数字组成一个整数,最后求出这些整数…

k8s部署prometheus

部署pvc 修改nfs-deployment.yaml文件中的信息&#xff0c;然后应用YAML文件 cat > /opt/k8s/prometheus/prometheus-pvc.yaml <<EOF apiVersion: v1 kind: PersistentVolumeClaim metadata:name: prometheus-data-pvc spec:accessModes:- ReadWriteManystorageClas…

京东天幕,宙斯,云鼎什么关系

京东云鼎是京东云推出的一站式零售应用云计算平台&#xff0c;为商家、品牌商及合作伙伴与京东无界赋能的商业赋能、业务赋能、品牌赋能等服务集成&#xff0c;提供弹性的云计算资源、可靠的安全服务、高效的数据推送服务、标准化的网关服务&#xff0c;并优先享受京东的云端生…

手把手教数据结构与算法:栈的应用(平衡符号和简单计算器)

栈 基本概念 栈的定义 栈&#xff08;Stack&#xff09;&#xff1a;是只允许在一端进行插入或删除的线性表。首先栈是一种线性表&#xff0c;但限定这种线性表只能在某一端进行插入和删除操作。 栈顶&#xff08;Top&#xff09;&#xff1a;线性表允许进行插入删除的那一端…

@Value

Value 注解是 Spring 框架中的一个注解&#xff0c;用于从属性文件、环境变量、Java 系统属性等地方读取值&#xff0c;并将这些值注入到 Spring 管理的 Bean 中。 Component public class MyBean {Value("${my.property}")private String myProperty;// Getter and…

Docker常用命令(镜像、容器)

一、镜像 1.1 存出镜像 1.2 载入镜像 1.3 上传镜像 二、容器 2.1 容器创建 2.2 查看容器的运行状态 ​2.3 启动容器 2.4 创建并启动容器 2.5 在后台持续运行 docker run 创建的容器 2.6 终止容器运行 2.7 容器的进入 ​2.8把宿主机的文件传入到容器内部 2.9 从容器…

debian gnome-desktop GUI(图形用户界面)系统

目录 &#x1f31e;更新 &#x1f3a8;安装 &#x1f34e;分配 &#x1f6cb;️重启 &#x1f511;通过VNC连接 debian gnome-desktop &#x1f31e;更新 sudo apt update sudo apt -y upgrade &#x1f3a8;安装 sudo apt -y install task-gnome-desktop 这个过程比…

前端发版缓存问题

前端发版后浏览器缓存问题 浏览器缓存机制是为了提高网页加载速度和减少带宽消耗而设计的。当浏览器访问一个资源时&#xff0c;它会首先检查该资源是否已经在缓存中。如果资源存在且未过期&#xff0c;浏览器会直接从缓存中加载资源&#xff0c;而不会向服务器发送请求。这种…

pytest-asyncio:协程异步测试案例

简介&#xff1a;pytest-asyncio是一个pytest插件。它便于测试使用异步库的代码。具体来说&#xff0c;pytest-asyncio提供了对作为测试函数的协同程序的支持。这允许用户在测试中等待代码。 历史攻略&#xff1a; asyncio并发访问websocket Python&#xff1a;协程 - 快速创…