STM32智能小车开发:AI辅助编程的能力边界在哪?

AI降低了嵌入式开发入门门槛,但硬件反馈缺失使其只能辅助而非替代工程师
清华硕士史松推出STM32智能小车AI辅助速成课程,引发对AI在嵌入式开发中能力边界的讨论。AI能有效辅助代码解读、概念答疑和代码生成,大幅降低学习门槛,但受限于三大瓶颈:需精准问题描述、缺乏工程全局认知、无法获取硬件物理反馈。当前最佳实践是人机协作——人负责架构设计与硬件调试,AI负责代码生成与知识查询。
课程背景:当AI走进嵌入式开发课堂
近日,清华大学生物医学工程硕士史松在B站推出了一套名为「STM32 HAL库+AI智能小车」的速成课程,基于STM32F103C8T6芯片和HAL库进行开发,核心亮点在于利用AI辅助解读每段代码的含义,目标是帮助学习者在三小时内完成通关。
STM32F103C8T6是意法半导体(STMicroelectronics)推出的一款基于ARM Cortex-M3内核的32位微控制器,主频72MHz,内置64KB Flash和20KB SRAM,因其性价比极高、外设丰富(包括定时器、ADC、USART、SPI、I2C等),被广泛用于嵌入式教学和中小型项目开发,在国内开发者社区中被昵称为"蓝色药丸"(Blue Pill)。HAL库(Hardware Abstraction Layer,硬件抽象层)是ST官方推出的标准化驱动库,相比早期的标准外设库,HAL库通过更高层次的API封装屏蔽了底层寄存器操作的复杂性,并配合STM32CubeMX图形化配置工具,使开发者能够通过可视化界面完成引脚配置、时钟树设置和中间件集成,大幅缩短了项目初始化的时间。这种"配置生成+库函数调用"的开发模式,正是课程能够承诺"三小时通关"的技术基础。
这套课程的出现并非偶然。从去年下半年开始,就有大量粉丝在评论区催更,询问避障代码怎么写、用了哪些传感器和技术等问题。经过近一年的准备,课程终于在今年五月正式上线。

这套课程引发了一个值得深入探讨的话题:在AI辅助编程能力日益强大的今天,嵌入式开发的门槛到底降低了多少?AI能否独立完成一个STM32智能小车项目?
STM32智能小车的真实难度:会者不难,难者不会
入门门槛其实没那么高
关于智能小车的难度,史松给出了一个相当客观的评价:对于一般的大学生甚至高中生来说,这个项目并不算特别难。很多人在大一时就完成了智能小车的制作,原因很简单——大一时间充裕。而高中生之所以不做,不是因为做不了,而是忙于备考。
在基础知识方面,学习者只需要懂一点C语言,甚至不需要学得太深,知道基本语法和常用关键词的用法就够了。如果完全不懂,多看代码、多问AI,也能逐渐上手。相关专业主要集中在电气类和自动化控制方向,学术上称之为嵌入式软件开发。嵌入式软件开发是一个横跨电子工程、计算机科学和自动控制的交叉学科领域。与通用计算机上的软件开发不同,嵌入式开发面向的是资源受限的专用计算平台——处理器主频通常在几十到几百MHz,内存以KB为单位计算,且需要直接与传感器、执行器等物理设备交互。在高校课程体系中,它通常出现在电气工程、自动化、电子信息工程和计算机科学等专业的高年级课程中,涉及微处理器原理、数字电路、C语言编程、实时操作系统(RTOS)等多门先修课程的知识融合。
预制菜与大厨现炒:两种截然不同的开发方式
评论区经常有人说"小学生都能做",质疑这类项目的意义。对此,史松用了一个精妙的比喻:这就相当于预制菜和大厨现炒的区别。
小学生做智能小车,基本上就是"预制菜"模式——代码给他,下载进去,车就能跑,编程也多是图形化编程。这些教育平台(如Arduino或micro:bit)配合Scratch、Blockly等图形化编程工具,通过将复杂的底层操作封装为可拖拽的积木块,极大降低了使用门槛,但同时也隐藏了中断处理、寄存器配置、时序控制等关键的底层机制。而真正有技术含量的嵌入式开发,涉及的是从零开始用HAL库编写代码、逐步调试和持续优化。基于STM32 HAL库的专业开发,开发者需要理解GPIO(通用输入输出)的工作模式、PWM(脉冲宽度调制)信号的占空比与电机转速的关系、定时器中断的优先级配置、ADC采样精度与转换时间的权衡等底层概念。这种差异类似于使用Excel公式做数据分析与用Python编写机器学习算法之间的距离——前者是工具使用,后者是工程实践。

