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

系列文章目录

STM32单片机系列专栏

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


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,说明需要升级一下固件。


 

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

电脑上的任务管理器不见了?如何把它打开?

前言 今天小白在睡觉的时候突然梦见回到了学校的电脑教室…… 相信大家都会有体验:每次上电脑课的时候,老师都会通过某些软件监控和控制学生的电脑。 想退出被控端的软件?没机会!毕竟任务管理器也被禁用了,想整活都…

算法学习之单调栈

发射站 题目描述 某地有 N N N 个能量发射站排成一行,每个发射站 i i i 都有不相同的高度 H i H_i Hi​,并能向两边(两端的发射站只能向一边)同时发射能量值为 V i V_i Vi​ 的能量,发出的能量只被两边最近的且比…

Opencv_14_多边形填充与绘制

绘制多边形: 1)coInvert.polyline_drawing(src); 2)void ColorInvert::polyline_drawing(Mat& image) { Mat canvas Mat::zeros(Size(512, 512), CV_8UC3); Point p1(100, 100); Point p2(150, 100); Point p3(200…

TR6 - Transformer实战 单词预测

🍨 本文为🔗365天深度学习训练营 中的学习记录博客🍖 原作者:K同学啊 目录 理论知识关于数据集 Wikitext-2 模型结构代码实现0. 环境1. 加载数据集2. 模型搭建3. 创建模型4. 单轮训练和评估的流程5. 训练 模型效果总结与心得体会 …

Openharmony - 设备异常关机Power Down问题分析

By: fulinux E-mail: fulinux@sina.com Blog: https://blog.csdn.net/fulinus 喜欢的盆友欢迎点赞和订阅! 你的喜欢就是我写作的动力! 目录 1.问题描述1.1出现power down的原因1.1.1硬件故障或信号1.1.2软件错误或系统崩溃2.抓日志信息2.1.抓日志方法2.2.问题初步分析3.问题排…

React复习笔记

基础语法 创建项目 借助脚手架,新建一个React项目(可以使用vite或者cra,这里使用cra) npx create-react-app 项目名 create-react-app是React脚手架的名称 启动项目 npm start 或者 yarn start src是源文件index.js相当于Vue的main.js文件。整个…

OC类与对象

OC类与对象 本篇是对上一篇的内容的继续学习。从单例模式开始继续学习 文章目录 单例模式定义应用场景特点单例模式的创建 隐藏与封装理解什么是封装目的访问控制符合成存取方法特性的指示符点语法访问属性 对象初始化便利的初始化方法 类的继承特点语法格式重写父类方法super关…

SimpleDateFormat类.Java

目录 1.1构造方法 1.2格式规则 1.3常用方法 1.4练习1( 出生日期) 1.5练习2(秒杀活动) java.text.SimpleDateFormat 是日期/时间格式化类,我们通过这个类可以帮我们完成日期和文本之间的转换,也就是可以在Date对象与String对象之间进行来…

机器学习理论基础—集成学习(1)

机器学习理论基础—集成学习 个体与集成 集成学习通过构建并结合多个学习器来完成学习任务,有时也称为多分类系统等。 分类: 根据集成学习中的个体学习器的不同可以分为同质集成(集成的学习器相同例如全部是决策树)&#xff0c…

上市公司专利数据、专利申请、专利授权和质量指标计算面板数据(1990-2022年)

01、数据简介 专利作为企业创新能力和核心竞争力的体现,越来越受到上市公司的重视。了解上市公司的专利数据、专利申请、专利授权和质量指标计算,有助于投资者更好地评估公司的创新能力和长期发展潜力。 通过分析上市公司的专利数据、专利申请、专利授…

【国标语音对讲】EasyCVR视频汇聚平台海康/大华/宇视摄像头GB28181语音对讲配置

一、背景分析 近年来,国内视频监控应用发展迅猛,系统接入规模不断扩大,涌现了大量平台提供商,平台提供商的接入协议各不相同,终端制造商需要给每款终端维护提供各种不同平台的软件版本,造成了极大的资源浪…

[C++ QT项目实战]----系统实现双击表格某一行,表格数据不再更新,可以查看该行所有信息,选中表更新之后,数据可以继续更新

前言 在需要庞大的数据量的系统中,基于合适的功能对数据进行观察和使用至关重要,本篇在自己项目实战的基础上,基于C QT编程语言,对其中一个数据功能进行分析和代码实现,希望可以有所帮助。一些特殊原因,图片…

回溯-单词搜索

给定一个 m x n 二维字符网格 board 和一个字符串单词 word 。如果 word 存在于网格中,返回 true ;否则,返回 false 。 单词必须按照字母顺序,通过相邻的单元格内的字母构成,其中“相邻”单元格是那些水平相邻或垂直相…

压测--混合场景设置

1、设计测试场景 性能测试是通过自动化的测试工具模拟多种正常、峰值以及异常负载条件来对系统的各项性能指标满足需求定义的检验活动。一般有以下场景: 基准场景:单接口少量并发用户下压测,评估单个功能点性能。负载场景:逐步增…

Python实践应用|NC文件读取

import netCDF4 as nc import numpy as np import matplotlib.pyplot as plt# 打开NC文件 nc_file E:/NC_file/air.sig995.2012.nc # 将your_file.nc替换为你的NC文件路径 nc_data nc.Dataset(nc_file, r)# 查看NC文件中包含的变量 print("Variables in the NC file:&q…

免费简单好用的内网穿透工具(ngrok、natapp),微信回调地址配置

B站视频地址 文章目录 Natapp1、登录注册账号、下载软件2、使用2-1、购买隧道、查看token2-2、端口穿透 Ngrok1、登录注册账号、下载软件2、使用2-1、获取并设置 token2-2、使用 3、隧道 微信回调配置1、注册测试公众号2、回调代码3、回调配置 在一些特殊的场景下,需…

C#基础之结构体

结构体 文章目录 1、概念2、基本语法3、示例4、结构体的使用5、访问修饰符6、结构体的构造函数思考1 描述矩形信息思考2 职业名字释放了技能思考3 小怪兽思考4 多个小怪兽思考5 奥特曼打小怪兽 1、概念 结构体是一种一定义变量类型 它是数据和函数的集合,可以在结…

PCIe总线-MPS MRRS RCB参数介绍(四)

1.概述 PCIe总线的存储器写请求、存储器读完成等TLP中含有数据负载,即Data Payload。Data Payload的长度和MPS(Max Payload Size)、MRRS(Max Read Request Size)和RCB(Read Completion Boundary&#xff0…

计算机存储原理.2

1.主存储器与CPU之间的连接 2.存储器芯片的输入输出信号 3.增加主存的存储字长 3.1位扩展 数据总线的利用成分是不充分的(单块只能读写一位),为了解决这个问题所以引出了位扩展。 使用多块存储芯片解决这个问题。 3.2字扩展 因为存储器买的是8k*8位的&am…

硬件21、接线端子XH2.54、2.54排针排母、2510接插件、PH2.0、町洋接线端子5.08、ISP接口JTAG插座

XH2.54端子的间距为2.54毫米,2.54排针排母的间距也是2.54mm,2510接插件也是2.54、而PH2.0端子的间距为2.0毫米,町洋接线端子插针间的距离是5.08mm,ISP接口JTAG插座针脚的间距一般也是2.54mm XH2.54 针脚间距为2.54mm 插头 接线…