实现VSCode F8一键烧录STM32的完整配置方案

在STM32嵌入式开发中,频繁烧录固件是常见需求。通过配置VSCode快捷键调用PowerShell脚本,实现可视化选择文件、自动烧录、校验复位的完整流程分享。
软件环境:
1、Visual Studio Code 版本: 1.112.0 (system setup)
2、STM32CubeIDE for Visual Studio Code(VSCode插件)
3、CMake 4.3.0
4、STM32CubeProgrammer‌
5、gcc-arm-none-eabi-10.3-2021.10-win32

创建通用烧录脚本

新建STM32_Flash.ps1文件,内容如下:

<# STM32通用烧录脚本:弹出文件选择框选.hex文件,自动烧录 #>
Add-Type -AssemblyName System.Windows.Forms
$fileDialog = New-Object System.Windows.Forms.OpenFileDialog
$fileDialog.Filter = "Hex固件文件 (*.hex)|*.hex|所有文件 (*.*)|*.*"
$fileDialog.Title = "选择要烧录的STM32 .hex固件文件"

if ($fileDialog.ShowDialog() -eq [System.Windows.Forms.DialogResult]::OK) {
    $hexPath = $fileDialog.FileName
    $cliPath = "C:/Program Files/STMicroelectronics/STM32Cube/STM32CubeProgrammer/bin/STM32_Programmer_CLI.exe"
    
    Write-Host "`n========== 开始烧录STM32固件 ==========" -ForegroundColor Green
    Write-Host "选择的固件文件:$hexPath" -ForegroundColor Cyan
    
    & $cliPath -c port=swd -w "`"$hexPath`"" -v -rst 2>&1 | Select-String 'ST-LINK SN|File download complete|Download verified successfully|MCU Reset|Error:'
    
    if ($LASTEXITCODE -eq 0) {
        Write-Host "========== 烧录成功!芯片已复位运行 ==========" -ForegroundColor Green
    } else {
        Write-Host "========== 烧录失败!检查连接/文件路径 ==========" -ForegroundColor Red
    }
} else {
    Write-Host "`n❌ 已取消选择固件文件,烧录终止" -ForegroundColor Yellow
}
配置脚本执行权限

以管理员身份运行PowerShell执行:

Set-ExecutionPolicy RemoteSigned

执行后输入Y确认,该设置永久生效。可通过Get-ExecutionPolicy命令验证是否显示RemoteSigned

绑定VSCode快捷键

修改keybindings.json文件,添加 F8 快捷键(可根据自己习惯更改):

{
    "key": "f8",
    "command": "workbench.action.terminal.sendSequence",
    "args": {
        "text": "& \"D:/Documents/STM32_Flash.ps1\"\n"
    },
    "when": "terminalFocus || editorFocus",
    "description": "STM32通用烧录(选文件后自动烧录)"
}

确保脚本路径与实际存储位置一致。

测试烧录流程
  1. 打开VSCode终端(Ctrl+`)
  2. 按F8键弹出文件选择窗口
  3. 选择目标工程的.hex文件
  4. 终端将显示烧录进度和结果
典型输出示例
========== 开始烧录STM32固件 ==========
选择的固件文件:D:\Project\build\firmware.hex
ST-LINK SN  : XXXXXXXXXXXXXXXXXXXX
File download complete
Download verified successfully
MCU Reset
========== 烧录成功!芯片已复位运行 ==========
常见问题处理
  • 权限问题:确认执行策略为RemoteSigned
  • 路径错误:检查keybindings.json中的脚本路径
  • 硬件连接:确保ST-Link连接正常且开发板供电
  • 恢复默认策略:执行Set-ExecutionPolicy Restricted

该方案实现了跨工程通用、可视化操作、一键完成的烧录流程,显著提升开发效率。通过PowerShell直接调用STM32CubeProgrammer,避免了CMake配置的复杂性,保证烧录过程的稳定可靠。

Logo

智能硬件社区聚焦AI智能硬件技术生态,汇聚嵌入式AI、物联网硬件开发者,打造交流分享平台,同步全国赛事资讯、开展 OPC 核心人才招募,助力技术落地与开发者成长。

更多推荐