当前位置: 首页 > news >正文

基于 ST-Link 和 MDK-Keil 的 STM32 程序下载实验

1. 概述

        在 STM32 开发过程中,下载调试工具种类繁多,其中 ST-Link 因其稳定性和高性价比被广泛使用。本文以 MDK-Keil 为编译平台,重点介绍 ST-Link 的驱动安装及程序下载方法,为 STM32 程序开发与调试提供指导。

2. 工具介绍

工具名称接口类型主要特点优点缺点适用场景
ST-LinkSWD / JTAGSTM32 官方调试下载工具,支持烧录和调试官方支持、稳定、性价比高、易用高级功能有限(如Trace、复杂调试需ST-Link V3)教学、一般开发、快速下载
J-LinkSWD / JTAGSegger 出品,高速下载调试器,支持几乎所有 ARM Cortex MCU下载速度快、功能强大、支持RTOS调试商业版本收费、免费版功能有限高级调试、工业应用、大型项目
DAPLinkSWD / CMSIS-DAP开源调试器,可通过 USB HID 模拟 SWD开源免费、兼容性好下载速度可能比 J-Link 慢教学、实验、开源项目
ST-LINK V3 MINISWDST-Link V3 新版本小型器件高速、价格低、支持 SWO、Trace需要固件升级以支持新芯片小型板卡、快速下载
ULINK2 / ULINK-MEJTAG / SWDKeil 官方调试器与 MDK 集成好,支持复杂调试价格偏高专业开发、复杂调试
OpenOCD + FTDI/USB转SWDSWD开源工具配合适配器免费、灵活配置复杂,初学者门槛高高级用户、开源项目

3. 硬件连接

        ST-Link 支持 JTAG 和 SWD 两种模式,但 SWD 模式只使用两条信号线(SWDIO、SWCLK)即可。

如果单片机开发板上是 JTAG 物理接口,但希望用ST-LINK在 SWD 模式下工作,只需要连接 SWDIO、SWCLK、GND、3.3V、NRST,其他 JTAG 引脚可以不接。

上述两种开发板的下载接口,其核心原理是将 ST-Link 的 SWDIO 与 STM32 的 PA13 相连,SWCLK 与 PA14 相连,同时接通正负极电源,从而完成 MCU 的程序下载与调试功能。所以直接接入STM32的这两个引脚一样达成目的。

调试工具 / 接口ST-Link 引脚STM32 引脚JTAG 引脚说明
SWDSWDIOPA13TMS双向数据线 / JTAG TMS 对应
SWCLKPA14TCK时钟线 / JTAG TCK 对应
GNDGNDGND公共地
3.3V3.3V3.3V电源(可选,看板子供电)
NRSTNRSTnRESET复位线(可选)

4. 启动模式设置

STM32 芯片有三个启动模式(由 BOOT0、BOOT1 引脚决定)

BOOT0BOOT1启动模式描述
00Main Flash从 Flash 启动(用户程序)
10System Memory从系统引导程序(内置 bootloader)启动,用于 UART/I2C/SWD 下载
X1SRAM从 SRAM 启动(调试或特殊用途)

SWD 下载是通过 调试接口访问 Flash,不依赖 Bootloader,因此 BOOT0=0 即可。BOOT1 一般不需要改变。

5. STM32CubeMx设置

        在 STM32CubeMX 中配置 MCU 系统时,应将 DEBUG 接口选择为 Serial Wire 模式。此设置会自动将 PA13 和 PA14 引脚映射为 SWD 功能,使得 ST-Link 可以通过 SWD 接口完成程序下载和调试,无需手动更改引脚功能

6. ST-LINK驱动下载

官网地址:

https://www.st.com.cn/zh/development-tools/stsw-link009.html

在官网进行ST-LINK驱动下载安装,安装好后,插上ST-LINK,在电脑的设备管理中可查看如图所示,如果安装完毕在下图中并未发现这个选项,建议重启一下电脑再看看。

7. MDK keil 设置

如果所示,如果正确安装驱动,并且正确连接线路并插上ST-LINK,在Unit处,可看到ST-LINK/V2选项,否则,证明驱动安装失败或者硬件连线错误。

如果想要每次下载完程序后,自动运行最新的程序,可进行如下设置

在 Pack 中,默认勾选了 Pack Debug Information(打包调试信息)。如果不取消,即使在 Flash Download 中选择了 Reset and Run,程序下载完成后也无法自动运行,需要手动按复位键。

原因是:Pack Debug Information 默认勾选会使 MCU 下载完成后进入调试器挂起状态,程序不会自动执行。取消勾选后,下载完成 MCU 会直接从 Flash 启动并执行用户程序,无需手动复位。

http://www.dtcms.com/a/391364.html

相关文章:

  • 安防监控系统的架构与组成原理
  • 【前端】【threeJs】前端事件偏移问题完整总结
  • web:ts的类型兼容性
  • 黑盒测试:测试用例设计之场景法(流程图法)(模拟用户实际使用软件的场景来设计测试用例,适用于业务流程复杂的系统测试)基本流、备选流
  • Django + Vue3 前后端分离技术实现自动化测试平台从零到有系列 <第二章> 之 平台功能架构整理
  • 神经网络学习笔记14——高效卷积神经网络架构EfficientNet
  • Flutter实现滑动页面停留吸附
  • 【Linux】基本指令介绍
  • 爬虫逆向--Day22Day23--核心实战案例【荔枝网】【WASM学习】----待完成
  • 【软考-系统架构设计师】特定领域软件体系结构(DSSA)
  • idea git使用提示问题处理
  • 数据结构初阶——哈希表的实现(C++)
  • Problem: lab-week3- exercise01 Insertion sort
  • 金融级虚拟机安全:虚拟化平台5大安全风险与国产化防护实践
  • 可视化在智慧城市中的应用
  • C#实现高性能拍照(旋转)与水印添加功能完整指南
  • Pandas 2.x与PyArrow:深入探索内存优化与性能提升技巧
  • opencv之轮廓识别
  • lesson65:JavaScript字符串操作完全指南:从基础到高级实战
  • 【脑电分析系列】第19篇:深度学习方法(一):卷积神经网络(CNN)在EEG图像/时频图分类中的应用
  • 写文件的几种方法
  • 序列化与反序列化漏洞及防御详解
  • uniapp 锁定竖屏,固定竖屏,锁定屏幕
  • 论文解读 | Franka 机器人的 CRISP-ROS2 集成实践:适配学习型操作策略与遥操作
  • Redis数据库(二)—— Redis 性能管理与缓存问题解决方案指南
  • TCP KeepAlive判断离线的记录
  • Ceph 测试环境 PG_BACKFILL_FULL
  • 维星AI的GEO搜索优化:企业在AI时代的可见度突围之道
  • Abp Vnext 数据库由SQL server切换MySQL
  • Linux嵌入式自学笔记(基于野火EBF6ULL):4.gcc