评论区一位专业粉丝的点评非常到位:车子能够停得稳、走得直、转向角度控制精准、电机驱动和保护到位、距离检测参数与车速匹配、功耗和性能的平衡——能做好这些已经非常了不起了。 从这几个专业维度就能看出,一个看似简单的智能小车背后,隐藏着大量的工程细节。
具体来说,这些维度每一项都对应着真实的工程挑战:"停得稳"涉及PID控制算法(比例-积分-微分控制)的参数整定,需要在响应速度和超调量之间找到平衡;"走得直"需要对左右两侧电机进行差速补偿,因为即使是同型号电机也存在制造公差导致的转速差异;"转向角度控制精准"依赖编码器反馈的闭环控制或精确的PWM占空比调节;"电机驱动和保护"涉及H桥驱动电路(如L298N或TB6612FNG)的选型和过流保护设计;"距离检测参数与车速匹配"则需要根据超声波传感器(如HC-SR04)的测量周期和有效量程来动态调整制动距离;"功耗和性能平衡"在电池供电的移动平台上尤为关键,涉及MCU低功耗模式的切换策略和电源管理。
这也回应了那些"两小时就能搞定"的言论。正如史松的类比:高考如果有答案,抄一两个小时就能考满分上清华;但没有答案,九年义务教育加三年高中也未必考得上。关键在于你从什么角度审视这个问题。
AI辅助嵌入式开发的真实能力边界
AI能做什么:大幅降低学习门槛
课程的一大特色是用AI来辅助代码解读,这反映了当前AI在嵌入式领域最实际的应用场景。AI确实已经大幅降低了STM32开发的学习门槛:
- 代码解读:将一段HAL库代码丢给AI,它能清晰地解释每行代码的功能和底层逻辑
- 概念答疑:遇到不懂的嵌入式概念,AI可以快速给出通俗易懂的解释
- 代码生成:描述清楚需求后,AI能生成基础的功能代码框架

AI做不到什么:硬件反馈的鸿沟无法跨越
然而,史松也非常清醒地指出了AI在嵌入式开发领域的三大局限性:
第一,AI需要精准的问题描述。 比如要点亮STM32芯片上的LED灯,引脚是PC13,你必须告诉AI这个灯接在PC13引脚,而且要说明是正极连接还是负极连接。这些关键信息——正负极、引脚号——都是你需要具备的基础知识。你不可能一点硬件知识都不具备就去提问。
第二,AI缺乏工程全局认知。 当工程越做越大,各个功能模块之间会产生相互影响。好的嵌入式代码需要在实现某一个功能的同时不影响其他功能,这要求开发者具备全局视野。而AI写出的代码很可能只关注当前功能,忽略了对其他模块的影响。
第三,硬件反馈的缺失是最根本的瓶颈。 这一点尤为关键。与纯软件开发不同,嵌入式开发涉及与物理硬件的交互。即便是AI Agent,在写完点亮LED的代码后,它自己无法得到"灯是否亮了"的反馈——这个反馈只能由人来提供。这从根本上限制了AI在嵌入式领域的自主能力。

