基于 ST-Link 和 MDK-Keil 的 STM32 程序下载实验
1. 概述
在 STM32 开发过程中,下载调试工具种类繁多,其中 ST-Link 因其稳定性和高性价比被广泛使用。本文以 MDK-Keil 为编译平台,重点介绍 ST-Link 的驱动安装及程序下载方法,为 STM32 程序开发与调试提供指导。
2. 工具介绍
工具名称 | 接口类型 | 主要特点 | 优点 | 缺点 | 适用场景 |
---|---|---|---|---|---|
ST-Link | SWD / JTAG | STM32 官方调试下载工具,支持烧录和调试 | 官方支持、稳定、性价比高、易用 | 高级功能有限(如Trace、复杂调试需ST-Link V3) | 教学、一般开发、快速下载 |
J-Link | SWD / JTAG | Segger 出品,高速下载调试器,支持几乎所有 ARM Cortex MCU | 下载速度快、功能强大、支持RTOS调试 | 商业版本收费、免费版功能有限 | 高级调试、工业应用、大型项目 |
DAPLink | SWD / CMSIS-DAP | 开源调试器,可通过 USB HID 模拟 SWD | 开源免费、兼容性好 | 下载速度可能比 J-Link 慢 | 教学、实验、开源项目 |
ST-LINK V3 MINI | SWD | ST-Link V3 新版本小型器件 | 高速、价格低、支持 SWO、Trace | 需要固件升级以支持新芯片 | 小型板卡、快速下载 |
ULINK2 / ULINK-ME | JTAG / SWD | Keil 官方调试器 | 与 MDK 集成好,支持复杂调试 | 价格偏高 | 专业开发、复杂调试 |
OpenOCD + FTDI/USB转SWD | SWD | 开源工具配合适配器 | 免费、灵活 | 配置复杂,初学者门槛高 | 高级用户、开源项目 |
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 引脚 | 说明 |
---|---|---|---|---|
SWD | SWDIO | PA13 | TMS | 双向数据线 / JTAG TMS 对应 |
SWCLK | PA14 | TCK | 时钟线 / JTAG TCK 对应 | |
GND | GND | GND | 公共地 | |
3.3V | 3.3V | 3.3V | 电源(可选,看板子供电) | |
NRST | NRST | nRESET | 复位线(可选) |
4. 启动模式设置
STM32 芯片有三个启动模式(由 BOOT0、BOOT1 引脚决定)
BOOT0 | BOOT1 | 启动模式 | 描述 |
---|---|---|---|
0 | 0 | Main Flash | 从 Flash 启动(用户程序) |
1 | 0 | System Memory | 从系统引导程序(内置 bootloader)启动,用于 UART/I2C/SWD 下载 |
X | 1 | SRAM | 从 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 启动并执行用户程序,无需手动复位。