使用 STM32CubeIDE for VSCode 开发 STM32 项目

Jan 12, 2026 · 1961 字

之前玩 ESP32 的时候一般都使用的是 esp-idf 或者 PlatformIO 来进行开发。然而在 STM32 这边,一方面 PIO 提供的支持有限,另一方面通常需要结合 STM32CubeMX 来生成初始化代码,所以使用 STM32CubeIDE 会更加方便一些。因为习惯了 VSCode 的开发体验,找到了最近 ST 推出的 STM32CubeIDE for VSCode 插件,感觉非常不错。

安装插件

注意使用 STM32CubeIDE for VSCode 不需要电脑上安装有 STM32CubeIDE。

显然你需要有 VSCode,然后在扩展市场搜索 STM32CubeIDE for VSCode 并安装即可,这是一个插件包,包含了多个子插件,安装过程需要个几分钟,可以设置为全局禁用,只在 STM32 项目中启用。

然后可以看到左侧栏多了一个 STM32 的图标,可以在 User guide 中查看使用说明和 FAQ。

生成项目

然后打开你的 STM32CubeMX,选择好芯片型号和配置好外设之后,点击 Project -> Generate Code,在 Toolchain / IDE 选项中选择 CMake,工具链一般选择 GCC,之后点击 Generate Code 即可生成项目。

然后直接打开生成的项目文件夹,就可以看到 VSCode 已经识别出了 STM32CubeIDE 项目,点击转换 CMake 项目即可,工具链和 CubeMX 中选择的保持一致。

如果你需要 .gitignore 文件的话,需要注意提前初始化仓库,STM32CubeIDE for VSCode 只有检测到了 .git 文件夹才会生成 .gitignore

编译调试

点击左下角的 ⚙ 生成 就可以生成代码了,非常滴方便。

调试只需要切换到 VSCode 的 运行和调试 选项卡,然后选择对应的配置即可开始调试,比如这里我使用的是 STM32Cube: STM32 Launch ST-Link GDB Server

你也可以创建一个 launch.json 文件,内容如下:

{
  "version": "0.2.0",
  "configurations": [
    {
      "type": "stlinkgdbtarget",
      "request": "launch",
      "name": "STM32Cube: STM32 Launch ST-Link GDB Server",
      "origin": "snippet",
      "cwd": "${workspaceFolder}",
      "preBuild": "${command:st-stm32-ide-debug-launch.build}",
      "runEntry": "main",
      "imagesAndSymbols": [
        {
          "imageFileName": "${command:st-stm32-ide-debug-launch.get-projects-binary-from-context1}"
        }
      ]
    }
  ]
}

注意如果报错的话可能是 STLink 驱动没有安装,或者是 STLink 固件版本过低。在 STM32 选项卡里点击 STLink USB drivers 可以下载安装最新的驱动。在 运行和调试STM32CUBE DEVICES AND BOARDS 里点击右侧下载小箭头可以更新固件。

代码格式化

如果你希望格式化的代码尽量接近 CubeMX 生成出来的风格,可以在项目根目录新建一个 .clang-format 文件,然后填入以下内容:

BasedOnStyle: GNU
IndentWidth: 2
BreakBeforeBraces: Allman
PointerAlignment: Right

粤ICP备2025414119号 粤公网安备44030002006951号

© 2026 Saurlax · Powered by Astro