STM32 ST-LINK Utility 使用教程与下载
1. 引言
STM32微控制器是STMicroelectronics公司基于ARM Cortex-M内核开发的一系列32位微控制器,广泛应用于嵌入式系统开发。在STM32的开发过程中,程序下载和调试是不可或缺的环节。ST-LINK是STMicroelectronics推出的一系列在线调试器和编程器,用于STM8和STM32微控制器的烧录与调试。而ST-LINK Utility,顾名思义,是STMicroelectronics官方提供的一款图形用户界面(GUI)工具,用于配合ST-LINK硬件对STM32芯片进行程序烧录、擦除、读保护、写保护等操作,极大地简化了开发流程。
2. 什么是ST-LINK Utility?
ST-LINK Utility是STMicroelectronics开发的一款免费软件,它允许用户通过ST-LINK调试器与STM32微控制器进行通信。它提供了一个直观的界面,用于管理微控制器的闪存(Flash)内容,包括:
- 程序下载(Program Download):将编译好的固件(通常是
.hex,.bin,.elf文件)烧录到STM32的内部闪存中。 - 芯片擦除(Chip Erase):擦除整个芯片的闪存内容。
- 扇区擦除(Sector Erase):擦除指定区域的闪存内容。
- 读取闪存内容(Read Flash):将芯片内的程序读取出来并保存为文件。
- 校验(Verify):检查烧录到芯片中的程序是否与源文件一致。
- 读保护与写保护(Read/Write Protection):设置芯片的保护级别,防止代码被非法读取或修改。
- 选项字节配置(Option Bytes Configuration):配置芯片的一些特殊功能,如启动模式、看门狗等。
3. ST-LINK Utility 的主要功能
- 直观的用户界面:易于上手,功能分区明确。
- 支持多种固件格式:支持
.hex,.bin,.elf等常见的固件文件格式。 - 全面的闪存操作:提供下载、上传、擦除、校验等全套闪存管理功能。
- 安全保护功能:读保护和写保护功能确保代码安全。
- 选项字节配置:方便用户根据需求配置芯片行为。
- 支持多种ST-LINK版本:兼容ST-LINK/V1, ST-LINK/V2, ST-LINK/V2-1, ST-LINK/V3等。
- 实时状态显示:显示连接状态、芯片信息、操作进度等。
4. ST-LINK Utility 下载
ST-LINK Utility是STMicroelectronics官方免费提供的软件。下载步骤如下:
- 访问STMicroelectronics官方网站:
通常,您可以在ST官方网站的产品页面或软件工具页面找到它。在搜索引擎中搜索“ST-LINK Utility”或“STM32CubeProgrammer”(较新版本ST-LINK Utility功能已整合到STM32CubeProgrammer中)。 - 查找并下载软件:
如果您需要的是旧版的ST-LINK Utility,通常其名称为“ST-LINK Utility”。但STMicroelectronics目前更推荐使用功能更强大的STM32CubeProgrammer,它包含了ST-LINK Utility的所有功能并提供了更多高级特性。- 推荐下载STM32CubeProgrammer:在ST官网搜索 “STM32CubeProgrammer”,进入其产品页面,找到“Get Software”或“Download”按钮。您可能需要注册一个ST账户才能下载。
- 直接下载链接示例(可能会更新,请以官网为准):
前往www.st.com,在搜索框中输入 “STM32CubeProgrammer”,找到对应的软件页面,点击下载按钮。
下载的文件通常是一个安装包(例如 .exe 文件)。
5. ST-LINK Utility (或STM32CubeProgrammer) 安装步骤
以Windows系统为例,安装过程通常非常直接:
- 运行安装程序:双击下载的安装包文件(例如
st-stm32cubeprog-win.exe)。 - 接受许可协议:阅读并同意STMicroelectronics的软件许可协议。
- 选择安装路径:可以选择默认安装路径或自定义安装路径。
- 安装驱动程序:安装程序会提示您安装ST-LINK驱动程序。这是非常关键的一步,请务必勾选并安装,否则您的电脑将无法识别ST-LINK调试器。
- 完成安装:按照安装向导的指示完成安装。
安装完成后,您可以在开始菜单或桌面找到“STM32CubeProgrammer”或“ST-LINK Utility”的快捷方式。
6. 使用ST-LINK Utility (以STM32CubeProgrammer为例)
由于STM32CubeProgrammer是ST-LINK Utility的增强版,我们以其为例进行说明。操作流程基本一致。
6.1 硬件连接
- 连接ST-LINK到电脑:使用USB线将ST-LINK调试器连接到您的电脑。
- 连接ST-LINK到STM32板:通过SWD(Serial Wire Debug)或JTAG接口将ST-LINK连接到您的STM32开发板。
- SWD接口通常需要VCC、GND、SWDIO、SWCLK这四根线。
- 确保电源正确连接,STM32板子已经上电。
6.2 启动软件并连接
- 打开STM32CubeProgrammer:启动安装好的软件。
- 选择ST-LINK连接方式:
在软件界面的右上角,找到“Connect”按钮旁边的下拉菜单。确保选择了“ST-LINK”。
- 点击“Connect”按钮:软件将尝试连接到您的STM32微控制器。如果连接成功,界面会显示芯片的详细信息,如闪存大小、芯片ID等。
- 如果连接失败,请检查硬件连接、驱动安装、STM32板子供电以及芯片是否处于正常工作模式。
6.3 烧录程序(Program)
- 加载固件文件:
在左侧菜单栏中选择“Open file”图标(通常是一个文件夹图标),然后浏览并选择您要烧录的固件文件(.hex,.bin,.elf等)。
- 配置烧录选项:
- Start address:如果您的固件是
.bin文件,需要手动指定烧录的起始地址,通常是0x08000000(STM32内部闪存的起始地址)。.hex和.elf文件通常包含地址信息,无需手动指定。 - Erase programming:勾选此选项会在烧录前自动擦除扇区。
- Verify programming:勾选此选项会在烧录后自动校验。
- Start address:如果您的固件是
- 开始烧录:
点击“Download”或“Start Programming”按钮。软件将显示烧录进度。
- 等待完成:烧录完成后,软件会显示“Programming complete”或类似信息。
6.4 擦除芯片(Erase Chip)
- 保持连接:确保已成功连接到STM32芯片。
- 选择擦除选项:
在左侧菜单栏中找到“Erase”选项卡或图标。- Full chip erase:擦除整个闪存。
- Sector erase:擦除指定地址范围的闪存。
- 执行擦除:点击相应的擦除按钮。
6.5 读取闪存内容(Read Flash)
- 保持连接:确保已成功连接到STM32芯片。
- 选择读取选项:
在左侧菜单栏中找到“Read”选项卡或图标。- 指定读取的起始地址和大小。
- 保存文件:选择保存路径和文件名,然后点击“Read”按钮。芯片中的程序将被读取并保存为指定文件。
6.6 配置选项字节(Option Bytes)
- 保持连接:确保已成功连接到STM32芯片。
- 进入Option Bytes界面:
在左侧菜单栏中选择“Option Bytes”选项卡。 - 修改配置:
根据需要修改读保护(RDP)、看门狗、启动模式等选项。 - 应用更改:
点击“Apply”或“Program Option Bytes”按钮,将更改写入芯片。
7. 常见问题与故障排除
- “Can not connect to target!” 或连接失败:
- 检查硬件连接:VCC、GND、SWDIO、SWCLK是否正确连接,ST-LINK是否与电脑连接。
- 检查电源:STM32开发板是否已正确供电。
- 驱动问题:确认ST-LINK驱动程序已正确安装。可以在设备管理器中查看。
- 复位芯片:尝试在连接前或连接时复位STM32芯片。
- 低功耗模式/代码卡死:如果芯片运行的程序使SWD/JTAG引脚进入复用功能或低功耗模式,可能导致ST-LINK无法连接。尝试按住复位键不放,然后点击连接,或者在连接前选择“Connect Under Reset”选项(如果软件提供)。
- 保护级别:如果芯片设置了高级读保护(Level 2),ST-LINK可能无法连接或需要先进行全面擦除才能重新连接。
- 烧录速度慢:
- 确保USB线质量良好。
- 检查ST-LINK固件是否为最新版本(STM32CubeProgrammer通常会提示更新)。
- 烧录后程序不运行:
- 启动地址:检查
.bin文件烧录的起始地址是否正确(0x08000000)。 - 复位:烧录完成后,手动复位STM32板子。
- 代码问题:检查您的程序代码是否存在问题,例如时钟配置、中断设置等。
- 启动地址:检查
8. 总结
ST-LINK Utility(或其现代替代品STM32CubeProgrammer)是STM32开发中不可或缺的工具。它提供了一个强大而用户友好的界面,用于管理STM32微控制器的闪存。通过熟练掌握其下载、安装和使用方法,可以大大提高STM32开发的效率和便捷性。在使用过程中,遇到问题时,请仔细检查硬件连接、驱动安装和软件配置,通常可以解决大部分连接和烧录问题。