上期我们介绍了如何在VSCode开发STM32的经验贴,在文末说到我们可以在VSCode中直接安装Claude Code插件来使用VSCode。
事情是这样的。之前我买了一个WS2812彩灯模组就是那种一颗一颗RGB LED串在一起、用一根数据线就能控制几百颗灯珠颜色和亮度的小玩意儿。
以前做这种东西,我得老老实实打开CubeMX配引脚,,算好时序再对着HAL库一个一个函数地写,这一套下来,没个半天搞不定。那我就想试试一件事,完全不动手,全靠AI能不能把这块WS2812驱动起来?
不是我懒。好吧,就是我懒。但更重要的是,我想知道现在的AI到底能不能搞定嵌入式开发这种硬核场景。毕竟写个网页、搞个Python脚本那不叫真本事,GPIO翻转、DMA时序、寄存器操作——这些东西才见真章。
1、VSCode使用
我先在CubeMX里创建了一个空的STM32F103C8T6工程,Toolchain选CMake,其他什么都没配。然后在VSCode里打开,安装的STM32Cube插件自动识别到了工程。一切就绪,我把Claude Code叫了出来。
使用VSCode打开文件夹,STM32Cube插件成功识别到这是一个STM32Cube项目。
第一句话我是这么说的:「帮我配置这个工程的CubeMX,我要驱动一个WS2812灯带,灯带接在 PB9 上。」然后我就看着它自己在那工作了。
Claude Code读了一遍 .ioc 文件,推荐了用位带操作加DWT周期计数器来做WS2812的精确时序。
打开CubeMX一看,PB9确实被设置成推挽输出了,代码也自动生成了。但问题马上就来了:系统并没有设置Debug模式,这会导致烧录完第一遍程序后,系统的Debug接口锁死不允许二次下载。
并且编译过程中发现函数找不到定义,这里是因为Claude Code没有更新CMakeList,编译器找不到新的文件。
编译并没有报错,并且灯已经成功点亮(不过其实指导这个情况是时序错误),不过并不像Claude Code所描述的彩虹状更新,而且Claude Code并没有修改Debug配置,还要解决芯片死锁问题。
但说实话,这两个问题,换成新手来踩,也是大概率会犯的。Debug引脚忘记配置?CMake没更新源文件?这个我倒是不怎么犯了,但我见过太多人因为这玩意报一屏幕的undefined reference。
2、Bug修复
为了模拟新手的使用场景于是这里使用小白的口吻向Claude Code提出要求,查看其是否能够发现要配置Debug引脚的问题以及修复时序问题。
效果非常的惊艳,仅提问一次,Claude Code就完美的解决了这两个问题。这就是AI编程最让我上头的地方。它不是在帮你执行命令,它是在理解你的问题,然后自己去找到根因。
接着我们向Claude Code提出更加复杂的要求,彩条动态显示,以长度为5的两条前行。
Claude Code又翻车了。灯全亮了,但不是动态的,所有颜色糊在一起,效果比第一次还糟糕,我就又把它犯的错总结了一下,让它自己去改。这次它整了个大的。
然后又经过了一大堆的分析,大体就是DWT效率太差了,系统重构了汇编级延时函数.........效果非常的惊艳呀!
我当时看着终端里那一行 `__asm__` 开头的东西,一时间无语凝噎。
我靠,汇编延时都已经上来了!!!这已经不是写代码了,这是在替你做技术决策——它判断当前方案有问题,自己评估了替代方案,然后选了最优解去实现。虽然中间踩了坑,虽然还需要人去引导,但你仔细想想,这不就是一个初级工程师的工作模式吗?
总计
那两条彩条在灯带上流动起来的时候,我真的被震撼到了。不是因为它终于能跑了——而是我突然意识到一件事:嵌入式开发的门槛,可能真的要变了。
以前做嵌入式,最劝退的是什么?不是电路看不懂,不是C语言学不会,是环境配不通。MDK的license到期了不知道怎么续,GCC的链接脚本写错了满屏undefined reference,调试器驱动装不上,每一个坑都能卡你好几天。
而现在,你只需要一个VSCode、一个CubeMX、一个Claude Code,你就能用自然语言跟它对话,让它帮你配寄存器、改CMake、写驱动。它当然会犯错,有时候还会犯很蠢的错。但你呢?你不会犯错吗?
说真的,我做了这么多年嵌入式,我到现在有时候还会忘记开 Debug 引脚。
所以这次实验的结论,不是什么「AI要替代嵌入式工程师了」,而是我们手里的工具,真的不一样了。以前你一个人单打独斗,遇到问题只能翻CSDN、翻论坛、翻那些跟你遇到的问题只有80%相似的帖子。现在你有一个24小时不睡觉的助手,帮你算时序,帮你写汇编,甚至帮你重构你写的屎山代码。
回到标题那个问题:全靠 AI 也能开发 STM32?目前的答案是不能,你至少需要一个知道什么时候它在胡说八道的人坐在旁边。但问题是——坐在旁边的那个人,门槛比以前低太多了。不需要十年经验,不需要精通汇编,不需要被寄存器咬过才知道疼。你只需要保持好奇,愿意折腾,愿意在它翻车的时候不放弃。这就跟我们学单片机的第一天一样——灯亮了,就是一切。那句话怎么说的来着。不是 AI 取代你,是用 AI 的人取代不用 AI 的人。这句话在嵌入式领域,也开始应验了。
9161