单片机核心基础高频问题:中断、定时器、GPIO、UART、I2C、SPI

外设驱动是单片机面试的“必考项”,面试官通过高频问题考察你的硬件理解深度、配置熟练度和异常排查思维。本章提炼三大核心问答卡片,帮你建立“原理→配置→轮询/中断→优化→调试”的完整回答框架。

📌 面试权重: 中断与GPIO几乎100%出现,UART/I2C/SPI占80%以上,定时器常结合项目提问。
单片机外设面试回答框架 收到外设问题 ① 硬件原理简述 ② 初始化/配置流程 ③ 中断 vs 轮询 ④ 波特率/时序计算 ⑤ 常见异常排查 ⑥ 性能优化点 ⑦ 结合项目案例收尾 加分:寄存器级配置 加分:DMA结合使用 加分:低功耗设计

📇 问答一:中断与轮询的区别及选择

🔍 面试问题: 你在项目中如何决定使用中断还是轮询?两者的优缺点是什么?
面试官考察点是否理解实时性、CPU占用、代码复杂度之间的权衡;是否实际评估过两者对系统的影响。
回答框架
  1. 定义:中断由硬件触发,CPU暂停当前任务处理;轮询为CPU周期性查询状态。
  2. 选择依据:事件频率低/对延迟敏感 → 中断;事件频率高/可容忍延迟 → 轮询。
  3. 实际权衡:中断需保护临界区、考虑嵌套;轮询代码简单但浪费CPU。
  4. 引出项目案例:在XX项目中,因按键事件罕见且需立即响应,采用下降沿中断。
简短示例回答“若事件频率低于1kHz且需要毫秒级响应,我选中断,如UART接收。若事件频率高如ADC连续采样,我用轮询+定时器,避免中断开销。项目中曾因中断嵌套导致死锁,改用轮询+DMA后稳定性提升。”
可能追问① 中断服务函数中能调用延时吗?② 多个中断同时触发时优先级如何配置?③ 怎样测量中断延迟?
避坑提醒❌ 避免说“中断比轮询好”或“轮询都行”;必须结合具体场景。不要忘记提及临界区保护和共享变量volatile。

📇 问答二:UART通信配置与波特率误差

🔍 面试问题: 请简述UART在单片机上的配置步骤。如何计算波特率,并确保误差在允许范围内?
面试官考察点是否熟悉USART模块的寄存器级配置;是否理解波特率与时钟分频的关系;是否经历过实际调参。
回答框架
  1. 步骤:使能时钟 → 配置GPIO复用(TX/RX) → 设置波特率、数据位、停止位、校验位 → 使能中断(可选) → 发送/接收逻辑。
  2. 波特率公式:USARTDIV = PCLK / (16 × Baud)。从手册或IDE工具查表选择最近的整数分频。
  3. 误差计算:(实际波特率 − 理想波特率) / 理想波特率 ≤ 2% 通常可接受。
  4. 实际建议:若误差过大,可调整时钟源(如换晶振)或使用分数波特率发生器。
简短示例回答“比如STM32F103配置115200波特率,使用8MHz HSE,经计算USARTDIV≈4.34,取整得4,实际波特率114943,误差仅0.22%可通过。我还会用示波器测量TX引脚位宽验证。”
可能追问① 如果收发双方波特率不一致会怎样?② 9位数据模式如何配置?③ UART与RS232/RS485电平转换注意点?
避坑提醒⚠️ 不要只背公式不谈实际调错过程。常见坑:忘记配置GPIO的AF模式、时钟源错误导致分频异常、中断优先级设置不当造成丢数据。

📇 问答三:I2C与SPI选型对比及时序细节

🔍 面试问题: 项目中你如何选择I2C或SPI?请分别画一下时序图的关键信号并说明主机/从机通信过程。
面试官考察点是否掌握总线物理层、协议层区别;能否口头描述时序;是否有过同时使用两种总线的经验。
回答框架
  1. 对比:I2C两线(SCL,SDA)可多从机,速度通常≤400kbps;SPI四线(SCLK,MOSI,MISO,CS)全双工,速度可达几十MHz。
  2. 选型:从机数量多、引脚受限→I2C;大吞吐、低延迟、全双工→SPI。
  3. 时序描述:I2C起始条件SCL高时SDA下降沿;每个字节后ACK;停止条件SCL高时SDA上升沿。SPI:CS低使能,SCLK边沿采数,同时MOSI输出MISO读取。
  4. 注意:I2C需上拉电阻;SPI极性和相位可配置(CPOL/CPHA)。
简短示例回答“项目用温湿度传感器SHT30,I2C接口,引脚仅2个,且速度要求不高。而用SPI驱动OLED屏幕,需要快速刷图,SPI速率设10MHz。时序上我通过逻辑分析仪确认I2C起始/结束条件波形,调试时发现上拉电阻太小导致信号失真。”
可能追问① I2C多机冲突如何解决?② SPI如何实现多个从机且CS共用?③ 什么情况下I2C会出现总线锁死?如何恢复?
避坑提醒❌ 切忌只列举差异而不讲选择理由。一定要提上拉电阻、模式配置、实际调试工具(逻辑分析仪/示波器)。SPI的极性/相位不匹配是常见坑。
💡 本章小结: 面试官期待的不只是背课本,而是你有“现场配置”的自信和“踩坑复盘”的实战感。用上述框架回答,再结合1-2个真实外设场景,高分自然到手。