在Keil中使用ST-LINK烧录STM32程序指南

news/2024/11/18 0:30:29/文章来源:https://www.cnblogs.com/main-studio/p/18551464

前言

之前玩STM32都是用J-LINK烧录程序,不仅便捷,而且烧录的速度比用串口快好多。

最近我接了几个32单片机的毕设单子,便买了几块C8T6的最小系统板用来开发。最初我还是用J-LINK烧录C8T6的,只要从J-LINK中找出对应的引脚用杜邦线连上就可以烧录,但是每晚要去学校的实验室,每次都要重新接线,用J-LINK又显得不太方便了。

于是我又买了一块ST-LINK的烧录器,在测试烧录成功后,我将配置的过程整理成了本篇博客供大家参考。

前期准备

  1. STM32F103C8T6最小系统板一块(其他的STM32单片机也适用)
  2. ST-LINK/V2烧录器一块(其他版本适用)
  3. 母对母的杜邦线4根
  4. Windows系统电脑一台,且已安装MDK-ARM,没有安装的可以点击跳转安装-> Keil系列教程03_MDK-ARM安装与注册

线路连接

实物接线图,我把杜邦线用绝缘胶缠上了,这样插拔方便。

下面是ST-LINK/V2和STM32的接线表,都是一一对应的。

ST-LINK/V2 STM32
3.3V 3V3
GND GND
SWDIO SWDIO
SWCLK SWCLK

按照上面连接后,将ST-LINK插到电脑的USB口上,下文中默认ST-LINK已插到电脑

下载ST-LINK驱动程序

这里提供两种方式供大家选择,一个是从官网下载驱动(需要注册ST账户),另一个是从百度网盘下载。

1.通过官网下载

官网链接:https://www.st.com/en/development-tools/stsw-link009.html

打开官网后点击“Get Software”,点击“Get latest”,后面根据提示注册账号进行下载即可,这里不再演示。

2.通过百度网盘下载

我已将本文使用的驱动打包上传至百度网盘,扫描下方二维码,后台回复“0017”即可免费获取分享链接。

安装ST-LINK驱动程序

在下载好后,把压缩包解压出来,打开解压后的文件夹。

找到“dpinst_amd64.exe”右键用管理员身份打开。

点击“Next >”。

如果出现下图,点击“Install”即可。

驱动安装成功,点击“Finish”。

驱动程序安装成功后,可以在电脑的任务栏中右键“开始菜单”,选择“设备管理”,在“通用串行总线设备”中会显示“STM32 STLink”,则表示已连接ST-LINK。

如果没有显示,需要重新拔插一下ST-LINK,便会显示出来。

这里你可以打开一个已有的工程,方便后续程序烧录成功的验证。

工程打开后,点击“魔法棒”,在打开的页面中点击“Debug”,选择“ST-Link Debugger”后点击“Settings”。

如果出现下图,点击“Yes”,选择升级。

点击“Device Connect”,出现固件后点击“Yes > > > >”,等待下载完成。

下载好后,点击“OK”,点右上角的“X”,关闭这个页面。

在“Debug”中,左边的Port选择“SW”,Req输入“5”,在右侧的“SW Device”已经显示出来了连接的硬件,表示Keil已经和ST-LINK建立了连接。

如果没有显示,重新拔插一下ST-LINK,或重开一下Keil。

接下来,进行其他配置,在“Flash Download”中勾选“Reset and Run”,从而达到烧录程序后软件复位单片机的效果。

在下方根据具体单片机的Flash容量进行选择,单片机的Flash容量推荐到官网或芯片的数据手册中查看。

在“Pack”中,取消勾选“Enable”,才可以烧录后软件自动复位,点击“OK”。

设置完成,点击“OK”。

编译烧录程序

点击编译按钮,0错误0警告后点击“LOAD按钮”烧录程序。

显示以下结果,则为烧录成功。

当然如果你前面选择了已有的工程进行烧录,那么可以通过单片机执行的程序来验证是否烧录成功。

后记

本文到这就结束了,如果对你有所帮助,请点赞支持一下呦。

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

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

相关文章

第八章习题

