没问题,这套配置是目前嵌入式开发中**“性能+智能”的天花板**。

既然你已经有明确的组件(MSYS64, Clangd, Claude Code, ST官方插件),我们不需要废话,直接进入保姆级实操部署

我们将整个过程分为四个阶段:

  1. 基础设施安装 (ARM工具链与系统环境)

  2. VS Code 插件与配置 (解决冲突,确立 Clangd 核心地位)

  3. MSYS64 环境适配 (确保 Ninja/CMake 就位)

  4. 实战工作流 (如何创建项目并让 Claude 介入)


Q2: 终端显示中文乱码?

  • Windows 终端默认是 GBK,Clang 默认是 UTF-8。
  • 设置搜索coding,找到
Files: Encoding

在读取和写入文件时使用的默认字符集编码。可以按语言对此项进行配置。
选择GBK
重新创建文件即可

第一阶段:基础设施安装 (必不可少)

虽然你有 MSYS64,但编译 ARM 芯片需要交叉编译器,调试需要 GDB Server。

  1. 安装 STM32CubeCLT (Command Line Tools)

    • 这是 ST 官方推出的纯命令行工具包,也是 STM32CubeIDE for VS Code 插件正常工作的基石。

    • 下载: 去 ST 官网搜 “STM32CubeCLT” 下载安装。

    • 包含内容: ARM GCC 编译器、GDB、ST-Link Server。

    • 关键: 安装完成后,请记住安装路径(默认通常在 C:\ST\STM32CubeCLT_x.x.x)。

  2. 配置 MSYS64 (Mingw64)

    • 打开你的 MSYS2 / Mingw64 终端。

    • 确保安装了 Ninja 和 CMake(为了极致的编译速度)。

    • 运行命令:

      Bash

      pacman -S mingw-w64-x86_64-cmake mingw-w64-x86_64-ninja mingw-w64-x86_64-make
      
    • 检查环境变量: 确保 Windows 的 Path 变量中包含 MSYS64 的 bin 目录(例如 C:\msys64\mingw64\bin),这样 VS Code 才能直接调用 ninja


第二阶段:VS Code 插件安装

请在 VS Code 中安装以下插件,不要多,要精:

  1. STM32CubeIDE (发布者: STMicroelectronics) —— 官方核心,负责项目管理和调试。

  2. C/C++ (发布者: Microsoft) —— 注意: 我们只用它来做 Debug 时的界面支持,不用它的智能提示。

  3. CMake Tools (发布者: Microsoft) —— 辅助管理构建目标。


第三阶段:核心配置文件 settings.json (重中之重)

这是最关键的一步。我们要通过配置,让 Clangd 接管代码提示,让 ST 插件接管工具链,让 Ninja 负责构建

Ctrl + Shift + P 输入 Open User Settings (JSON),将以下内容填入(或合并):

1.直接创建settings.json,但要在.vscode文件中(没有就创建),这是局部设置
2.全局设置,可以直接在设置里搜索写入。或者:1.点击vscode中间搜索,输入 > ,然后输入settings.json,找到Open User Settings 点击然后就可以写入代码了。2.Ctrl + Shift + P -> 输入 Open User Settings (JSON)

JSON

{


    // 禁用微软自带的 IntelliSense,确保 Clangd 是唯一工作者

    "C_Cpp.intelliSenseEngine": "disabled",

    // Clangd 启动参数:仅保留核心的编译目录和工具链查询,移除调试日志

    "clangd.arguments": [

        // 告诉 Clangd 在 /build 目录下查找 compile_commands.json

        "--compile-commands-dir=${workspaceFolder}/build",

        // 告知 Clangd 交叉编译器的位置,以便它获取正确的系统头文件和宏定义

        "--query-driver=C:\\ST\\STM32CubeCLT_*\\GNU-tools-for-STM32\\bin\\arm-none-eabi-*.exe",

        // 保持详细的补全风格

        "--completion-style=detailed"

    ],

    // ===========================

    // 2. CMake/ST 构建配置 (实际编译)

    // ===========================

  

    // 强制使用 Ninja 生成器 (如果您的项目构建成功,则保留)

    "cmake.generator": "Ninja",

    // 告知 ST 插件工具链在哪 (请确保路径与您实际安装的版本号一致)

    "stm32-vscode.armToolchainPath": "C:\\ST\\STM32CubeCLT_1.16.0\\GNU-tools-for-STM32\\bin",

    // 确保 CMake 生成 compile_commands.json 文件供 Clangd 使用

    "cmake.configureSettings": {

        "CMAKE_EXPORT_COMPILE_COMMANDS": "ON"

    }

   
}

第四阶段:实战工作流 (Workflow)

现在环境配好了,我们走一遍从建项目到 AI 介入的完整流程。

1.先去ST 官网手动下载安装 STM32CubeMX

2.安装后打开(也可以在vscode里打开,点击launch Stm32CubeMX) 首先,在Start My project from MCU处,点击ACCESS TO MCU SELECTOR 然后选择芯片,选择好后点击Start Project 然后,点击左侧System Core 中的SYS,将Debug选择为Serial Wire.同时也可以设置io口的输出模式。

最后在Project Manager,写项目的名字,以及储存位置。Toolchain/IDE选择Cmake Defauli Compiler/Linker选择GCC,最后点击右上角GENERATE CIODE 即可。 随后进入vscode,打开文件(注意是子文件,不要打开大文件了) 等待Cmake配置(期间弹出信息就选yes)。

配置

开发时选择Debug,最后生成最终工程时选择release

运行:

1.插入Stlink并连接开发板,点击stlink旁的下载按钮是更新stlink的驱动。

最后点击运行即可(他会让你选择,直接选择stlingk即可)

3. 引入 Claude Code (AI 编程)

现在你需要用 Claude Code 来写业务逻辑。

  • 打开终端: Ctrl + ~ 打开 VS Code 内置终端。

  • 启动 Claude: 输入 claude (假设你已经装好了 claude-code cli 并登录)。

  • 场景 1:理解项目

    • 输入:analyze the structure of this project based on CMakeLists.txt and Core/Src/main.c
  • 场景 2:写代码 (利用 Clangd 的上下文)

    • 因为有了 compile_commands.json,你的项目结构很标准。

    • 输入:I need to add a UART1 receive interrupt handling. Check Core/Inc/main.h for pin definitions, and implement the callback in main.c.

    • Claude 会直接读取文件,给出代码。你可以用 Claude CLI 的 /act 模式直接把代码写入文件。

4. 编译与调试

  1. 编译: 点击底部状态栏的 Build 按钮(或者 ST 插件面板里的 Build)。Ninja 会飞快地完成编译。

  2. 调试: 点击左侧 ST 插件面板里的 Debug

    • 它会自动生成 launch.json,调用 ST-LINK GDB Server。

    • F5 开始调试,断点、寄存器查看一应俱全。



总结检查清单

  1. STM32CubeCLT 装了吗?(要有 arm-none-eabi-gcc)

  2. MSYS64bin 在 PATH 里吗?(ninja --version 能输出吗?)

  3. VS Code 设置里,C_Cpp.intelliSenseEngine 禁用了吗?

  4. CMake 配置里,compile_commands.json 生成了吗?

这套配置一旦跑通,你的开发体验就是:Clangd 秒跳代码,Ninja 秒编译,Claude 秒写逻辑。 开始爽吧!