第三批复习总结 · 答案解析
⚠️ 做完 第三批复习总结.md 的全部 28 题后再翻开本文件对照。
每道题给答案 + 一句话解析,解析都指向对应主题页。
判断题(对/错 + 一句话理由)
- 对。数字小 = 抢占高,抢占级高的能打断正在跑的低抢占级中断(嵌套)。→
32.中断优先级
- 对。子优先级只决定同抢占级中断的排队先后,不能打断正在执行的同抢占级中断。→
32.中断优先级
- 对。DMA 由 DMA 控制器搬数据,CPU 零参与,搬完才进 1 次完成中断/回调。→
33.DMA
- 错。普通(NORMAL)才是一次性大块搬运;循环(CIRCULAR)用于永不停的持续流(ADC 连续采样/音频),CNDTR 到 0 自动重装。→
33.DMA
- 错。HSI 是内部 RC 8MHz(精度差、会漂);HSE 才是外部高速晶振(准,主源首选)。→
34.时钟树
- 错。APB1(低速外设,最高 36M)和 APB2(高速外设,最高 72M)分总线;USART1/SPI1/TIM1/ADC 挂 APB2,USART2/3、I2C 挂 APB1。→
34.时钟树
- 错。HAL 是高层抽象,函数封装调用开销大、慢;LL 直接操作寄存器、快。要可移植选 HAL,要性能选 LL。→
35.HAL-vs-LL
- 对。SPI 同步(有 SCK)、4 线(MOSI/MISO/SCK/CS)、全双工,靠 CS 片选选从机。→
36.I2C-vs-SPI-vs-UART
- 错。I2C 有 SCL 时钟线,是同步通信;无时钟线的是 UART(异步)。→
36.I2C-vs-SPI-vs-UART
- 对。UART 异步、无时钟线,双方必须预先约定相同波特率才能对上每一位。→
36.I2C-vs-SPI-vs-UART
- 错。改频率要改 PSC(预分频)或 ARR(计数上限);CCR 管的是占空比。→
37.PWM
- 对。占空比 = CCR/(ARR+1) × 100%;频率 = CK/(PSC+1)/(ARR+1)。→
37.PWM
- 错。非 0 初值存在 Flash(RW-data),上电拷贝到 RAM 运行;初值为 0/未初始化才直接放 RAM(ZI-data)。→
38.RAM-ROM-Flash
- 错。RAM 易失,掉电就丢;掉电要保留的数据放 Flash。→
38.RAM-ROM-Flash
- 错。串口乱码 = 波形/时序层问题,printf 依赖同一串口还看不到 RX 波形;该用逻辑分析仪抓波形量位宽算实际波特率。→
39.嵌入式调试方法
- 错。交叉编译产物是目标机架构(ARM)机器码,x86 PC 跑不了;本地编译的 exe 才能直接跑。→
40.交叉编译
填空题
- 高。NVIC 数字小优先(0 最高、15 最低),与 FreeRTOS 相反。→
32.中断优先级
- PLL。HSE 起振 → PLL 倍频 → SYSCLK(如 8M ×9 = 72M)。→
34.时钟树
- P2M(外设 → 内存,如串口接收/ADC 采样)。→
33.DMA
- 中断(HAL 三模式:轮询 / 中断 / DMA)。→
35.HAL-vs-LL
- CS(片选,选从机用)。→
36.I2C-vs-SPI-vs-UART
- CCR(比较值 ÷ 周期 × 100%)。→
37.PWM
- RAM(运行时的当前值在 RAM;初值才在 Flash)。→
38.RAM-ROM-Flash
- printf(阻塞 + 慢,破坏实时性可能卡死;ISR 里用断点或置标志位)。→
39.嵌入式调试方法
场景 / 代码判断
- 循环模式。ADC 连续高频采样是"永不停"的流,CNDTR 到 0 自动重装继续搬;普通模式搬完固定次数就停。→
33.DMA
- 放 Flash(或 EEPROM),掉电保持、重启还在。但不能每秒更新:Flash 写前先擦整块、写慢、寿命约 10 万次,高频写很快磨坏。→
38.RAM-ROM-Flash
- printf 打印任务状态(如
vTaskList 看各任务优先级/运行情况)。不能打断点——断点一停,tick 中断和调度器全停转,时序全乱,问题消失或变样。→ 39.嵌入式调试方法
- 交叉编译。x86 架构的电脑编译出 ARM 架构芯片能跑的机器码;芯片资源小跑不动编译器,所以用 PC 编好再烧进去。→
40.交叉编译
错题 > 3 道:回到对应主题页重学第 5 步变体验证。