使用ST-LINK下载STM32程序

本文详细介绍了STM32的JTAG接口与ST-LINKV2调试器之间的连接方法,包括JTAG各管脚的功能说明及如何通过SWDIO和SWCLK实现与ST-LINKV2的正确连接。此外,还提供了在KeiluVision5软件中进行调试器设置的具体步骤。

一、电路连接

STM32的下载调试接口主要有三种:JTAG、SW和串口(不能调试)。

JTAG与SW接口

JTAG各个管脚信息如下:

序号信号名方向说 明
1VrefInput接口电平参考电压,通常可直接接电源
2VsupplyInput电源
3nTRSTOutput(可选项) JTAG复位。在目标端应加适当的上拉电阻以防止误触发。
4GND接地
5TDIOutputTest Data In from Dragon-ICE to target.
6GND接地
7TMSOutputTest Mode Select
8GND接地
9TCKOutputTest Clock output from Dragon-ICE to the target
10GND接地
11RTCKInput(可选项) Return Test Clock。由目标端反馈给Dragon-ICE的时钟信号,
用来同步TCK信号的产生。不使用时可以直接接地。
12GND接地
13TDOInputTest Data Out from target to Dragon-ICE.
14GND接地

15

nSRST

Input/Output
(可选项) System Reset,与目标板上的系统复位信号相连。可以直接对
目标系统复位,同时可以检测目标系统的复位情况。为了防止误触发,
应在目标端加上适当的上拉电阻。
16GND接地
17NC保留
18GND接地
19NC保留
20GND接地

大多数STM32开发版都提供了JTAG调试接口,但手头只有ST-LINK V2调试器,那么该如何接线呢?

ST-LINK V2接口管脚信息如下:

序号信号名
1SWDIO
2SWCLK
3GND
43.3V
55.0V

不同版本的ST-LINK V2接口管脚顺序会有所不同,可按照如下方式连接:

**ST-LINK V2管脚号ST-LINK V2管脚名JTAG管脚名JTAG管脚号
1SWDIOTMS(SWDIO)7
2SWCLKTCLK(SWCLK)9
3GNDGND20(任意GND)
43.3VVref(VCC)1
55.0VVref(VCC)1

[注]ST-LINK V2的3.3V和5.0V管脚只选取一个,根据目标板的供电电压来决定。如果目标有其他电源供电,Vref(VCC)管脚可不接,避免交叉供电。

软件设置

软件设置以Keil uVision5为例。

  1. 选择目标单片机型号;

    选择STM32单片机型号

  2. 选择调试器型号

    调试器型号

  3. 配置下载器:点击上图中下载器类型右侧的Settings进入下载器的配置页面。

    配置调试器参数

    配置调试器参数

  4. 设置Target Driver类型

    1. 方法1:勾选Use Debug Driver复选框

      Use Debug Driver

    2. 手动选择Target Driver类型

      Target Driver

    [注]这里容易被忽略,如果没有选择对应的下载器类型,下载时(仿真时没有影响)会出现如下错误:

    Jlink - Cortex-M Error

    Flash Download Failed

    这是因为系统默认的下载器为Jlink,而我们使用的ST-LINK,此前只设置了仿真器的类型。

### 使用 ST-Link 烧录 STM32 程序的步骤指南 #### 准备工作 确保已经准备好以下设备和软件: - **ST-LINK/V2 或更高版本** 的调试器/烧录器。 - 一台搭载 Windows 操作系统的电脑(部分版本也支持 Linux 和 macOS)。 - **STM32 微控制器开发板**,例如常见的 STM32F103C8T6。 - 安装 **ST-LINK Utility** 软件,该工具由 STMicroelectronics 提供,用于程序烧录和调试[^3]。 #### 连接硬件 将 ST-LINK 设备通过 USB 接口连接到电脑。接着,使用 SWD 或 JTAG 接口将 ST-LINK 与目标 STM32 开发板进行物理连接。确保所有连接稳固可靠,并且开发板供电正常。 #### 打开 ST-LINK Utility 启动 ST-LINK Utility 软件后,点击菜单栏中的 "Target" -> "Connect" 来连接目标芯片。如果一切正常,软件会自动识别出当前连接的 STM32 型号以及其 Flash 容量等信息[^3]。 #### 加载程序文件 在成功连接目标芯片之后,需要加载要烧录的程序文件。通常情况下,程序文件格式为 `.hex` 或 `.bin`。可以通过菜单 "File" -> "Open File" 来选择并加载程序文件。此时,软件界面会显示即将被烧写的地址范围及数据大小。 #### 烧录程序 确认无误后,点击 "Program" 按钮开始执行烧录操作。过程中可以在日志窗口查看进度条和状态提示。完成后,建议再次校验以保证程序正确写入了 Flash 存储器中[^3]。 #### 验证与运行 完成烧录后,可以选择复位按钮使 MCU 重启,或者直接让其从新烧录的应用程序开始运行。此外,还可以利用 ST-LINK 的在线调试功能对程序进行进一步测试和优化,比如设置断点、观察变量值等。 ```c // 示例代码片段 - 初始化LED GPIO #include "stm32f10x.h" void LED_Init(void) { // Enable clock for GPIOC RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOC, ENABLE); GPIO_InitTypeDef GPIO_InitStructure; GPIO_InitStructure.GPIO_Pin = GPIO_Pin_13; // Assuming LED on PC13 GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP; GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; GPIO_Init(GPIOC, &GPIO_InitStructure); } int main(void) { LED_Init(); while (1) { // Toggle LED GPIO_ResetBits(GPIOC, GPIO_Pin_13); // Turn off for(int i=0; i<1000000; i++); // Simple delay GPIO_SetBits(GPIOC, GPIO_Pin_13); // Turn on for(int i=0; i<1000000; i++); } } ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

羽墨志

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值