学号后四位:3018 8.4:点击查看代码 import numpy as np from scipy.integrate import odeint import matplotlib.pyplot as plt# 定义微分方程组 def differential_equations(state, t):x, y = statedxdt = -x ** 3 - ydydt = x - y ** 3return [dxdt, dydt]# 设定初始条件 ini…

Next App Router 模式下,如何同步服务端 Redux 初始状态?

大家的阅读是我发帖的动力,本文首发于我的博客:deerblog.gu-nami.com/,欢迎大家来玩,转载请注明出处喵。🎈前言 Next.js 是一个广受欢迎的 React 服务端渲染(Server Side Rendering,SSR)框架。Next.js 的页面会先在服务端渲染一次,然后把结果传给浏览器,也就是客户端…

Git版本管理系统快速上手指南

作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任。 目录一.git命令初体验1.搭建Golang开发环境2.git init项目初始化3.git status查看工作目录状态4.git add将文件从工作区提交到暂存区5.git config配置git个人信息6.git commit提交代码到本地仓库7.git log查看…

Air201模组入门:掌握SPI读写外部Flash的技巧

今天带领大家通过Air201+扩展板读写外部flash的演示,教你使用SPI示例,可根据实际需求灵活应用。今天带领大家通过Air201+扩展板读写外部flash的演示,教你使用SPI示例,可根据实际需求灵活应用。 我们先了解一些相关基础知识: SPI(Serial Peripheral Interface)——是一种…

第七章习题

学号后四位:3018 7.3:点击查看代码 import numpy as np import matplotlib.pyplot as plt from scipy.interpolate import interp1d, CubicSplineT = np.array([700, 720, 740, 760, 780]) V = np.array([0.0977, 0.1218, 0.1406, 0.1551, 0.1664])# 线性插值 linear_interp = …

6502 指令译码器

引言 CPU 要执行指令需要先识别指令,弄清楚要执行的指令是什么类型、需要几个周期、操作数在哪里、目的地在哪里等信息,才能在后续的指令执行过程中打开对应的数据通路。“识别指令”的过程叫译码,完成指令识别功能的机构,叫译码器。 两个译码器 因为 6502 CPU 有一个两级流…

随笔5

这个作业属于哪个课程 计科22级34班这个作业要求在哪里 https://edu.cnblogs.com/campus/gdgy/CSGrade22-34/homework/13234这个作业的目标 完成昨天的计划总结:问题 答案昨天完成的工作 完成个人中心和发表博客页面今天计划完成的工作 完成分类模块以及登录部分的接口对接遇到…

随笔4

这个作业属于哪个课程 计科22级34班这个作业要求在哪里 https://edu.cnblogs.com/campus/gdgy/CSGrade22-34/homework/13234这个作业的目标 完成昨天的计划总结:问题 答案昨天完成的工作 完成首页的搭建今天计划完成的工作 完成个人中心和发表博客页面遇到的困难 发表页面需要…

Nukem pg walkthrough Intermediate

nmap 扫描 ┌──(root㉿kali)-[~] └─# nmap -p- -A 192.168.157.105 Starting Nmap 7.94SVN ( https://nmap.org ) at 2024-11-17 12:32 UTC Nmap scan report for 192.168.157.105 Host is up (0.071s latency). Not shown: 65529 filtered tcp ports (no-response) PORT …

Scrum冲刺-Day4

Scrum冲刺-Day4 1站立式会议 1.1站立会议照片1.2会议纪要 - Day4成员姓名 昨天已完成的工作 今天计划完成的工作 工作中遇到的困难张易欣 订单模块接口的开发 实现对用户的请求和响应进行处理 需要解决前端和后端之间的数据传递和同步问题苏清仪 分类模块接口的开发 业务逻辑处…

第七天 项目冲刺

情况 前端提出浏览器访问出现错误的问题 定位发现是跨域问题先有前端通过配置代理也能通过,但还是决定再后端也配置一下解决跨域问题由于使用了springSecurity,所有还要在security中开启这个功能 前后端沟通时发现他对我的分类的理解完全不一样,而是类似于这样的于是按照他的…