上篇聊的是边界,这篇直接落到环境:嵌入式 AI 编程工具要接进 STM32CubeIDE 和 ESP-IDF,Cursor、Claude Code、Codex 这三款分别怎么配。
安装工具本身很快,几分钟就能完成。真正折腾人的是另一件事:你有没有给 AI 留一条能读工程、能调编译器的说明。在网页对话框里问来问去,那叫查资料,不叫工作流。
下面这些命令来自官方文档和公开资料。
01 三个工具,不是一个产品
Cursor、Claude Code、Codex 经常被放在一起比较,但它们并非同一类产品。Cursor 是 IDE,AI 长在图形界面里,补全、对话都在编辑器内完成。另外两个跑在终端,读文件、改代码、执行命令,属于典型的 Agent。

▲ 三款工具对照:基于官方文档整理的公开信息
选哪个,更多取决于个人习惯。改代码时眼睛离不开屏幕,Cursor 更顺手;想让 AI 自己改完、自己编译、报错自己修,就选 Claude Code 和 Codex。
这个差别放到嵌入式里会被进一步放大。嵌入式真正麻烦的从来不是那几行 C 语言代码,而是后面的编译、链接、烧录,以及烧录后的结果验证。网页对话框陪不了你走完这条链路。
02 AI 够不够得着编译器
嵌入式的 IDE 有两种操作方式。STM32CubeIDE 属于图形派,编译靠点按钮,工程是 Eclipse 那套结构:.project、.cproject。ESP-IDF 则反过来,idf.py 脚本包裹整个工程,根目录一个 CMakeLists.txt 就把工程结构表述得明明白白。
这直接决定了接入难度。Agent 不会帮你点按钮,只会敲命令。ESP-IDF 天生吃这一套。STM32CubeIDE 也不是没招,官方留了 headless 构建的口子,工程能在命令行里编译。
不少教程跳过这步,直接教人把代码贴给 AI,问哪里错了。AI 答得再准,下一条编译命令还得你自己敲。
循环是断的。
判断标准就一条: 在工程目录里,AI 能不能自己把编译跑起来,再自己读回错误。如果能,这环境就算通了。
03 CubeIDE 走 headless 那条路
CubeIDE 底层是 Eclipse,命令行编译是它自带的能力,只是藏得比较深。Windows 装完后,安装目录里能找到 headless-build.bat。
headless-build.bat -import . -cleanBuild MyProject/Debug
等价的长命令要通过 stm32cubeidec.exe 加 headlessbuild 参数来执行。前提是工程先用 CubeMX 生成好,.ioc 和 Eclipse 工程文件都在。之后 AI 在命令行触发构建,从输出里捡编译错误。
还有条更省事的路:CubeMX 生成代码后,编译交给 CMake 加 arm-none-eabi-gcc。AI 只面对 make,跟纯软件项目没两样,报错也干净。代价是 CMakeLists.txt 得自己维护,老工程迁移起来比较麻烦。
我自己的做法是,新工程直接上 CMake;存量工程先把 headless-build 跑通再说。
04 ESP-IDF 本来就是命令行派
ESP-IDF 官方主推命令行,接入 Agent 几乎不用改造。环境激活之后,日常就三个命令:
idf.py build
idf.py -p COM3 flash
idf.py -p COM3 monitor
工程根目录那几样东西——CMakeLists.txt、组件目录、sdkconfig——都是明文,AI 扫一遍就明白结构。换芯片、清缓存、看固件体积,也都有子命令。
Windows 上有个坑,几乎人人都会踩一次:idf.py 不在系统 PATH 里,得先激活 IDF 环境。从普通终端直接开 Claude Code 或 Codex,敲 idf.py 多半是 command not found。
怎么办?在已经激活环境的那个终端里启动 Agent,让 PATH 一起交出去。嫌麻烦就用 WSL2 装 Linux 版,环境变量清爽,Agent 跑得也稳。
05 再给 AI 一份工程说明书
工具接好了,还差一样东西:你工程的上下文。Claude Code 认 CLAUDE.md,Codex 认 AGENTS.md,Cursor 也有自己的规则文件。叫法不同,作用差不多——AI 每次进工程先读它,相当于一份入职材料。
嵌入式这份材料我一般写四块:芯片和时钟、工具链和命令、目录约定、哪些地方别碰。下面是我压到最短的版本,可以直接抄:
# 硬件
- 芯片:STM32F103C8T6(Cortex-M3)
- 晶振:8MHz HSE,SYSCLK 72MHz
- 烧录:ST-Link / SWD
# 构建
- 命令:headless-build.bat -import . -cleanBuild Demo/Debug
- 产物:Debug/Demo.elf
# 规则
- 用户代码在 Core/Src、Core/Inc,HAL 库目录别动
- 禁止修改链接脚本 *.ld
- 编译通过 ≠ 能上板:涉及时钟、时序先说明再改
这份文件什么时候显灵?多半是在你让它动时钟配置的时候。没有它,AI 会按最常见的那套写,比如 72MHz 外部晶振。你的板子万一是 25MHz 晶振,或者干脆用内部时钟,编译能过,板子却不吭声。
麻烦就麻烦在它不报错。AI 看不到你的原理图,也摸不到晶振,只能信文档里写了什么。
06 配没配好,试四件事
不用搞得太复杂,下面四件事挨着试一遍就行。
一,问它这个工程是什么芯片、构建命令是什么。答不上来,就是没读进去。
二,让它自己跑一次编译,再解释第一个报错。文件、行号、原因都说得清,命令通路就通了。
三,给个明确的活:串口波特率从 9600 改到 115200,改完编译,全程你别碰键盘。
四,烧录、上板、看串口输出,先留给自己。这几步等工具再成熟些再说。

▲ 两条接入路径与一条硬边界(自绘示意图)
这一套搭完你会发现,嵌入式 AI 编程最花时间的不是装工具,而是写那份上下文文件。芯片型号、晶振频率、哪块代码不能动,漏一条它就多猜一次。
素材与数据来源:能力对照基于 Cursor、Claude Code、Codex CLI 各自官方文档(2026-09 检索);STM32CubeIDE headless 构建命令与 ESP-IDF 用法(idf.py build/flash/monitor、环境激活)分别见 ST 社区资料与乐鑫 ESP-IDF 编程指南;CLAUDE.md / AGENTS.md 为两款工具的官方项目记忆机制。以上为公开资料整理,非本号实测;命令参数以本机安装版本为准。文中封面配图由 AI 技术生成。