乐于分享
好东西不私藏

AI时代,软件如何入门?如何让AI成为队友?提升工作效率?

AI时代,软件如何入门?如何让AI成为队友?提升工作效率?
很多刚入行的朋友问我:“嵌入式软件到底怎么学?感觉东西又多又杂,AI又天天吹得神乎其神,我该信谁?”
我的回答很简单:先把基础打牢,再把基础打得更牢,最后学会用嘴说清楚需求——这时候AI就是你最好的搭档
下面这三步,是我给所有初级嵌入式软件工程师的建议。

第一步:抓基础知识——别急着跑,先学会走

嵌入式软件的基础,说白了就几样东西,但每一样都得亲手写过、调过、踩过坑:
  1. GPIO:推挽输出、开漏输出、上拉下拉、电流驱动能力……不只是点灯,还要知道为什么有的引脚不能直接驱动继电器。
  2. 中断:外部中断、定时器中断、优先级分组、中断嵌套、临界区保护。写一个按键中断容易,但多个中断同时触发时系统不乱,才叫真懂。
  3. 定时器:基本定时、PWM、输入捕获、输出比较。拿来做延时简单,但用来做精确的脉冲计数或电机控制,就需要理解预分频和自动重装载的关系。
  4. ADC:分辨率、采样率、参考电压、连续/单次转换、DMA搬运。测个电位器不难,但要稳定采集工频信号而不混叠,就得懂Nyquist定理。
  5. 通信协议:UART、I2C、SPI、CAN。能调通是第一步,能分析波形、处理总线竞争、应对噪声干扰,才算真正掌握。
这个阶段,不要依赖AI替你写代码。 自己一行一行敲,看手册、查寄存器、用示波器或者逻辑分析仪验证。只有亲手经历过“为什么这里要加一个延时”“为什么中断里不能调用printf”,你才会形成肌肉记忆。
推荐做法:找一块STM32或ESP32开发板,把上面每个外设都单独写一遍裸机程序(不用RTOS),然后用HAL库或LL库再写一遍。对比差异,理解封装层做了什么。

第二步:狠抓基础——把零散的知识织成网

基础知识点学完了,你会发现它们之间是相互关联的。这一步的目标是:打通任督二脉,让知识形成体系。
举个例子:你要实现一个“按键长按3秒进入配置模式,短按切换显示页面”的功能。
  1. 涉及GPIO(读按键电平)
  2. 涉及中断(边沿触发检测按下/释放)
  3. 涉及定时器(计时3秒)
  4. 涉及状态机(空闲、短按确认、长按等待、长按生效)
  5. 可能还涉及低功耗管理(待机时如何唤醒)
如果你只是孤立地学过每个外设,遇到这种组合需求就会手忙脚乱。而当你把这些串起来,你就开始理解“嵌入式系统的本质是资源受限下的实时响应”。
这个阶段,AI可以帮你做什么?
它可以帮你生成状态机的骨架代码,或者帮你检查定时器配置是否有溢出风险。但前提是——你必须能清晰地告诉AI:“我需要一个有限状态机,有四个状态,转换条件是……” 如果你连状态机是什么都说不清,AI给你的代码你只会复制粘贴,出了问题完全不知道怎么改。
推荐做法:尝试用RTOS(FreeRTOS或RT-Thread)重新实现之前裸机写的项目。你会接触到任务调度、信号量、消息队列、互斥锁——这些都是嵌入式软件工程师的“内功”。

第三步:深入理解需求,精准描述问题——这才是AI时代的核心竞争力

很多人以为AI时代最重要的是“会写Prompt”,其实不然。
最重要的是“会分析问题、拆解需求、并用结构化语言表达出来”。
嵌入式开发中,绝大多数问题都不是“代码不会写”,而是“需求没想清楚”或“边界条件没定义好”。
举个真实的例子:
你接到一个任务:用ADC采集NTC热敏电阻的温度,通过UART每100ms上报一次,温度超过80℃时报警。
如果你直接丢给AI:“帮我写个NTC测温程序”,AI大概率给你一个通用方案,但你可能面临这些问题:
  • NTC型号不同,B值不同,分压电阻不同,计算公式不一样
  • 是否需要滤波?滑动平均还是中值滤波?
  • 报警阈值有没有回差(hysteresis)?防止在边界频繁抖动
  • UART波特率多少?数据格式是什么?需不需要校验?
  • MCU主频多少?ADC时钟配置是否会导致采样时间不足?
只有你把这些问题都想清楚了,你才能写出高质量的Prompt。 比如:

“STM32F103C8T6,PA0接NTC(MF52-103,B=3950)与10kΩ电阻分压至GND,ADC1_IN0,12位分辨率,连续转换模式,DMA搬运。采用查表法将ADC值转换为温度,精度±1℃。每100ms通过USART1(115200,8N1)发送格式化字符串‘T:xx.xC’。温度超过80℃时,PB12输出高电平驱动蜂鸣器,并加入2℃回差防止抖动。请生成完整的Keil工程代码,包含初始化、主循环和中断处理。”

看到差别了吗?描述越精确,AI产出的质量越高,你后期需要修改的工作量越小。
这个阶段,AI是你的“资深同事”:
  • 它可以帮你生成代码模板
  • 它可以帮你检查逻辑遗漏(比如中断优先级设置是否合理)
  • 它可以帮你生成测试用例(比如模拟不同温度下的ADC值)
  • 它甚至可以帮你写单元测试
但这一切的前提是——你能说清楚你到底要什么。
总结一下嵌入式软件入门的路线图
最后一句真心话:
AI可以帮你写一万行代码,但无法替你去理解“为什么这个中断不能在临界区里触发”。那些基础,那些对需求的深刻洞察,那些清晰表达的能力——才是你作为嵌入式软件工程师不可替代的价值。
先把基础砸实,再把沟通练好,你会发现AI不仅不是威胁,反而是你职业生涯中最强的加速器。
共勉。🚀