登录/注册

stm32stlinkutility使用教程

stm32stlinkutility使用教程

更多

好的,这是一个STM32 ST-LINK Utility (ST-LINK Utility) 的中文使用教程。请注意,ST官方推荐使用更新且功能更强大的 STM32CubeProgrammer 替代此工具。但ST-LINK Utility因其简单性和稳定性,仍在很多场合使用。

核心功能:

使用前准备:

  1. 硬件:
    • STM32开发板或目标板:包含要操作的STM32芯片。
    • ST-LINK/V2 调试器
      • 可以是集成在Nucleo, Discovery等开发板上的板载ST-LINK。
      • 也可以是独立的ST-LINK/V2模块。确保使用可靠的版本(ST官方或知名第三方)。
    • 对应的连接线:USB线连接到电脑(给ST-LINK供电和通信),SWD调试线(SWCLK, SWDIO, GND,通常还有3.3V或5V的VCC/VTref用于参考电压)连接到目标板。注意线序! 通常开发板上有标准JTAG/SWD连接器。
  2. 软件:
    • STM32 ST-LINK Utility 软件:从ST官网(www.st.com)下载并安装。搜索 “STSW-LINK004” 或 “STM32 ST-LINK Utility”。安装后桌面会有 ST-LINK Utility 快捷方式。
    • 目标固件文件:准备好你要烧录的固件文件(通常是 .hex.bin 格式)。
  3. 接线 & 上电:
    • 用SWD线正确连接ST-LINK调试器和目标板上的调试接口。
    • 确保目标板已正确供电。板载ST-LINK通常在连接USB时会给目标板供电;独立ST-LINK可能需要配置跳线选择是否给目标板供电,最好目标板自己供电或确认ST-LINK供电能力足够。
    • 重要提示: 连接时确保目标板和ST-LINK的GND可靠连接。检查VTref(参考电压)引脚电压是否正确(通常连接目标板的3.3V),这能确保通信电平匹配。

