
一句话: AI 不只是写代码的工具。把它当老师用——追问每个概念直到彻底搞懂、不让它帮你写而是让它帮你解释——一天能从零吃透一个上万行的嵌入式项目。分享我的学习方法。系列文章《AI赋能嵌入式开发》 — DeepSeek看图、AI当老师、AI审查代码、省Token技巧——用AI加速嵌入式开发 含一键部署提示词 ✅ 一天学完15个源文件 双窗口分工法 7条血泪经验[TOC]适合谁读适合嵌入式开发者、单片机初学者及遇到类似问题的工程师AI 能写代码但别让它帮你写我这段时间用 AI 做嵌入式开发发现一个现象大多数人问 AI帮我写一个 I2C 从机驱动→ AI 写好了 → 贴进去能跑 → 下次还是不会写。我反过来用不让 AI 帮我写代码而是问 AI这段代码什么意思。比如看到这行pADI_CLK-CLKCON0 | BITM_CLOCK_CLKCON0_CLKMUX;不问 AI 帮我配个时钟而是问|这个操作是什么意思BITM_CLOCK_CLKCON0_CLKMUX是个什么东西为什么用|而不是AI 回答|是只把某一位设成 1其他位保持不变。会覆盖所有位可能把旁边已经配好的功能全毁掉。BITM_前缀表示这是一个位掩码。这一行懂了后面所有|和 ~的操作都不用再问了。因为原理是一样的——只改要改的位不动其他位。不跳步每个概念追到彻底明白嵌入式代码里全是这种看起来简单但不知道什么意思的东西我看到的东西我追问的问题0U数字后面加 U 是什么意思volatile uint8_t g_bTick;volatile 到底防止编译器做什么不加会怎样NVIC_EnableIRQ(22U)22 是哪来的为什么不用枚举名中断号到底是怎么对应到向量表的__disable_irq()关中断之后如果忘了开会发生什么为什么 Flash 写之前必须关中断BITM_I2C_SSTAT_START这个宏展开是什么START 事件和 REPSTART 有什么区别大多数教程会说volatile 防止编译器优化就完了。我要追问到什么叫编译器优化假如不加 volatile编译器会怎么处理能不能举个例子让我看到区别AI 给了我一个场景定时器 ISR 里g_bTick 1主循环while (g_bTick 0)等——如果不加 volatile编译器可能把g_bTick读到寄存器里反复用永远看不到 ISR 改的新值。程序死循环。懂了场景volatile 就永远不会忘了加。读写分离一个窗口学一个窗口做我是个新手刚开始看项目的时候连很多基本语法都不熟。但我发现一个好办法开两个窗口。窗口干什么窗口 1学习窗口问 AI这段代码什么意思为什么这么做——纯聊、纯学窗口 2工作窗口写代码、改代码、编译、调试为什么要分开因为混在一起会打断节奏。学的时候想要不要试一下试了发现跑不通就忘了刚才学到哪了。两个窗口把学和做隔离开学习窗口里只关注一件事搞懂概念。跟着 CPU 的执行顺序学不跟着目录学第一天打开项目16 个源文件不知道从哪看起。AI 告诉我别按目录读跟着 CPU 上电的流程走。上电 → main() → App_Init() → 15 步初始化 → 主循环于是我的学习路线变成了1. main.c — 先看懂程序从哪开始、做了什么事 2. app_state.c — 状态机是怎么跑的 3. app_monitor.c — 100ms 监控链路 4. mod_tec.c — TEC 温控怎么用状态机代替延时 5. app_cmis.c — I2C 寄存器表 Page Select 6. drv_i2c_slave.c — I2C 从机中断状态机 7. drv_pi12030.c — SPI 怎么和外设芯片通信 8. drv_timer.c — 硬件定时器怎么触发 100ms 9. drv_adc.c — 8 路模拟采集 10. drv_flash.c — Flash 双备份 CRC 校验 ...每看完一个文件AI 会告诉我这个文件调了哪个驱动下一个该看那个。顺着调用链一天之内 15 个文件全串起来了。问为什么不问是什么这是最关键的区别。问是什么问为什么ISR 里不能放延时为什么 ISR 里不能放延时放了会怎样Flash 要双备份为什么不能只存一份写一半断电了怎么办状态机用枚举为什么用枚举而不是直接写 0 1 2 3BSP 层收口引脚不用 BSP 层会怎样为什么不能直接调 DioClr问是什么得到一个规则。问为什么得到理解。理解了之后你不需要死记规则——因为你知道违反规则的后果是什么。遇到不懂的词立刻停下来以前看教程遇到不认识的缩写我习惯跳过先看完再说。现在不一样了。看到volatile、|、BITM_、REPSTART、TMPGD、APC——遇到一个陌生的立刻问 AI 这是什么意思。不攒着不跳过去。为什么因为嵌入式代码的术语是嵌套的——你不懂BITM_就看不懂| BITM_就看不懂寄存器配置就看不懂整个外设初始化。一个词卡住后面全部白读。AI 的好处是你可以无限追问不用担心问题太蠢被嘲笑。三步总结我的学习法步骤做什么例子1跟着 CPU 执行顺序读不按目录读从main()开始顺着调用链往下2每个不认识的词立刻停下来问0U、volatile、3问为什么而不是是什么为什么 ISR 里不能放延时放了会怎样AI 在这个过程里的角色不是代码生成器而是一个永远不会烦的老师——你可以问它 50 遍同一个问题从不同角度、用不同比喻直到你彻底搞懂。这就是我一天从零学到能理解整个 19 文件嵌入式项目的办法。不是什么天赋就是不跳步 追问到底 AI 当老师。实测对比传统自学: 15个文件 ≈ 2-3周 | AI辅助追问法: 15个文件 ≈ 1天有用的话点个收藏下次调试直接用。有问题欢迎评论区交流看到了都会回。下一篇含一键部署提示词——DeepSeek看图、AI当老师、AI审查代码、省Token技巧——用AI加速嵌入式开发