每年秋招我都会收到大量嵌入式方向的问题,其中被问到最多的不是“Linux 驱动怎么学”,而是“学长,我到底要做几个项目才能拿 offer”。这个问题听起来像求一个数字,实际上背后是对项目质量、岗位匹配和简历完整度没有把握。先说结论:嵌入式秋招不是靠项目数量堆出来的,3 个左右、有层次、能讲清楚原理的项目,效果远好于 7、8 个照着开发板抄的 Demo。关键不是做了几个,而是你做的项目能不能证明你具备“看原理图、写驱动、调系统、定位问题”的基本功。
这篇文章我直接按 27 届秋招的时间线来写,覆盖三个核心问题:项目数量怎么定、项目类型怎么选、项目做到什么程度才有说服力。顺便把简历怎么写、面试中怎么讲项目、哪些坑最容易踩都梳理一遍。如果你现在还在纠结“要不要再做一个智能小车”,建议先往下看。
1. 嵌入式秋招项目数量速览
先说项目数量的总体判断。嵌入式岗位分偏硬件、偏驱动、偏应用、偏测试几个方向,不同方向对项目数量的要求不完全一样。
| 维度 | 建议 |
|---|---|
| 项目总数 | 2 到 4 个,推荐 3 个 |
| 难度梯度 | 1 个入门级 + 1 个进阶级 + 1 个综合级 |
| 技术栈覆盖 | 单片机 + RTOS / Linux + 通信协议 |
| 硬件平台 | STM32 系列、ESP32、IMX6ULL、RK 系列等 |
| 简历展现重点 | 每个项目写明主控、外设、协议、职责、量化结果 |
| 面试官最看重 | 是否理解原理,能否回答出“为什么这样设计” |
| 不建议 | 纯复制开发板例程、无任何改动、无法回答追问 |
从这些年的面试反馈看,如果你投的是嵌入式软件方向,3 个项目是比较稳的组合:一个基础的 STM32 裸机项目,一个带 RTOS 或 Linux 的项目,再一个结合无线通信或传感器数据采集的综合项目。数量太少会让人觉得实战不足,数量太多又容易分散精力,每个都讲不透。
2. 嵌入式项目类型与难度梯度
很多人不知道项目该选什么方向,到处找开源项目,看到带屏幕的就做,看到带电机就跑,最后做了一堆“点亮屏幕”“驱动电机”级别的 Demo。这种项目写进简历基本没有区分度。
嵌入式项目的选择应该按岗位方向来。下面是常见的项目类型和考察点。
| 项目类型 | 难度 | 适合方向 | 常见平台 | 核心考察点 |
|---|---|---|---|---|
| 单片机外设驱动类 | 入门 | 嵌入式软件、MCU 开发 | STM32F103/F407 | GPIO、定时器、中断、I2C/SPI/UART |
| RTOS 多任务类 | 进阶 | 嵌入式软件、物联网 | STM32 + FreeRTOS/RT-Thread | 任务调度、信号量、消息队列、内存管理 |
| Linux 应用/驱动类 | 进阶 | Linux 驱动、BSP 开发 | IMX6ULL、树莓派、RK3568 | 字符设备驱动、设备树、应用编程 |
| 无线通信类 | 进阶 | 物联网、无线传感 | ESP32、STM32 + WiFi/蓝牙/LoRa | 协议栈、组网、低功耗、数据可靠性 |
| 嵌入式 AI/视觉类 | 高级 | AIoT、边缘计算 | OpenMV、K210、Jetson Nano | 模型部署、图像处理、性能优化 |
| 工业控制类 | 高级 | 工控、汽车电子 | STM32 + CAN/Modbus | CAN 总线、协议解析、抗干扰设计 |
从热词里也能看到,很多人关注“嵌入式学习路线”,这说明大部分人在入门阶段就被“先学单片机还是先学 Linux”这个问题卡住了。其实项目选择的逻辑很简单:先拿单片机项目练手,建立中断、寄存器、通信协议这些底层概念,再往 RTOS 和 Linux 方向爬。如果直接上 Linux 驱动项目,很可能连启动流程、设备树都搞不清楚。
3. 三个不同梯度的嵌入式项目怎么选
3.1 入门项目:STM32 传感器数据采集系统
这是整个项目组合的地基。它不需要多复杂,核心目标是让你熟练掌握一款主流 MCU 的开发流程。
推荐功能组合:
- 主控:STM32F103 或 STM32F407
- 传感器:温湿度传感器(DHT11/SHT30)+ 光照传感器(BH1750)
- 显示:OLED 屏幕(I2C 接口)
- 通信:UART 打印日志或 ESP8266 上报数据
- 功能:定时采集传感器数据,显示在 OLED 上,同时通过串口输出
这个项目几乎覆盖了嵌入式开发最基础的知识点:GPIO 配置、定时器中断、I2C 读取传感器、UART 发送数据、简单的状态机设计。在面试时可以重点准备这几个问题:
- 为什么选 I2C 而不是 SPI?
- I2C 的时序是怎样的?如果传感器没应答怎么排查?
- 中断里能不能做延时?为什么?
- 功耗能不能优化?能否进入低功耗模式?
3.2 进阶项目:带 FreeRTOS 的物联网网关
有了裸机项目后,第二个项目建议上 RTOS。这个项目需要体现多任务处理和任务间通信能力。
推荐功能组合:
- 主控:ESP32 或 STM32 + ESP8266
- 系统:FreeRTOS 或 RT-Thread
- 通信:MQTT + WiFi
- 功能:采集多路传感器数据,通过 MQTT 上报到服务器;支持本地显示和远程控制
- 扩展:加入 OTA 升级功能
这个项目的难点不在功能本身,而在任务划分。你需要思考:传感器采集一个任务、WiFi 连接一个任务、MQTT 发布一个任务、本地按键响应一个任务。任务之间怎么同步?共享数据怎么保护?
面试官通常会这样追问:
- 任务优先级怎么分配?为什么?
- 两个任务同时访问一个全局变量怎么办?
- 消息队列和信号量有什么区别?
- 如果 WiFi 断线了,系统怎么处理?
- 低功耗场景下,RTOS 的任务调度有什么问题?
3.3 综合项目:嵌入式 Linux 项目
到了第三个项目,你需要证明自己不只是停留在单片机层面。嵌入式 Linux 方向是目前秋招需求量较大的方向之一,很多岗位 JD 上会写明“熟悉 Linux 环境下应用开发,了解设备树和常用驱动框架”。
如果你投 Linux 相关岗位,第三个项目尽量做一个 Linux 项目。比较稳妥的路子是在 IMX6ULL 或树莓派上完成一个带设备树、驱动模块和应用程序的小系统。
推荐功能组合:
- 平台:IMX6ULL 开发板或树莓派
- 驱动:字符设备驱动、GPIO 按键中断驱动
- 应用:C 语言编写应用层程序,通过驱动节点控制外设
- 扩展:接入 WiFi 模块、实现数据上传
这个项目不需要做得很大,但是要保证你自己完整地跑通一遍交叉编译、设备树配置、内核模块加载和应用程序调用的完整流程。面试时能够画出软件架构图,说明数据从硬件到应用层的完整流向,这个项目就算合格了。
4. 嵌入式项目从哪来:找项目的正确姿势
很多学生卡在没有项目可做,其实项目来源非常多。关键是不要直接去抄开源项目,而是理解项目需求、拆解功能、再一步步实现。
| 项目来源 | 优点 | 缺点 | 适合人群 |
|---|---|---|---|
| 开发板配套实验 | 资料全、上手快 | 雷同性高,无竞争力 | 刚入门,快速建立基础 |
| 电赛/智能车等竞赛 | 综合性强、有证书 | 时间投入大、节奏快 | 有参赛条件的学生 |
| 开源平台项目 | 技术栈新、可扩展 | 资料少、难度不可控 | 有基础、想挑战深度 |
| 实验室/导师课题 | 有实物、有数据 | 课题方向不匹配 | 能进入实验室的同学 |
| 自己定义的小产品 | 独立性强、可讲清楚 | 需要自己逐步拆解 | 有目标、自驱力强的同学 |
这里特别想说一下“自己定义小产品”这个方向。嵌入式面试里,面试官最反感的项目就是那种几百人做的同款项目,比如“基于 STM32 的智能家居”。如果你能做一个稍微独特的项目,比如“基于 ESP32 的无线传感器节点,支持太阳能供电和低功耗睡眠”,哪怕功能简单,面试官也愿意多聊几句。
5. 项目做到什么程度才有说服力
这个问题比“做几个”更重要。同样是智能家居项目,有些人只能回答“传感器数据能传到手机”,有些人却能画出一张完整的系统框图,说清楚每层协议、每个线程的职责、每个报文的格式。差距就在这里。
一个好的嵌入式项目应该具备这些特征:
- 有实物:不是纯仿真,能真实上电运行
- 有数据:测过功耗、测过通信距离、测过响应时间
- 有异常处理:WiFi 断线、传感器无响应、内存溢出怎么办
- 有优化空间:当前实现的瓶颈在哪里,改进方案是什么
- 有架构设计:不是 main 函数里堆代码,而是模块化、可扩展
在写简历时,建议用“项目背景 + 我的职责 + 技术方案 + 量化结果”的结构来描述。下面是一个示例模板:
**项目名称**:基于 FreeRTOS 的低功耗环境监测节点 **项目背景**:为了解决仓库环境监测布线困难的问题,设计一款电池供电的无线温湿度监测节点。 **技术方案**:主控采用 STM32L051,传感器通过 I2C 接口采集,数据通过 LoRa 模块上报;软件上采用 FreeRTOS 管理采集、上报、按键唤醒三个任务;空闲时进入 STOP 模式,平均功耗低于 XX mA。 **我的职责**:负责硬件选型与测试、FreeRTOS 任务规划、I2C 驱动调试、低功耗模式配置。 **量化结果**:节点在 1 分钟上报周期的条件下,电池续航达到 XX 天;通信距离实测 XX 米(可视距)。这里所有参数都要用自己真实的测试数据,不要编造。量化结果有没有?如果你没有实际测量过功耗,可以在面试前花一个下午用万用表测一下,这比背书上的数字有价值得多。
6. 嵌入式项目在简历上怎么写
很多学生项目做得不错,但简历上只写一句“开发了 xx 系统,实现 xx 功能”,信息密度太低。嵌入式岗位的简历筛选速度很快,技术关键词匹配度很重要。
简历项目描述需要包含这些要素:
- 硬件平台:明确主控型号和关键芯片型号
- 软件环境:明确开发环境、RTOS 或 Linux 版本
- 外设接口:SPI、I2C、UART、CAN、PWM 等
- 协议栈:MQTT、Modbus、CANopen、TCP/IP 等
- 个人职责:你负责的是硬件、驱动、应用还是全栈
- 结果数据:功耗、延时、吞吐量、稳定性
下面是示例:
**项目:多传感器无线数据采集网关** 硬件平台:STM32F407VE + ESP8266 + SHT30 + BH1750 软件环境:Keil MDK / STM32CubeMX / FreeRTOS / MQTT 职责描述:负责 STM32 外设初始化配置,完成 SHT30 传感器 I2C 驱动的移植与验证;使用 FreeRTOS 建立传感器采集、数据解析、MQTT 上报三个任务,通过消息队列实现任务间数据交互;完成 ESP8266 AT 指令调试与 TCP 连接管理;上位机侧使用 Python 脚本模拟 MQTT 服务器进行数据接收。 量化结果:系统连续运行 72 小时无死机,MQTT 平均上报间隔误差小于 50ms。注意“职责描述”里要体现你把整个系统打通了,而不是只说“用了 STM32 和 ESP8266”。面试官想看到的是你对整条数据链路的理解。
7. 嵌入式面试中项目怎么讲
项目经历写进简历只是第一步,真正决定你能不能拿 offer 的是面试时怎么把项目讲清楚。
建议按这个顺序组织你的项目陈述:
- 一句话说明项目做了什么、解决了什么问题。
- 两句话说清楚系统架构,画出来或者口头描述。
- 说明自己负责的技术点,重点展开最有深度的部分。
- 主动讲一个踩坑经历,比如某个外设调试了很久才定位到问题。
- 收尾时讲改进空间,比如模块换成哪款芯片可以更省功耗。
面试官追问频率最高的问题基本集中在这些方面:
| 追问方向 | 典型问题 |
|---|---|
| 原理理解 | I2C 上拉电阻怎么选?为什么 4.7k 和 10k 有区别? |
| 项目真实性 | 这一块代码是你写的吗?某个函数在哪个文件里? |
| 问题定位 | 传感器读数一直是 0,你从哪些方面排查? |
| 需求变化 | 如果客户要求增加 10 个传感器节点,系统要改什么? |
| 性能优化 | 当前程序最大瓶颈在 CPU、内存还是通信带宽? |
| 代码规范 | 这个模块为什么用结构体封装?函数指针怎么用? |
其中“问题定位”是面试官最常用的判断标准。如果你只背过例程,遇到这种问题很难回答得深入。项目里一定要有一个你自己实际解决的问题,这个问题可以小,但必须是你从现象到根因完整推过的。
比如我在实际项目中遇到过 WiFi 模块连接不稳定的问题,一开始以为是天线位置问题,后来用逻辑分析仪抓 AT 指令响应,发现是 MCU 的串口波特率误差超过 2%,导致偶尔收不到模块回复。重新校准波特率后问题解决。这种细节就是面试中很加分的“故事”。
8. 27 届秋招时间规划与项目推进节奏
很多 27 届的同学现在正处在研二下或大三下,时间看似还多,但实际很紧张。秋招一般从次年 7 月开始,也就是 2026 年 7 月前后,你现在至少需要留出 6 到 8 个月的时间来准备项目和复习基础。
| 时间节点 | 主要任务 | 目标 |
|---|---|---|
| 现在 - 第 1 个月 | 完成基础学习 | 过一遍 C 语言、数据结构、单片机基础知识 |
| 第 2 - 3 个月 | 完成第一个项目 | STM32 裸机项目,熟悉外设驱动 |
| 第 4 - 5 个月 | 完成第二个项目 | FreeRTOS 或 Linux 方向,重点积累面试问答 |
| 第 6 - 7 个月 | 完成第三个项目 | 综合项目,画架构、测数据、准备讲述逻辑 |
| 秋招前 1 个月 | 集中复习八股文 | 面试题 + 项目复盘 + 模拟面试 |
如果时间不足,三个项目做不完怎么办?宁可只做两个项目,也要把每个项目做到能应对追问的程度。两个深度项目加上一个短期小项目,也足够应付大多数嵌入式岗位的秋招。
9. 嵌入式项目中的常见误区
每年秋招都能看到一批学生因为项目问题被刷,这些误区集中体现在几个地方。
第一个误区是“项目数量越多越好”。简历上写 6 个以上项目,每一个都只有两行描述,面试官基本不会看。项目描述的深度和能当面讲清楚的细节,才是决定因素。
第二个误区是“只做应用,不看原理”。比如用了 MQTT 库,却不知道报文结构是什么样,不知道 QoS 0/1/2 的区别;用了 I2C 传感器,却不知道为什么需要上拉电阻。嵌入式面试最看重的恰恰是底层原理。
第三个误区是“项目全是从开发板例程改来的”。同一个板子的同一个例程,直接改个名字拿到简历上,面试时一问细节就露馅。如果你想用开发板例程做基础,至少要基于它做二次开发,加新的外设、改通信协议、拆任务模块,并把这些改动如实写出来。
第四个误区是“只做软件,完全不懂硬件”。嵌入式岗位和纯软件岗位最大的区别就是你要和硬件打交道。项目里哪怕只是自己焊过一个电源模块、量过一组信号波形,都可以体现你的硬件意识。
10. 嵌入式项目与秋招岗位匹配度分析
项目数量和类型敲定后,还有一个容易被忽视的问题:项目的技术栈要和岗位方向匹配。嵌入式岗位并不是只有一种,不同岗位对项目的要求差异不小。
| 岗位方向 | 项目匹配重点 | 建议项目侧重 |
|---|---|---|
| MCU 开发 | STM32、外设驱动、RTOS | 单片机裸机 + FreeRTOS 项目 |
| Linux 驱动/BSP | 设备树、内核、驱动框架 | Linux 驱动项目 + 某个子系统深挖 |
| 物联网应用 | WiFi/蓝牙/LoRa、MQTT | 无线通信类项目 + 物联网协议栈 |
| 嵌入式软件测试 | 测试用例、自动化 | 嵌入式测试框架、脚本开发项目 |
| 嵌入式 AI | 模型部署、推理优化 | 摄像头 + 边缘计算设备项目 |
如果你的目标是某个公司某个具体部门,最有效的方式是去翻这个岗位往年面经,看他们在项目中最常问什么,再针对性地补强。比如热词里出现很多“嵌入式面试八股文”,说明大家都已经发现基础问题才是面试的重头戏。项目决定了面试官问什么,八股文复习决定了你能接住多少。
11. 项目复盘与常见问题排查
最后给一套项目复盘的方法,面试前用这种方法把自己的项目全部过一遍,能覆盖绝大多数追问。
第一步:完整画出系统框图,标注主控、外设、连接方式、数据流向。 第二步:列出项目用到的每个协议,写出帧格式或报文格式。 第三步:逐个模块问自己三个问题: - 为什么选这个方案? - 如果方案不成立,有没有备选? - 这个模块的优劣势是什么? 第四步:整理 5 个以上你真实踩过的坑,格式为: - 现象是什么 - 定位过程用了什么工具 - 根因是什么 - 怎么解决的 第五步:做一次模拟面试,找同学或学长提问,不背稿,口头讲一遍。这套流程做完,你的项目就不只是简历上的一行字,而是真正能体现你技术深度的材料。嵌入式面试里,项目做到位了,八股文复习好了,offer 是水到渠成的事。
项目数量这件事本身不值得焦虑。与其纠结“要不要再凑一个项目”,不如把现有项目每一个都打磨到能当面画出架构图、能完整讲出一个踩坑故事、能回答三个以上追问的程度。这三个能力,比多做两个 Demo 有用得多。