没问题,这套配置是目前嵌入式开发中**“性能+智能”的天花板**。
既然你已经有明确的组件(MSYS64, Clangd, Claude Code, ST官方插件),我们不需要废话,直接进入保姆级实操部署。
我们将整个过程分为四个阶段:
-
基础设施安装 (ARM工具链与系统环境)
-
VS Code 插件与配置 (解决冲突,确立 Clangd 核心地位)
-
MSYS64 环境适配 (确保 Ninja/CMake 就位)
-
实战工作流 (如何创建项目并让 Claude 介入)
Q2: 终端显示中文乱码?
- Windows 终端默认是 GBK,Clang 默认是 UTF-8。
- 设置⇒搜索coding,找到
Files: Encoding
在读取和写入文件时使用的默认字符集编码。可以按语言对此项进行配置。
选择GBK
重新创建文件即可
第一阶段:基础设施安装 (必不可少)
虽然你有 MSYS64,但编译 ARM 芯片需要交叉编译器,调试需要 GDB Server。
-
安装 STM32CubeCLT (Command Line Tools)
-
这是 ST 官方推出的纯命令行工具包,也是 STM32CubeIDE for VS Code 插件正常工作的基石。
-
下载: 去 ST 官网搜 “STM32CubeCLT” 下载安装。
-
包含内容: ARM GCC 编译器、GDB、ST-Link Server。
-
关键: 安装完成后,请记住安装路径(默认通常在
C:\ST\STM32CubeCLT_x.x.x)。
-
-
配置 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 中安装以下插件,不要多,要精:
-
STM32CubeIDE (发布者: STMicroelectronics) —— 官方核心,负责项目管理和调试。
-
C/C++ (发布者: Microsoft) —— 注意: 我们只用它来做 Debug 时的界面支持,不用它的智能提示。
-
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. 编译与调试
-
编译: 点击底部状态栏的 Build 按钮(或者 ST 插件面板里的 Build)。Ninja 会飞快地完成编译。
-
调试: 点击左侧 ST 插件面板里的 Debug。
-
它会自动生成
launch.json,调用 ST-LINK GDB Server。 -
F5 开始调试,断点、寄存器查看一应俱全。
-
总结检查清单
-
STM32CubeCLT 装了吗?(要有
arm-none-eabi-gcc) -
MSYS64 的
bin在 PATH 里吗?(ninja --version能输出吗?) -
VS Code 设置里,
C_Cpp.intelliSenseEngine禁用了吗? -
CMake 配置里,
compile_commands.json生成了吗?
这套配置一旦跑通,你的开发体验就是:Clangd 秒跳代码,Ninja 秒编译,Claude 秒写逻辑。 开始爽吧!