STM32 ST-Link Utility 入门指南:安装、配置与使用
STM32 微控制器以其强大的性能和丰富的外设广泛应用于嵌入式系统开发。而 ST-Link 则是 STMicroelectronics 官方推出的,用于 STM32 微控制器程序的下载和在线调试的硬件工具。ST-Link Utility 则是配合 ST-Link 硬件使用的图形化软件,为开发者提供了便捷的烧录、擦除、读写和配置功能。
本指南将详细介绍 STM32 ST-Link Utility 的安装、基本配置和使用方法,帮助初学者快速上手。
1. 简介
ST-Link Utility 是一款免费的 Windows 平台软件,它允许用户通过 ST-Link 调试器与 STM32 微控制器进行通信。主要功能包括:
- 程序下载(Flash Programming):将编译好的二进制文件(如
.hex,.bin,.elf)下载到 STM32 的闪存中。 - 闪存擦除(Flash Erasing):擦除整个芯片或指定扇区的闪存内容。
- 闪存读取(Flash Reading):从 STM32 闪存中读取内容并保存为文件。
- Option Bytes 配置:配置芯片的保护位、看门狗、启动模式等选项字节。
- 硬件连接检测:检测 ST-Link 调试器和目标 STM32 微控制器的连接状态。
2. 系统要求
- 操作系统:Windows 7/8/10/11 (32位或64位)。
- ST-Link 调试器:ST-Link/V2、ST-Link/V2-1、ST-Link/V3 等任何兼容的 ST-Link 硬件。
- STM32 开发板/目标芯片:带有 SWD 或 JTAG 接口的 STM32 微控制器。
- USB 端口:用于连接 ST-Link 调试器到电脑。
3. 软件安装
3.1 下载 ST-Link Utility
- 打开您的网络浏览器,访问 STMicroelectronics 官方网站:
www.st.com。 - 在搜索框中输入 “ST-Link Utility” 或 “STM32 ST-LINK Utility”。
- 找到对应的软件下载页面,通常名称为 “STM32 ST-LINK Utility” 或 “ST-LINK utility (STSW-LINK004)”。
- 点击下载按钮。您可能需要注册一个 ST 账户并登录才能下载。
3.2 安装步骤
下载完成后,您会得到一个安装包(通常是 .exe 文件)。
- 运行安装程序:双击下载的
.exe文件启动安装向导。 - 同意许可协议:阅读并接受许可协议。
- 选择安装路径:建议使用默认安装路径,或选择一个您方便管理的路径。
- 安装驱动:在安装过程中,会提示您安装 ST-Link 驱动程序。请务必勾选并安装驱动,这是 ST-Link 正常工作的前提。
- 完成安装:按照提示完成安装。安装成功后,您可以在开始菜单中找到 “STM32 ST-LINK Utility” 应用程序。
4. 驱动程序安装(重要)
虽然安装软件时会提示安装驱动,但有时驱动安装可能不完全或出现问题。如果遇到 ST-Link 无法识别的情况,请手动检查或重新安装驱动:
- 检查设备管理器:
- 将 ST-Link 调试器连接到电脑的 USB 端口。
- 右键点击 “此电脑” (或 “我的电脑”) -> “管理” -> “设备管理器”。
- 在 “通用串行总线设备” 或 “STMicroelectronics STLink dongle” 下查看是否有 “STMicroelectronics STLink Virtual COM Port” 或类似的设备。
- 如果没有黄色感叹号,说明驱动正常。
- 手动安装/更新驱动:
- 如果驱动有问题,通常可以在 ST-Link Utility 的安装目录下找到驱动文件(例如
C:\Program Files (x86)\STMicroelectronics\STM32 ST-LINK Utility\ST-LINK Driver)。 - 在设备管理器中找到带有黄色感叹号的 ST-Link 设备,右键点击 -> “更新驱动程序” -> “浏览我的电脑以查找驱动程序软件” -> 指向上述驱动文件夹。
- 如果驱动有问题,通常可以在 ST-Link Utility 的安装目录下找到驱动文件(例如
5. 硬件连接与配置
在开始使用 ST-Link Utility 之前,您需要正确连接 ST-Link 调试器和 STM32 目标芯片。
5.1 硬件连接
ST-Link 调试器通常支持 SWD (Serial Wire Debug) 和 JTAG 两种接口。对于大多数 STM32 开发板和芯片,SWD 是首选,因为它占用引脚少。
SWD 连接(推荐):
- ST-Link 调试器 <=> STM32 目标芯片
SWDIO(或DIO) <=>PA13(或标有SWDIO的引脚)SWCLK(或CLK) <=>PA14(或标有SWCLK的引脚)GND<=>GNDVCC(或VTref) <=>3.3V(或目标芯片的供电电压)
注意事项:
- 供电:确保 STM32 目标芯片已正确供电。ST-Link 调试器通常不为目标芯片供电,或只提供有限的供电能力。
- VTref:
VTref引脚是 ST-Link 用于检测目标芯片电压的参考引脚,请务必连接到目标芯片的供电电压(通常是 3.3V)。 - 引脚对应:仔细核对您的开发板或芯片手册,确保 SWD/JTAG 引脚连接正确。
- 复位引脚 (NRST):虽然不是必需,但将 ST-Link 的
NRST引脚连接到 STM32 的复位引脚可以提高连接稳定性,尤其是在烧录或调试时。
5.2 软件配置(连接到 STM32)
- 启动 ST-Link Utility:从开始菜单中找到并打开 “STM32 ST-LINK Utility”。
- 连接到目标:
- 在主界面,点击菜单栏上的 “Target” -> “Connect” (或直接点击工具栏上的连接图标)。
- 如果连接成功,软件会显示目标 STM32 芯片的信息,例如芯片型号、Flash 大小、Option Bytes 等。
- 如果连接失败,请检查硬件连接、驱动安装和目标芯片供电。常见的错误信息如 “Can not connect to target!”。
- 设置 Debug 模式:
- 点击 “Target” -> “Settings”。
- 在 “Mode” 选项卡中,确保选择了正确的调试模式(通常是
SWD)。 - 您可以调整 “Frequency”(频率),对于新芯片或连接不稳定的情况,可以尝试降低频率。
- “Reset Mode” 通常选择
Hardware reset。 - 点击 “OK” 保存设置。
6. 使用 ST-Link Utility
6.1 程序下载 (Program and Verify)
这是 ST-Link Utility 最常用的功能。
- 连接到目标:确保已成功连接到 STM32 目标芯片。
- 加载固件文件:
- 点击菜单栏上的 “File” -> “Open file…” (或工具栏上的打开文件图标)。
- 浏览并选择您要烧录的固件文件(
.hex,.bin,.elf等)。 - 文件加载后,您可以在主界面的 “Flash memory” 区域看到文件的内容。
- 下载固件:
- 点击菜单栏上的 “Target” -> “Program & Verify…” (或工具栏上的烧录图标)。
- 在弹出的窗口中,您可以确认起始地址 (
Start address),通常是0x08000000(对于 Flash)。 - 勾选 “Verify programming” (编程后校验) 是个好习惯,可以确保数据传输的正确性。
- 勾选 “Run after programming” (烧录后运行) 会在烧录完成后自动运行程序。
- 点击 “Start” 开始烧录。
- 烧录过程会显示进度和结果。成功后会提示 “Programming complete. Verify successful.”。
6.2 擦除闪存 (Erase)
在烧录新程序或清除旧程序时,可能需要擦除闪存。
- 连接到目标。
- 全片擦除:
- 点击菜单栏上的 “Target” -> “Erase Chip” (或工具栏上的擦除芯片图标)。
- 软件会提示您确认,点击 “Yes” 即可擦除整个 STM32 芯片的闪存。
- 扇区擦除:
- 点击菜单栏上的 “Target” -> “Erase Sector…”。
- 在弹出的窗口中,您可以指定要擦除的扇区范围。
6.3 读取闪存 (Read)
您可以从 STM32 芯片中读取当前烧录的程序或数据。
- 连接到目标。
- 读取闪存:
- 点击菜单栏上的 “Target” -> “Read” (或工具栏上的读取图标)。
- 软件会从芯片中读取 Flash 内容,并显示在主界面的 “Flash memory” 区域。
- 保存读取的内容:
- 点击菜单栏上的 “File” -> “Save file as…”。
- 选择保存路径和文件名,以及文件格式(如
.hex,.bin)。
6.4 Option Bytes 配置
Option Bytes 存储了芯片的一些重要配置信息,如读保护、写保护、看门狗、启动模式等。
- 连接到目标。
- 读取 Option Bytes:
- 点击菜单栏上的 “Target” -> “Option Bytes” (或工具栏上的 Option Bytes 图标)。
- 弹出的窗口会显示当前的 Option Bytes 配置。
- 修改 Option Bytes:
- 根据您的需求,修改对应的选项。例如,如果您想启用读保护,将
RDP(Read Protection) 从Level 0改为Level 1。 - 注意:修改 Option Bytes 是敏感操作,请务必了解每个选项的含义,错误的配置可能导致芯片无法正常工作或被锁死。特别是读保护,一旦启用 Level 1 或 Level 2,可能无法再读取芯片内容,甚至需要特殊方法才能解除。
- 根据您的需求,修改对应的选项。例如,如果您想启用读保护,将
- 编程 Option Bytes:
- 修改完成后,点击窗口底部的 “Apply” 按钮,ST-Link Utility 会将新的配置写入芯片。
7. 常见问题与故障排除
- “Can not connect to target!”
- 检查电源:目标 STM32 板是否已正确供电?
- 检查连接:SWD/JTAG 引脚是否正确连接到 ST-Link?
GND和VTref是否连接? - 检查驱动:ST-Link 驱动是否正确安装且无冲突?在设备管理器中查看。
- 芯片状态:芯片是否处于低功耗模式或被锁死?尝试按住目标板的复位按钮再连接。
- 模式设置:ST-Link Utility 的 Debug 模式是否选择
SWD? - 频率:尝试降低 ST-Link Utility 中的连接频率。
- 下载缓慢或失败
- USB 线缆:尝试更换 USB 线缆。
- USB 端口:尝试连接到电脑其他 USB 端口。
- 供电不稳定:确保目标板供电稳定。
- 忘记密码/读保护导致无法连接
- 如果启用了读保护 (RDP Level 1),ST-Link Utility 可能无法读取或连接。在 Option Bytes 中将其改回
Level 0并重新编程,但这会擦除整个 Flash 内容。
- 如果启用了读保护 (RDP Level 1),ST-Link Utility 可能无法读取或连接。在 Option Bytes 中将其改回
8. 总结
ST-Link Utility 是 STM32 开发中不可或缺的工具。通过本指南,您应该已经掌握了其安装、配置和基本使用方法。熟练使用 ST-Link Utility 将大大提高您的开发效率。在进行任何敏感操作(如 Option Bytes 配置)时,请务必小心谨慎,并参考 STM32 芯片的数据手册以了解详细信息。