ST-LINK Utility 使用教程步骤 (界面截图可能因版本不同略有差异):

  1. 启动软件: 双击桌面 ST-LINK Utility 图标启动程序。

  2. 连接目标设备:

    • 方式一 (菜单): 点击顶部菜单栏 Target -> Connect
    • 方式二 (工具栏): 点击工具栏上像“插头”?的图标(Connect to Target)。
    • 连接中提示: 软件底部状态栏会显示连接过程(Initializing... Programming... Verifying...)。
    • 连接成功:
      • 状态栏显示 Device connected
      • 目标设备信息(如芯片型号,如STM32F103RB)会显示在主视图的信息区域。
      • 菜单栏下的地址区域(如 0x08000000)会显示当前Flash地址的数据(通常是0xFFFFFFFF,表示空的Flash)。
      • 工具栏上的按钮(如擦除、编程)会变成可用状态。
    • 连接失败:
      • 状态栏显示红色错误信息(如 No ST-LINK detected!, No target detected!, Connection error!, Voltage not detected!)。
      • 检查步骤:
        • USB线是否插好?ST-LINK指示灯是否亮起?
        • SWD线是否正确连接?(至少连接SWCLK, SWDIO, GND。最好连上NRSTVTref)检查线序和接触。
        • 目标板是否已上电?电压是否正常?(VTref电压是否在合理范围?使用菜单 Target -> Check VCC 测量)
        • 目标芯片是否处于休眠/低功耗模式?尝试按目标板复位键后再连接。
        • ST-LINK驱动是否正确安装?可在设备管理器中查看。
  3. 基本操作:

    • 烧录固件 (Programming / Write):

      1. 确认目标设备已成功连接。
      2. 方式一 (文件菜单): 点击顶部菜单栏 Target -> Program...
      3. 方式二 (工具栏): 点击工具栏上像“向下箭头指向芯片”的图标(Program)。
      4. 在弹出的 Programmer 窗口中:
        • Browse... 按钮选择你要烧录的固件文件(.hex, .bin, .s19 等)。
        • Start Address: 对于 .bin 文件必须手动输入烧录起始地址(通常是 0x08000000,即Flash起始地址)。.hex 文件通常自动包含地址信息。
        • Programming Options: 根据需要勾选:
          • Reset after programming:烧录后硬件复位目标芯片。
          • Run after programming:烧录后开始运行程序(通常需要勾选)。
          • Verify after programming:烧录后校验Flash内容(强烈推荐勾选)。
          • Skip flash erase:不擦除直接编程(除非特殊需求,一般不勾选,否则可能导致数据错误)。
      5. 点击 Start 按钮开始烧录。
      6. 观察状态栏和 Programmer 窗口底部的进度条和信息提示。成功后会显示 Verification OKProgramming finished. 等提示。
      7. 点击 Close 关闭窗口。
    • 擦除芯片 (Erase):

      1. 连接目标设备。
      2. 方式一 (菜单): 点击顶部菜单栏 Target -> Erase Chip(整片擦除)。
      3. 方式二 (工具栏): 点击工具栏上像“垃圾桶”的图标(Erase Chip)。
      4. 扇区擦除: 如果你只想擦除特定区域(不常用),可以在菜单 Target -> Erase Sectors 中选择扇区范围。
      5. 确认提示信息后,等待擦除完成。擦除后的Flash内容(地址 0x08000000 起)应显示为 0xFFFFFFFF
    • 读取Flash内容 (Read / Save):

      1. 连接目标设备。
      2. 方式一 (读取到内存视图): 主窗口内存视图区域默认显示的是连接后读取的Flash起始地址内容。你可以在地址栏输入其他地址(如 0x08000000 或 RAM 地址 0x20000000)并按回车读取。
      3. 方式二 (读取并保存到文件):
        • 点击菜单栏 Target -> Save file as...
        • 选择保存位置、文件名和文件格式(.hex, .bin, .s19)。
        • 设置读取的 起始地址大小(字节数)。
        • 点击 保存。软件会读取指定地址范围的Flash内容并保存到文件中。
    • 读写选项字节 (Option Bytes): 操作需谨慎!错误设置可能导致芯片锁死!

      1. 连接目标设备。
      2. 点击菜单栏 Target -> Option Bytes...。打开选项字节配置窗口。
      3. 窗口显示当前芯片的选项字节状态(如读保护 RDP, 写保护 WRP, 硬件看门狗 nRST_STDBY / nRST_STOP, 启动模式 BOOT_SEL / BOOT0 等)。
      4. 读取: 连接后或点击 Refresh 按钮获取当前值。
      5. 修改: 在下拉框中选择你想要的值。务必理解每个选项的含义! 例如,将 RDPLevel 0 (无保护) 修改为 Level 1 (使能读保护) 后,未经特殊解锁将无法再通过调试接口读取Flash内容。
      6. 写入: 修改后,点击窗口右下角的 Apply 按钮将新的选项字节设置写入芯片。写入操作会擦除并重新编程选项字节区域。
      7. 关闭窗口。
    • 内存读写 (Memory View / Memory Edit):

      1. 在地址栏(左上角)输入你想查看/修改的内存地址(如Flash 0x08000000, RAM 0x20000000, 外设寄存器 0x40000000等)后按回车。
      2. 主视图的 Memory 标签页会以十六进制形式显示该地址开始的内存内容。
      3. 修改: 直接在 Memory 窗口显示的十六进制值上双击,输入新的十六进制值(两位为一个字节),按回车确认。软件会提示是否写入,确认后修改会实时写入目标芯片内存/寄存器。修改RAM是瞬时的;修改Flash需要先解锁(Erase->Program)操作。
  4. 断开连接:

    • 当你完成操作后,可以断开与目标板的连接。
    • 方式一 (菜单): 点击顶部菜单栏 Target -> Disconnect
    • 方式二 (工具栏): 点击工具栏上像“拔掉插头”的图标(Disconnect)。

