今天聊聊嵌入式AI编程工具的环境怎么搭建,通过对比Cursor、Claude Code、Codex这三个工具,怎么接入STM32CubeIDE和ESP-IDF。
安装工具是一件很快的事情,只需要几分钟。折磨人的是另一件事,你有没有给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得自己维护,老工程迁起来比较麻烦。
我自己的做法是,新工程直接上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技术生成。