在讲解如何使用LabVIEW实现ST-Link自动烧录功能之前,让我们先来了解一下ST官方提供的一款专用的Flash烧录工具:ST-Link utility。
官方下载链接为:STSW-LINK004 - STM32 ST-Link utility(已被STM32CubeProgrammer所替代) - STMicroelectronics。
安装完成后,其操作界面如图所示。关于ST-Link utility的具体操作,建议用户查阅帮助文档或利用网络上的相关资源。
ST-Link utility工具支持CLI(命令行接口),其帮助文档详细介绍了如何使用相关指令。在此,我主要是通过CLI来实现自动烧录的。CLI中包含了众多命令,这里我只会介绍几个与烧录相关的命令,其他命令请自行查阅文档。
下面,我们将进入具体的实现步骤。
项目资源下载地址为:download./download/m0_3823/87661155。
请将ST-Link_CLI.exe所在目录的路径(例如D:\Program Files (x86)\STM32 ST-Link Utility v4.6.0\ST-Link Utility)添加到系统环境变量中,操作步骤如图所示。
在开始烧录之前,请确保已正确安装烧录器的U驱动。驱动下载地址为:官方网站my.。
如果一切正常,您可以在设备管理器中找到烧录器。在命令行中输入“ST-LINK_CLI -List”,即可获取烧录器的SN和固件版本,相关信息将展示在屏幕上。
若同时连接了多个烧录器,该命令将展示出多个烧录器信息,SN信息在连接芯片时是必需的。
在开始烧录前,请确保硬件连接正常。使用诸如“-c [ID=/SN=] [JTAG/SWD] [FREQ=] [UR/HOTPLUG] [LPM]”等命令进行连接。这些命令包含了诸多参数,简单说明如下:
- 参数1(ID/SN):提供烧录器的ID或SN信息。ID范围从0到9,根据连接的烧录器数量递增。SN信息可通过-List命令获取。
- 参数2(JTAG/SWD):选择使用的接口协议类型,即JTAG或SWD。默认使用JTAG,此处我们选择SWD。
- 参数3(FREQ):设置不同协议的频率。JTAG和SWD支持的频率各不相同。JTAG默认使用9.0MHz,SWD默认使用4.0MHz。通常使用默认值即可,也可通过索引设置FREQ=x,其中SWD(x=0~10),JTAG(x=0~6)分别代表不同的频率。具体设置请参考文档。
- 参数5:在低功耗模式下激活调试功能。
详细内容请参考帮助文档。
使用ID和SN进行连接的操作如图所示。还有使用特定地址进行操作等命令,如“-P [
]”,其中地址是可选的。对于STM32的Flash映射,起始地址为0x08000000。支持的固件文件格式包括.bin、.hex和.srec。如果文件路径中包含空格,请将其置于双引号中。若需验证烧录是否成功,可使用“-V [while_programming/after_programming]”命令,该命令可在烧录过程中或烧录完成后进行验证。
至此,烧录功能的基本实现已介绍完毕。接下来将介绍几个可能会用到的命令。
如何复位MCU,请参照图示操作。
如何擦除整个芯片或指定扇区,命令为“-SE [&]”。只指定起始扇区号,则只擦除该扇区;若同时指定起始和结束扇区号,则擦除该区间内的所有扇区。