1. 5套真题的整体风貌与出题逻辑拆解
先聊个比较实际的问题:硬件研发工程师的笔试,到底在考什么?
我拿到这5套小米2026秋招实习笔试题时,第一反应是——题量比想象中大,覆盖面比预期宽。但这恰恰验证了一个规律:消费电子大厂的硬件岗笔试,从来不是单纯考你背了多少公式,而是通过有限时间内的一组题目,快速判断你有没有“硬件工程师的基本盘”。
1.1 五套试卷的结构对比与难度阶梯
5套卷子的结构高度统一,但侧重点有明显差异。我把题型分布整理了一下,方便你直观感受:
| 卷次 | 选择题 | 填空题 | 简答题 | 计算题 | 设计/开放题 | 整体难度 |
|---|---|---|---|---|---|---|
| 第1套 | 15 | 8 | 4 | 2 | 1 | 中等 |
| 第2套 | 15 | 10 | 3 | 2 | 1 | 中等偏难 |
| 第3套 | 12 | 6 | 5 | 3 | 1 | 较难 |
| 第4套 | 18 | 6 | 3 | 2 | 1 | 中等 |
| 第5套 | 10 | 5 | 4 | 2 | 2 | 最难 |
看得出题量都在30题左右,时间通常是90分钟到120分钟。这个题量不算特别夸张,但前提是你对基础知识点足够熟,不需要在简单题上犹豫。
难度阶梯也很有意思:第1套明显更像“摸底卷”,大量基础题,考察模电、数电、C语言基础,目的是筛掉基本功不扎实的人;第3套和第5套则加入大量“场景化题目”,比如给一个具体的电源设计需求让你选型,或者给一段有bug的初始化代码让你找问题——这类题没有标准答案,但能看出一个人有没有真实的硬件调试经验。
1.2 出题人真正想考察的能力模型
既然考的是“硬件研发工程师”,出题逻辑必然是围绕这个岗位的日常工作拆解的。我复盘完5套卷子,总结出5个能力维度:
第一,模拟电路基本功。这不是让你去推导复杂的反馈环路稳定性,而是考察基本的器件特性、直流工作点分析、电源拓扑认知。比如LDO和DC-DC的区别、MOS管开关条件、分压电阻计算,这些是硬件工程师每天都要碰的。
第二,数字逻辑与MCU系统思维。寄存器配置、GPIO模式选择、中断机制、时钟树——不要求你背某款芯片的每个寄存器地址,但必须理解“外设初始化”背后的逻辑链条。第2套卷里有一道关于PWM频率计算的选择题,就是这个目的。
第三,接口协议与信号质量意识。UART、SPI、I2C是嵌入式硬件的老三样。但笔试不只是考“这几根线分别是什么”,而是考“波特率误差大了会怎样”“I2C上拉电阻为什么不能乱选”——这些才是工程中真正会坑到你的地方。
第四,电源与低功耗设计意识。消费电子产品对功耗极其敏感。多套卷子都出现了低功耗模式的题目,比如MCU睡眠状态下LDO静态电流的影响、电池供电系统的续航估算。这类题目考的不是计算能力,而是你有没有“功耗意识”。
第五,硬件调试思维。这一点最容易被忽视,但恰恰是区分普通学生和准工程师的分水岭。多套卷子都有“基于现象找原因”的题,比如“上电后晶振不起振,可能的原因有哪些”。严格来说,这类题没有标准答案,但答得越多越全、越有逻辑,分数越高。
所以,看到这里你应该明白了:这套笔试的核心逻辑不是“考倒你”,而是“在你身上找信号”。每道题都在回答一个问题——这个人有没有做过真实的硬件开发?是真的调过板子,还是只停留在课本理论?
2. 高频考点逐项拆解与实操要点
5套卷子刷下来,高频考点其实非常集中。我挑了几个出现频率最高的类别,逐个拆开讲,顺便把容易踩的坑也一并说了。
2.1 模拟电路与电源设计:从LDO到DC-DC的必考题
电源题在5套卷子里出现了至少7次,是所有考点中当之无愧的“题霸”。
先说说自锁电路,这个考点在第1套和第4套都出现了。什么是自锁电路?简单说,就是用一个按键控制电源通断:按一下开机,再按一下关机。它的核心结构是两个三极管或MOS管互相反馈,按键的瞬态信号被锁存成稳定的电平状态。
笔试常考的形式是“补全电路”或“分析工作原理”。如果你没实际搭过这个电路,很容易在反馈回路上卡住。其实记一条口诀就行:Q1导通让Q2导通,Q2导通反过来维持Q1导通。画图时先从按键按下瞬间开始推,然后分析松开按键后电流路径怎么保持,思路就顺了。
再一个是LDO与DC-DC的选择。参考地是安全的地,不是信号地那种概念——这里说的是电源设计里的“参考地”,我指的是设计时的电位基准。这类题常以选择题形式出现,给你一个应用场景让你选拓扑。我的建议是记住核心差异:LDO输入输出压差大时效率低,适合低压差、低噪声场景;DC-DC效率高但有开关纹波,适合压差大、功率大的场景。如果题目问“3.8V电池供电,需要3.3V/200mA,选什么”,最合理的答案是LDO,因为压差只有0.5V,LDO效率能到87%左右,而且噪声小。
计算题也常考LDO功耗:功耗 = (Vin - Vout) × Iout。比如输入5V、输出3.3V、负载200mA,功耗就是(5-3.3)×0.2 = 0.34W。题目会接着问“SOT-23封装能否承受”——这时要查热阻,SOT-23的热阻大约在150°C/W左右,温升0.34×150 = 51°C,如果环境温度40°C,结温就是91°C,还勉强在125°C以内,但余量已经不大了。这种题就是考察你的工程判断力,不是单纯套公式。
还有一个高频考点是分压电阻采样。这个太常考了,几乎也是每套卷子都有。核心陷阱在于:很多人只算分压比例,忘了ADC的输入阻抗会跟分压电阻形成二次分压。比如你用100kΩ+100kΩ把12V分压成6V给ADC,如果ADC输入阻抗只有10kΩ,实际采样到的电压会远低于6V。解决办法是:分压电阻网络的总阻抗最好是ADC输入阻抗的1/10以下,或者在ADC前加一个电压跟随器。笔试题如果给你ADC输入阻抗参数,就一定是在考这个点。
2.2 数字逻辑与MCU基础:从寄存器到外设驱动
MCU相关考点主要在几个方向:GPIO配置、时钟系统、中断机制、PWM和ADC外设。这些都是STM32、GD32等主流MCU的标配功能,笔试不会出太偏的芯片,所以只要你用过其中一款,基本都能Hold住。
GPIO的推挽、开漏、上拉下拉这几组概念,几乎每套卷子都有选择题。我建议你用“能不能主动输出高电平”来区分:推挽既能灌电流也能拉电流,所以能主动输出高和低;开漏只能在外部上拉的帮助下输出高,但好处是线与和电平转换。题目如果问“多个设备共享一条中断线,用哪种模式”,答案就是开漏加上拉。
PWM频率和占空比计算也是计算题常客。给你系统时钟、预分频系数、自动重载值,让你算PWM频率。公式是:频率 = 系统时钟 / (预分频+1) / (自动重载+1)。比如72MHz时钟,预分频71,自动重载999,输出频率就是72M / 72 / 1000 = 1kHz。难点在于你得分得清哪些寄存器会影响频率、哪些只影响占空比。很多人搞混占空比寄存器(比较值)和频率寄存器(重载值),一急就写反。
ADC采样考的更多是配置逻辑。比如分辨率12位、参考电压3.3V,最小分辨率就是3.3/4096 ≈ 0.8mV。题目如果问“采样值1000对应多少电压”,直接用比例算:3.3 × 1000 / 4096 ≈ 0.806V。但进阶题会问采样时间对结果的影响——输入阻抗越大、信号源内阻越高,需要的采样时间就越长。硬件工程师在设计前端电路时,必须考虑ADC采样电容的充电时间常数。
2.3 接口协议与信号完整性:UART、SPI、I2C与高速信号
接口协议题在5套卷子里基本没缺席过,而且出题风格明显偏向“看没看过波形”和“有没有实际调过通信”。
UART考点最经典的就是波特率误差。题目给你一个MCU的时钟频率,和一个目标波特率,让你判断用整数分频器能不能精确生成。比如8MHz时钟要给9600波特率,8M/9600 ≈ 833.33——分频器只能取整数,取833或834都会产生约0.04%的误差。这个误差对上位机的容错范围来说通常是能容忍的(一般不超过2%),但如果时钟频率更低或者波特率更高,误差就可能一发不可收拾。我见过真实产品里因为波特率误差导致丢数据的案例,所以笔试考这个是有道理的。
SPI的四种模式(CPOL/CPHA)也是高频题。死记电子表格容易忘,我建议用“相位决定在哪个边沿采样”来理解:CPHA=0表示在第一个边沿采样,CPHA=1表示在第二个边沿。再配合那个经典图——时钟空闲时是高还是低(CPOL),组合起来就是四种模式。笔试常考“从设备要求数据在上升沿有效”,问你主设备应该配哪个模式,这类题只要画个时序图就清楚了。
I2C的上拉电阻取值则是硬件设计的核心考点。阻值太小会灌入过大电流、拉低速度;阻值太大则上升沿太慢,通信速率上不去。常用4.7kΩ适用于100kHz标准模式,2.2kΩ适用于400kHz快速模式,1kΩ以下是高速模式。题目如果给了总线上挂的设备数量和总线电容,你可以直接用RC时间常数算上升时间。总线电容越大,需要的上拉电阻就越小。
2.4 PCB设计与硬件调试:从原理图到示波器实测
PCB和调试类题目,是最能看出一个人有没有实战经验的板块,也是很多只做过仿真、没动过烙铁的人失分最重的地方。
电源走线宽度是个常考细节。比如1oz铜厚、温升10°C,走线宽度要怎么算才能过1A电流?标准经验值是1A电流至少需要10mil走线宽度,如果你追求更低的压降和温升,就需要更宽的走线。题目如果给了一个电源网络“需要走2A电流但是布线空间只有15mil”,你要能判断出这很可能引发压降和过热问题,并给出加宽走线或增加铜厚的建议。
去耦电容的摆放也是经典考点。电容离芯片电源引脚越近越好,为什么?因为去耦电容的作用是为高频开关电流提供低阻抗路径,如果走线长了,寄生电感会让电容在瞬态响应时失效。手头STM32这类MCU的设计,我一般会在每个电源引脚旁边放一个100nF的MLCC,再在板子电源入口放一个10uF左右的钽电容或MLCC,这个组合应对绝大多数场景是够用的。
硬件调试流程题也频繁出现。标准流程应该是:先查电源短路 → 再量电源电压 → 查时钟信号 → 查复位时序 → 再查下载链路 → 最后查外设。很多人一上电就急着跑代码,结果程序不跑就傻眼。其实大部分问题都能按这个顺序排查出来。我举一个真实例子:某次调试板子上电后MCU完全没反应,量3.3V正常、GND正常,但芯片就是不工作。最后用示波器看NRST引脚,发现复位引脚一直被拉低——问题出在一个电容我焊错了位置,导致复位时间被无限拉长。这类经验笔试考不了,但它的前置知识(复位时序、电容充放电)是可以考的。
3. 五套真题中的代表性题目复盘与解题思路
光讲考点不够,我挑几道有代表性的真题,带你把完整解题思路走一遍。不是为了押题,而是让你感受这类题的“脑回路”应该怎么搭。
3.1 第1套:电源与低功耗设计的经典陷阱
这一题是简答题:“某可穿戴设备采用3.7V锂电池供电,系统包含MCU和蓝牙芯片。睡眠时MCU电流5uA,蓝牙关机漏电1uA,LDO静态电流实测为30uA,问续航时间?并指出系统设计中最大的问题。”
第一问其实是个陷阱。很多人直接算电池容量除以总电流,这没错,但问题是——LDO的30uA静态电流比MCU和蓝牙本身都大。如果电池容量是200mAh,总电流是5+1+30 = 36uA,理想续航200mAh/36uA ≈ 5555小时,约231天。但如果你忽略了LDO静态电流,会算出约277天,明显偏离。
第二问才是关键:最大的问题不是MCU优化不够,而是LDO选型错误。睡眠场景下占主导的不是负载电流而是静态电流,30uA的静态电流在低功耗系统里是灾难级的。正确的做法是选静态电流在1uA以下的LDO,或者用负载开关在睡眠时把LDO输出切断,让MCU直接用电池供电。这道题考察的就是“系统级功耗思维”——你优化的目标不是单个器件,而是一条完整的电流路径。
3.2 第2套:数字电路与时钟域的连环设问
这道题是一个综合题:“MCU和外设使用不同时钟域,外设通过GPIO中断向MCU发送数据。请回答:为什么需要同步?同步电路怎么搭?”
这道题至少有三个得分点。
第一,亚稳态理论。跨时钟域信号直接采样,可能落在建立保持时间窗口内,导致输出不确定,这就是亚稳态。答题时要把“违反建立保持时间”这个核心概念点出来,再解释亚稳态可能传播到后续逻辑。
第二,两级同步器。标准做法就是两个串联的D触发器。第一级可能亚稳态,但第二级采样时第一级已经稳定了,这样把亚稳态限制在单级内。简单画个两级触发器串联的框图,得分点就到了。
第三,适用条件。两级同步器只适用于单比特信号,比如中断标志位。如果跨时钟域传多比特数据总线,就必须用异步FIFO或握手协议。真题的加分项恰恰是这句——“具体问题具体分析”,你能指出两级同步器的边界条件,就说明你是真的懂,而不是背了模板。
3.3 第3套:嵌入式软件与硬件协同的交叉题
第3套卷子整体偏难,其中一道简答题很有意思:“一个机械按键接在MCU的EXTI中断引脚上,上电后发现按键偶尔触发两次甚至三次动作。请分析原因并给出至少两种解决方式。”
这道题的“坑”在于它横跨硬件和软件。很多人只从硬件角度回答——加RC滤波、加斯密特触发器——这能得分,但不完整。其实按键抖动是机械接触的物理特性,按下和释放的瞬间会有几毫秒到十几毫秒的不稳定抖动,MCU会把这当成多次触发。
完整答案应该包含三层:
- 硬件层:并联一个0.1uF电容构成RC低通滤波,截止频率设计得远低于抖动频率。或者用斯密特触发器整形,消除边沿抖动。如果PCB空间允许,100nF电容加10kΩ电阻的搭配基本够用。
- 软件层:最常见的做法是延时消抖——检测到第一次触发后,延时10-20ms再确认一次电平,如果状态不变才认为是有效触发。这个方案成本最低,但注意在延时期间别阻塞其他关键任务,最好用定时器轮询而非阻塞式delay。
- 系统层:如果按键触发的是中断服务函数,在ISR里只置标志位,不处理业务逻辑,具体动作放在主循环里做。这样即使抖动造成了多次触发,业务逻辑也不会被重复执行。
这道题能答到系统层,面试官基本就会在心里给你加分了。
3.4 第4套:接口协议与测试方法的综合题
这是一道计算+分析题:“示波器测量UART发送引脚,测得一个字节波形。第一个有效沿为下降沿,持续时间为52us,数据位为8位,校验位无,停止位1位。问波特率是多少?如果是MCU用8MHz时钟生成,分频误差多大?”
解题步骤得很清晰。
首先,UART空闲时是拉高的,发送数据时先输出一个低电平的起始位,持续时间为“1位时间”。这个位时间就是波特率的倒数。题目说第一个有效沿为下降沿,也就是起始位开始了,持续时间52us——不过这里有个细节:示波器测量的下降沿到下一个上升沿之间才是起始位所在的位时间,但题目直接给了52us作为单位时间,那就可以用了。
波特率 = 1 / 52us ≈ 19230bps。标准波特率列表里这个值最接近19200。
下一步算分频误差。8MHz / 19200 ≈ 416.67,整数分频器只能取416或417。取416时实际波特率 = 8M / 416 ≈ 19230.77bps,误差约0.16%;取417时实际波特率 ≈ 19184.65bps,误差约0.08%。两个都在±2%容限内,实际工程中都可以接受,但更优的是417因为误差更小。
再往后变高阶一点:如果MCU的工作电压从3.3V降到2.8V,内部RC振荡器频率可能偏移1%-3%,此时误差可能会接近甚至超过2%。这就是为什么很多产品在低电压场景下必须用外部晶振,而不能用内部RC振荡器跑UART。答出这一层,就能看出你对“误差预算”这个概念有过思考。
3.5 第5套:开放性设计题如何答出工程师思维
第5套有两道开放题,其中一道:“设计一个纽扣电池供电的便携温度采集节点,每10秒采集一次温度,每1分钟通过无线发送一次数据。要求续航>1年。请给出整体架构、关键器件选型和功耗估算。”
这种题没有标准答案,但有标准的答题框架。按这个顺序写,基本不会丢大分:
第一步,系统架构图。传感器 + MCU + 无线模块 + 电源管理。画清楚每个模块的供电关系和信号流向。
第二步,关键器件选型与理由。温度传感器可以选NTC(便宜但精度一般)或数字传感器如SHT30(精度高、带I2C接口、本身有休眠模式)。MCU选Cortex-M0级别就够,重点是低功耗模式丰富。无线选BLE——纽扣电池场景下BLE的功耗远低于WiFi。电源管理必须选静态电流极低的LDO或直接由电池供电。
第三步,功耗估算表。这是最核心的部分。假设SHT30测量一次耗电约3mA×10ms,MCU睡眠电流2uA,BLE发送一次平均电流10mA持续10ms。那么:
- 每10秒一次采集:每天采集8640次,每次平均功耗3mA×0.01s = 0.03mAs,总约259.2mAs/天。
- 每1分钟发送一次:每天1440次,每次平均10mA×0.01s = 0.1mAs,总约144mAs/天。
- 睡眠功耗:MCU 2uA + 传感器待机1uA + BLE待机3uA = 6uA × 86400s = 518.4mAs/天。
- 合计约921.6mAs/天,换算成平均电流约10.7uA。CR2032电池容量约220mAh,理想续航约2.3万小时,超过2年——满足1年要求。
第四步,风险分析与对策。温度传感器在持续采样时可能因自热产生误差;电池在低温环境容量会下降;无线通信可能受到干扰导致重传,重传会额外增加功耗。针对每个风险给出对策,比如采样间隔加大、采用低功耗协议、增加发射功率自适应等。
这道题如果你能写到第四步,基本上就是奔着“优秀”去的。因为绝大多数考生能写完整三步就不错了,而“风险分析”才是资深工程师和应届生最明显的思维差距。
4. 实战备考策略与避坑指南
最后聊点实际的——这套题到底怎么准备才高效?刷题有用但有限,更重要的是形成工程思维。以下是几个方向,我完全是按踩坑经验写的,希望能帮你少走弯路。
4.1 时间分配:90分钟试卷的答题顺序
我的建议是先快速浏览全卷,用5分钟标记出所有“一眼会”和“完全没思路”的题,先做会做的,再啃中等难度的,最后死磕难题。这个策略适合所有限时笔试,尤其是选择题占比高的卷子。
90分钟的卷子,我建议时间分配大致这样:选择+填空30分钟(多为送分题,别恋战);简答+计算40分钟(重点得分区,写清楚解题步骤,按步给分);开放题15分钟(搭好框架,列要点,不追求完美);最后5分钟检查一遍有没有漏填。
4.2 高频失分点盘点
我整理了5套卷子中考生最容易失分的几类问题:
| 失分点 | 具体表现 | 原因分析 | 解决对策 |
|---|---|---|---|
| 忽略LDO静态电流 | 低功耗计算只用负载电流 | 没有形成“系统总电流”的概念 | 做题时把每路电流都列出来,包括静态电流 |
| 忘算ADC输入阻抗影响 | 分压电阻一味取大 | 只列分压公式,没考虑负载效应 | 牢记“分压网络阻抗要远小于后级输入阻抗” |
| GPIO模式选错 | 需要外部上拉的场景用了推挽 | 对开漏与推挽的本质没分清楚 | 用“能否主动输出高”来判断 |
| 跨时钟域处理方法单一 | 所有场景都答两级同步器 | 只背了模板没有理解适用边界 | 记住单比特用同步器、多比特用FIFO |
| 计算题不带单位 | 功耗、频率结果数值对但单位错 | 粗心 + 缺乏工程书写习惯 | 每次计算最后一列必须带着单位 |
4.3 笔试之后的面试延伸准备
笔试不只是笔试。很多面试官会拿着你的笔试卷子追问——这几乎是硬核技术岗的标配操作了。你笔试里怎么答的,面试时会被深挖。所以考完之后千万别把题扔了,对着自己做错的题、没写完整的题,逐题补充弄懂,面试被问到的时候——哪怕答得没那么好,至少要让对方感觉到“这个人虽然当时不会,但之后补齐了”。这本身就是面试官想看到的工程师特质。
笔试里没接触过的知识点,加上热词里提到的哪些方向?说实话,硬件领域的技术栈更新比其他岗位慢很多,核心还是那些东西:模电、数电、MCU、接口、调试。但行业确实在变——硬件工程师的知识储备要跟上,基本盘越稳,未来越有底气。
关于那套题我最后的体会是:小米的笔试题不算刁钻,但覆盖面广,且明显偏向“你有真实开发经验”这个信号。参加过真实项目的同学非常占便宜,因为很多坑只有动过烙铁、调过板子、被示波器折磨过才答得出来。所以,如果你还有时间,最划算的投资就是:拿一块开发板,亲手点亮一颗LED,写一个PWM呼吸灯,再把板子的电源纹波用示波器量一遍。这些事看着简单,但做完之后,你对硬件工程师这个岗位的理解会完全不一样。