常见问题与提示:

  1. Connection error! / No target detected!
    • 仔细检查所有物理连接(USB, SWD线)。
    • 检查目标板供电电压(Target -> Check VCC)。
    • 尝试按目标板复位键后重新连接(Target -> Connect)。
    • 确保目标芯片支持SWD调试(所有STM32都支持)。
    • 如果使用了调试口复用或其它非常规设计,确认SWD引脚没有被禁用或被其他功能占用(BOOT引脚状态可能影响)。
  2. 烧录失败(Programming failed!, Verification failed!
    • 确认在烧录 .bin 文件时正确填写了 Start Address(通常 0x08000000)。
    • 文件路径或文件名中是否有中文字符或空格?尝试使用英文路径和文件(文件名)名。
    • 芯片Flash被写保护了?检查选项字节(RDP是否为Level 0, WRP是否未保护你要烧写的扇区)。
    • 关键步骤: 尝试在执行烧录操作前,手动执行一次 Erase Chip(全片擦除)。
    • ST-LINK或目标芯片接触不良?重新插拔线缆或尝试更换。
  3. Device is protected / Cannot connect to protected device
    • 芯片启用了读保护(RDP Level 1)。你需要执行一次 Full Chip Erase(擦除整片Flash) 操作。擦除操作会清除包括Flash内容、选项字节(包括读保护状态)在内的一切内容,使芯片恢复到未保护状态。然后才能重新连接并烧写新程序。
  4. 软件无法识别ST-LINK
    • 检查ST-LINK驱动安装(在设备管理器中看是否有带感叹号的设备)。
    • 尝试重启软件或电脑。
    • 尝试更换USB口或USB线。
    • 确保安装的是最新版的STM32 ST-LINK Utility(它包含驱动)。
  5. 使用独立ST-LINK给目标板供电:
    • 检查ST-LINK模块上的跳线帽,通常需要将 3.3V SEL (或类似标识) 跳接到 VDDTARGET (或 VOUT) 侧来开启对外供电。注意ST-LINK的输出电流能力有限(通常几十到一百多毫安),对于功耗较大的目标板可能导致不稳定或损坏ST-LINK。优先使用目标板自身供电。

重要建议:

这份教程涵盖了STM32 ST-LINK Utility最常见的操作。熟悉这些步骤后,你将能顺利完成基本的STM32芯片烧录、擦除和调试工作。祝你成功!

EM-STM32C

EM-STM32C

2024-06-21 01:40:12

STM32WB15自制板卡无法通过SWD接口扫描到芯片怎么解决?

STM32WB15CCU6主控,供电测试正常,接线也正常,可是无法使用STLinkUtility通过SWD接口扫描到芯片。

2024-03-14 07:47:30

STM32F429NIH6 一款STM32位控制MCU

1970-01-01 08:00:00 至 1970-01-01 08:00:00

STM32f10x官方固件库资料

STM32f10x官方固件库资料

资料下载 kafenwong 2022-01-25 10:11:42

STM32中文参考手册下载

STM32中文参考手册_V10,详细介绍了32的各种功能外设以及部分内核

资料下载 kafenwong 2022-01-25 10:02:46

STM32固件库使用手册的中文版

STM32固件库使用手册的中文版

资料下载 ah此生不换 2022-01-25 10:01:32

STM32f10x官方固件库资料

STM32f10x官方固件库资料

资料下载 Kafen 2022-01-25 09:58:43

stm32L编程手册

本参考手册面向应用程序开发人员。 它提供了有关的完整信息如何使用STM32L151xx,STM32L152xx和STM32L162xx微控制器存

资料下载 姚小熊27 2021-04-28 16:00:38

STM32WB15无法使用STLinkUtility通过SWD接口扫描到芯片是怎么回事

STM32WB15CCU6主控,供电测试正常,接线也正常,可是无法使用STLinkUtility通过SWD接口扫描到芯片。

2023-08-07 13:02:01

STM3210B-PFSTICK

STM32 Hitex STM32-PerformanceStick STM32F1 MCU 32-Bit ARM® Cortex®-M3 Em

2023-03-30 11:48:26

MCU CARD 4 FOR STM32 STM32F429NI

MCU CARD 4 FOR STM32 STM32F429NI

2023-03-28 14:46:02

STM32091C-EVAL

STM32 STM32 MCU 32-Bit Embedded Evaluation Board

2023-03-22 19:55:50

使用STlinkUtility v 4.5.0对闪存进行了不受保护的读取和写入操作,无法擦除闪存怎么解决?

您好,我是从事 STM32G07 系列开发板的固件工程师。在使用闪存时,我使用 STlinkUtility v 4.5.0 对闪存进行了不受保护的读取和写入操作,此后我无法擦除闪存,因此无法调试和加

2022-12-30 08:23:02

STM32-PRIMER

STM32-PRIMER - Raisonance STM32 Primers for fun, easy evaluation and development with

2022-11-04 17:22:44

STM32STLINKUtility+ST_Link原理图

STM32STLINKUtility+ST_Link原理图

2020-03-26 19:42:03
7天热门专题 换一换
相关标签