这套配置负责电脑上的工具链和新工程可参考的 VS Code 任务模板,不包含开发板源码、HAL 库、启动文件或链接脚本。电脑配置一次后,其他 STM32 工程也能使用同一套工具;每个工程仍需针对自己的芯片配置构建文件。
适用范围
- Windows、PowerShell、VS Code、ST-LINK(SWD)
- STM32CubeCLT 提供 ARM GCC、GDB、CMake、Ninja、STM32CubeProgrammer 和 ST-LINK GDB Server
- 工程本身是可用的 CMake 工程,根目录有
CMakeLists.txt
安装与配置
先安装 VS Code、STM32CubeCLT 和 ST-LINK 驱动。确认 CubeCLT 安装目录中有 GNU-tools-for-STM32、STM32CubeProgrammer、STLink-gdb-server、CMake、Ninja。
在仓库根目录打开 PowerShell,运行:
.\tools\setup-stm32-vscode.ps1 -InstallExtensions若 PowerShell 阻止脚本执行,可以仅对当前进程临时放行后重试:
Set-ExecutionPolicy -Scope Process Bypass.\tools\setup-stm32-vscode.ps1 -InstallExtensionsCubeCLT 不在 C:\ST\STM32CubeCLT_* 时,指定实际路径:
.\tools\setup-stm32-vscode.ps1 -CltPath 'D:\ST\STM32CubeCLT_1.19.0' -InstallExtensions脚本会向当前 Windows 用户的 PATH 追加工具目录,设置 STM32 相关环境变量,并更新 VS Code 用户设置;修改设置前会生成带时间戳的备份。-InstallExtensions 需要 code 命令可用,否则在扩展商店手动安装 C/C++、CMake Tools、Cortex-Debug。可选安装 STM32 VS Code Extension。脚本不会安装 CubeCLT 或驱动,也不会创建一个能编译任意芯片的工程。
脚本会改动现有用户 PATH 和 VS Code 用户设置。已有 MSYS2/GCC ARM/Ozone 环境通常可以共存,但同名命令由 PATH 中排在前面的版本决定;老工程若依赖特定版本,应在其工程配置中固定工具绝对路径。运行前可先查看脚本及备份重要设置。
重启 VS Code 和终端,然后检查:
arm-none-eabi-gcc --versionarm-none-eabi-gdb --versioncmake --versionninja --versionSTM32_Programmer_CLI.exe --versionGet-Command arm-none-eabi-gcc,cmake,ninja,STM32_Programmer_CLI.exeGet-Command 显示实际命中的路径,适合排查与 MSYS2 共存时的版本问题。
新工程编译、下载与调试
推荐用 STM32CubeMX 为目标芯片生成 CMake 工程,再用 VS Code 打开含 CMakeLists.txt 的工程根目录。纯终端编译:
cmake -S . -B build -G Ninja -DCMAKE_BUILD_TYPE=Debugcmake --build build --parallel第一条生成 Ninja 构建规则,第二条编译和链接。下载前确认 ELF/HEX 实际名称,然后连接 ST-LINK 和目标板:
STM32_Programmer_CLI.exe -c port=SWDSTM32_Programmer_CLI.exe -c port=SWD -w .\build\你的固件.hex -v -rst也可将仓库中的 examples/cmake-project/.vscode/tasks.json 和 launch.json 复制到新工程的 .vscode 文件夹,先把其中的 YOUR_FIRMWARE、YOUR_STM32_DEVICE 改成该工程实际的 ELF 文件名和芯片型号;模板下载任务使用 ELF,不依赖额外生成 HEX。模板默认 Ctrl+Shift+B 会依次配置、编译、烧录;只想编译时,用“终端 > 运行任务 > STM32: Build”;按 F5 调试。VS Code 快捷键做什么取决于该工程的 tasks.json,不是全局环境决定的。烧录前需连接 ST-LINK 并给目标板供电。
不同芯片不能只改设备名:还要确认 GNU 启动文件、链接脚本(Flash/RAM 容量)、CPU/FPU/ABI 参数和芯片驱动库匹配。模板不是完整工程。
仓库目录
tools/setup-stm32-vscode.ps1 当前用户的工具链配置脚本examples/cmake-project/.vscode/ 新 CMake 工程的任务与调试示例项目仓库:https://github.com/Nomkr/stm32-vscode-environment-setup