在纯软件开发领域,AI Agent(如Devin、OpenHands等)已经能够实现"编写代码→执行运行→捕获错误→修复代码"的自主迭代闭环,因为软件的运行结果可以通过终端输出、日志文件、单元测试结果等数字化方式直接反馈给AI。然而在嵌入式开发中,代码的最终效果体现在物理世界——LED是否点亮、电机是否转动、传感器读数是否准确——这些信息存在于数字世界之外。即使通过JTAG/SWD调试接口可以读取寄存器状态,但物理层面的验证(如电机实际转速是否与预期一致、传感器安装角度是否导致盲区)仍然需要人类观察和判断。这种"数字-物理鸿沟"(Cyber-Physical Gap)是当前AI在嵌入式、机器人、IoT等领域面临的共性挑战。人成为了不可替代的"传感器",负责将物理世界的结果反馈给AI。
嵌入式开发中AI的当前定位:辅助而非替代
人机协作才是最佳实践
史松最终给出了一个非常务实的结论:就目前来看,AI在嵌入式软件开发领域的角色不是替代工程师,而是辅助工程师。
这个判断与整个行业的观察高度一致。AI在嵌入式开发中的最佳协作模式是:
- 人负责架构设计和全局把控——决定用什么芯片、什么传感器、模块间如何协作
- AI负责代码生成和知识查询——快速生成HAL库功能代码、解释技术概念
- 人负责硬件调试和反馈验证——将物理世界的结果告诉AI,指导下一步优化
这种人机协作模式,恰恰是这套课程的核心理念:代码已经写好,用AI来辅助理解,用人的实践来验证和掌握。
未来展望:闭环何时打通?
随着技术发展,AI或许有一天能够通过摄像头、传感器等方式直接获取硬件反馈,从而实现嵌入式开发的全流程自动化。业界目前正在探索几条可能的技术路径:一是硬件在环仿真(Hardware-in-the-Loop, HIL),通过高精度仿真环境模拟物理硬件的行为,让AI在虚拟环境中完成调试;二是数字孪生(Digital Twin)技术,为物理设备建立实时同步的数字模型,AI通过操作数字孪生间接获取硬件反馈;三是借助机器视觉和多模态感知,让AI Agent通过摄像头观察硬件状态(如LED是否亮起、小车是否移动)来关闭反馈回路。目前,Nvidia的Isaac Sim、MATLAB/Simulink的嵌入式代码生成工具链等已经在部分场景中实现了仿真闭环,但距离通用化的全自动嵌入式开发仍有相当距离。
但在那一天到来之前,掌握STM32等嵌入式开发的基础知识、理解硬件与软件的交互逻辑,仍然是每一个工程师不可或缺的核心竞争力。
AI降低了嵌入式开发的入门门槛,但并没有降低精通的天花板。 对于想要学习智能小车开发的同学来说,现在正是借助AI快速入门、同时打好硬件基础的最佳时机。
核心要点
- AI在嵌入式开发中的角色是辅助而非替代,硬件反馈的缺失是AI Agent在该领域的根本瓶颈
- 智能小车项目入门门槛不高,但要做好停得稳、走得直、参数匹配等细节需要深厚的工程功底
- 使用AI辅助开发需要具备基础知识才能精准提问,AI缺乏对工程全局的认知容易产生模块间冲突
- 当前最佳实践是人负责架构设计和硬件调试,AI负责代码生成和知识解读的协作模式
- AI降低了嵌入式开发的学习门槛,但并未降低精通的天花板,基础知识仍不可或缺
相关推荐
教程攻略Cursor+Codex双IDE协同:开源项目二开实战方法论
基于实战经验总结的开源项目二次开发完整方法论,详解Cursor+Codex双IDE协同工作流,涵盖二开七环节、MVP验证、AI读源码技巧,帮助开发者三天跑通项目、两周完成业务集成。
教程攻略Cursor多Agent实战:50分钟搭建Next.js全栈博客
使用Cursor IDE多Agent协作模式,50分钟内从零搭建全栈博客。涵盖Next.js、Clerk认证、Supabase数据库集成,详解4个AI Agent分阶段开发流程与关键避坑经验。
教程攻略从零搭建AI软件工厂:Cursor工程师的多Agent协作实战经验
Cursor工程师Eric分享AI软件工厂构建实战:从自动化六层级、护栏设计、并行Agent管理到规模化扩展,详解如何用多Agent协作实现7×24小时高效软件开发。