stm32stlinkutility使用教程
stm32stlinkutility使用教程
好的,这是一个STM32 ST-LINK Utility (ST-LINK Utility) 的中文使用教程。请注意,ST官方推荐使用更新且功能更强大的 STM32CubeProgrammer 替代此工具。但ST-LINK Utility因其简单性和稳定性,仍在很多场合使用。
核心功能:
- 连接/断开 目标STM32芯片(通过ST-LINK调试器)。
- 编程:烧录固件(
.hex,.bin,.s19文件)到芯片的Flash和选项字节(Option Bytes)。 - 擦除:整片擦除或扇区擦除Flash。
- 读写内存:读取或写入芯片内部的内存(包括Flash, RAM, 外设寄存器)。
- 读写选项字节:配置保护状态、看门狗、启动模式等。
- 读取保护:使能/失能读保护(需谨慎操作)。
- 校验:验证已烧录的内容是否与原始文件一致。
- 生成文件:读取Flash内容保存为文件(
.hex,.bin,.s19)。 - 目标电压测量:检查目标板的供电电压。
- 串口打印:通过ST-LINK的虚拟串口功能查看调试信息。
使用前准备:
- 硬件:
- 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连接器。
- 软件:
- STM32 ST-LINK Utility 软件:从ST官网(www.st.com)下载并安装。搜索 “STSW-LINK004” 或 “STM32 ST-LINK Utility”。安装后桌面会有
ST-LINK Utility快捷方式。 - 目标固件文件:准备好你要烧录的固件文件(通常是
.hex或.bin格式)。
- STM32 ST-LINK Utility 软件:从ST官网(www.st.com)下载并安装。搜索 “STSW-LINK004” 或 “STM32 ST-LINK Utility”。安装后桌面会有
- 接线 & 上电:
- 用SWD线正确连接ST-LINK调试器和目标板上的调试接口。
- 确保目标板已正确供电。板载ST-LINK通常在连接USB时会给目标板供电;独立ST-LINK可能需要配置跳线选择是否给目标板供电,最好目标板自己供电或确认ST-LINK供电能力足够。
- 重要提示: 连接时确保目标板和ST-LINK的GND可靠连接。检查
VTref(参考电压)引脚电压是否正确(通常连接目标板的3.3V),这能确保通信电平匹配。
ST-LINK Utility 使用教程步骤 (界面截图可能因版本不同略有差异):
-
启动软件: 双击桌面
ST-LINK Utility图标启动程序。 -
连接目标设备:
- 方式一 (菜单): 点击顶部菜单栏
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。最好连上
NRST和VTref)检查线序和接触。 - 目标板是否已上电?电压是否正常?(
VTref电压是否在合理范围?使用菜单Target->Check VCC测量) - 目标芯片是否处于休眠/低功耗模式?尝试按目标板复位键后再连接。
- ST-LINK驱动是否正确安装?可在设备管理器中查看。
- 状态栏显示红色错误信息(如
- 方式一 (菜单): 点击顶部菜单栏
-
基本操作:
-
烧录固件 (Programming / Write):
- 确认目标设备已成功连接。
- 方式一 (文件菜单): 点击顶部菜单栏
Target->Program...。 - 方式二 (工具栏): 点击工具栏上像“向下箭头指向芯片”的图标(Program)。
- 在弹出的
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:不擦除直接编程(除非特殊需求,一般不勾选,否则可能导致数据错误)。
- 点击
Start按钮开始烧录。 - 观察状态栏和
Programmer窗口底部的进度条和信息提示。成功后会显示Verification OK和Programming finished.等提示。 - 点击
Close关闭窗口。
-
擦除芯片 (Erase):
- 连接目标设备。
- 方式一 (菜单): 点击顶部菜单栏
Target->Erase Chip(整片擦除)。 - 方式二 (工具栏): 点击工具栏上像“垃圾桶”的图标(Erase Chip)。
- 扇区擦除: 如果你只想擦除特定区域(不常用),可以在菜单
Target->Erase Sectors中选择扇区范围。 - 确认提示信息后,等待擦除完成。擦除后的Flash内容(地址
0x08000000起)应显示为0xFFFFFFFF。
-
读取Flash内容 (Read / Save):
- 连接目标设备。
- 方式一 (读取到内存视图): 主窗口内存视图区域默认显示的是连接后读取的Flash起始地址内容。你可以在地址栏输入其他地址(如
0x08000000或 RAM 地址0x20000000)并按回车读取。 - 方式二 (读取并保存到文件):
- 点击菜单栏
Target->Save file as...。 - 选择保存位置、文件名和文件格式(
.hex,.bin,.s19)。 - 设置读取的
起始地址和大小(字节数)。 - 点击
保存。软件会读取指定地址范围的Flash内容并保存到文件中。
- 点击菜单栏
-
读写选项字节 (Option Bytes): 操作需谨慎!错误设置可能导致芯片锁死!
- 连接目标设备。
- 点击菜单栏
Target->Option Bytes...。打开选项字节配置窗口。 - 窗口显示当前芯片的选项字节状态(如读保护
RDP, 写保护WRP, 硬件看门狗nRST_STDBY/nRST_STOP, 启动模式BOOT_SEL/BOOT0等)。 - 读取: 连接后或点击
Refresh按钮获取当前值。 - 修改: 在下拉框中选择你想要的值。务必理解每个选项的含义! 例如,将
RDP从Level 0(无保护) 修改为Level 1(使能读保护) 后,未经特殊解锁将无法再通过调试接口读取Flash内容。 - 写入: 修改后,点击窗口右下角的
Apply按钮将新的选项字节设置写入芯片。写入操作会擦除并重新编程选项字节区域。 - 关闭窗口。
-
内存读写 (Memory View / Memory Edit):
- 在地址栏(左上角)输入你想查看/修改的内存地址(如Flash
0x08000000, RAM0x20000000, 外设寄存器0x40000000等)后按回车。 - 主视图的
Memory标签页会以十六进制形式显示该地址开始的内存内容。 - 修改: 直接在
Memory窗口显示的十六进制值上双击,输入新的十六进制值(两位为一个字节),按回车确认。软件会提示是否写入,确认后修改会实时写入目标芯片内存/寄存器。修改RAM是瞬时的;修改Flash需要先解锁(Erase->Program)操作。
- 在地址栏(左上角)输入你想查看/修改的内存地址(如Flash
-
-
断开连接:
- 当你完成操作后,可以断开与目标板的连接。
- 方式一 (菜单): 点击顶部菜单栏
Target->Disconnect。 - 方式二 (工具栏): 点击工具栏上像“拔掉插头”的图标(Disconnect)。
常见问题与提示:
Connection error!/No target detected!:- 仔细检查所有物理连接(USB, SWD线)。
- 检查目标板供电电压(
Target->Check VCC)。 - 尝试按目标板复位键后重新连接(
Target->Connect)。 - 确保目标芯片支持SWD调试(所有STM32都支持)。
- 如果使用了调试口复用或其它非常规设计,确认SWD引脚没有被禁用或被其他功能占用(BOOT引脚状态可能影响)。
- 烧录失败(
Programming failed!,Verification failed!):- 确认在烧录
.bin文件时正确填写了Start Address(通常0x08000000)。 - 文件路径或文件名中是否有中文字符或空格?尝试使用英文路径和文件(文件名)名。
- 芯片Flash被写保护了?检查选项字节(
RDP是否为Level 0,WRP是否未保护你要烧写的扇区)。 - 关键步骤: 尝试在执行烧录操作前,手动执行一次
Erase Chip(全片擦除)。 - ST-LINK或目标芯片接触不良?重新插拔线缆或尝试更换。
- 确认在烧录
Device is protected/Cannot connect to protected device:- 芯片启用了读保护(
RDP Level 1)。你需要执行一次Full Chip Erase(擦除整片Flash) 操作。擦除操作会清除包括Flash内容、选项字节(包括读保护状态)在内的一切内容,使芯片恢复到未保护状态。然后才能重新连接并烧写新程序。
- 芯片启用了读保护(
- 软件无法识别ST-LINK:
- 检查ST-LINK驱动安装(在设备管理器中看是否有带感叹号的设备)。
- 尝试重启软件或电脑。
- 尝试更换USB口或USB线。
- 确保安装的是最新版的STM32 ST-LINK Utility(它包含驱动)。
- 使用独立ST-LINK给目标板供电:
- 检查ST-LINK模块上的跳线帽,通常需要将
3.3V SEL(或类似标识) 跳接到VDDTARGET(或VOUT) 侧来开启对外供电。注意ST-LINK的输出电流能力有限(通常几十到一百多毫安),对于功耗较大的目标板可能导致不稳定或损坏ST-LINK。优先使用目标板自身供电。
- 检查ST-LINK模块上的跳线帽,通常需要将
重要建议:
- 迁移到 STM32CubeProgrammer: ST官方已明确将未来的开发重心放在STM32CubeProgrammer上。它支持更多协议(SWD, JTAG, USB DFU, UART, CAN, I2C, SPI),更多功能(OTP, TrustZone配置),更现代的界面,并能管理外部EEPROM/SPI NOR Flash。对于新项目或兼容性要求高的,建议使用STM32CubeProgrammer。
- 操作选项字节前务必理解其含义! 特别是
RDP和WRP,错误设置可能导致无法调试或无法再次编程芯片,需要特殊手段(如执行Full Chip Erase)才能恢复。 - 连接
VTref(参考电压)至关重要,它能保证调试器和目标芯片之间的通信电平匹配,提高连接稳定性。 - 编程前验证是个好习惯。
这份教程涵盖了STM32 ST-LINK Utility最常见的操作。熟悉这些步骤后,你将能顺利完成基本的STM32芯片烧录、擦除和调试工作。祝你成功!
STM32WB15自制板卡无法通过SWD接口扫描到芯片怎么解决?
STM32WB15CCU6主控,供电测试正常,接线也正常,可是无法使用STLinkUtility通过SWD接口扫描到芯片。
STM32F429NIH6 一款STM32位控制MCU
1970-01-01 08:00:00 至 1970-01-01 08:00:00
stm32L编程手册
本参考手册面向应用程序开发人员。 它提供了有关的完整信息如何使用STM32L151xx,STM32L152xx和STM32L162xx微控制器存
资料下载
姚小熊27
2021-04-28 16:00:38
STM32WB15无法使用STLinkUtility通过SWD接口扫描到芯片是怎么回事
STM32WB15CCU6主控,供电测试正常,接线也正常,可是无法使用STLinkUtility通过SWD接口扫描到芯片。
STM3210B-PFSTICK
STM32 Hitex STM32-PerformanceStick STM32F1 MCU 32-Bit ARM® Cortex®-M3 Em
使用STlinkUtility v 4.5.0对闪存进行了不受保护的读取和写入操作,无法擦除闪存怎么解决?
您好,我是从事 STM32G07 系列开发板的固件工程师。在使用闪存时,我使用 STlinkUtility v 4.5.0 对闪存进行了不受保护的读取和写入操作,此后我无法擦除闪存,因此无法调试和加
STM32-PRIMER
STM32-PRIMER - Raisonance STM32 Primers for fun, easy evaluation and development with
换一换
- 如何分清usb-c和type-c的区别
- 中国芯片现状怎样?芯片发展分析
- vga接口接线图及vga接口定义
- 芯片的工作原理是什么?
- 华为harmonyos是什么意思,看懂鸿蒙OS系统!
- 什么是蓝牙?它的主要作用是什么?
- ssd是什么意思
- 汽车电子包含哪些领域?
- TWS蓝牙耳机是什么意思?你真的了解吗
- 什么是单片机?有什么用?
- 升压电路图汇总解析
- plc的工作原理是什么?
- 再次免费公开一肖一吗
- 充电桩一般是如何收费的?有哪些收费标准?
- ADC是什么?高精度ADC是什么意思?
- dtmb信号覆盖城市查询
- EDA是什么?有什么作用?
- 中科院研发成功2nm光刻机
- 苹果手机哪几个支持无线充电的?
- type-c四根线接法图解
- 华为芯片为什么受制于美国?
- 怎样挑选路由器?
- 元宇宙概念股龙头一览
- 锂电池和铅酸电池哪个好?
- 如何进行编码器的正确接线?接线方法介绍
- 什么是场效应管?它的作用是什么?
- 虚短与虚断的概念介绍及区别
- 晶振的作用是什么?
- 大疆无人机的价格贵吗?大约在什么价位?
- amoled屏幕和oled区别
- 苹果nfc功能怎么复制门禁卡
- 单片机和嵌入式的区别是什么
- 复位电路的原理及作用
- BLDC电机技术分析
- dsp是什么意思?有什么作用?
- 苹果无线充电器怎么使用?
- iphone13promax电池容量是多少毫安
- 芯片的组成材料有什么
- 特斯拉充电桩充电是如何收费的?收费标准是什么?
- 直流电机驱动电路及原理图
- 传感器常见类型有哪些?
- 自举电路图
- 苹果笔记本macbookpro18款与19款区别
- 通讯隔离作用
- 新斯的指纹芯片供哪些客户
- 伺服电机是如何进行工作的?它的原理是什么?
- 无人机价钱多少?为什么说无人机烧钱?
- 以太网VPN技术概述
- 手机nfc功能打开好还是关闭好
- 十大公认音质好的无线蓝牙耳机