STM32 知识点可以按“内核与系统 → 外设 → 开发与进阶”来梳理。下面是一份常用知识清单,适合学习、复习和面试。
一、基础与选型
命名规则:如 STM32F103C8T6
F:通用/基础系列
103:子系列
C:引脚数
8:Flash 容量
T:封装
6:温度范围
系列定位:F 通用、L 低功耗、G 性价比、H 高性能、U 超低功耗安全、WB/WL 无线。
内核:Cortex-M0/M0+/M3/M4/M7/M33。
· 开发工具:STM32CubeMX、CubeIDE、Keil、IAR、ST-Link、J-Link。
二、内核与系统
Cortex-M 寄存器:R0-R12、SP、LR、PC、xPSR。
操作模式:线程模式/处理模式,特权级/非特权级。
异常与中断:NVIC、优先级分组、抢占优先级/子优先级、中断向量表。
存储映射:
Flash:0x08000000
SRAM:0x20000000
外设:0x40000000
位带操作:位带别名区,实现原子位操作。
启动流程:上电 → 取 MSP 初值 → 取复位向量 → Reset_Handler → SystemInit → main。
启动模式:BOOT0/BOOT1 决定从 Flash、System Memory 或 SRAM 启动。
三、时钟与电源
时钟源:HSI、HSE、LSI、LSE、PLL。
时钟树:SYSCLK → AHB → APB1/APB2,注意各总线最高频率。
SysTick:内核定时器,常用于延时和 RTOS 时基。
低功耗模式:Sleep、Stop、Standby;WFI/WFE 指令;RTC/外部中断唤醒。
复位:上电复位、掉电复位、看门狗复位、软件复位、备份域复位。
四、GPIO
8 种模式:输入浮空/上拉/下拉/模拟,输出推挽/开漏/复用推挽/复用开漏。
寄存器:CRL/CRH、IDR、ODR、BSRR、BRR、LCKR。
复用与重映射:AFIO、引脚复用功能、重映射。
常见应用:点灯、按键、外部中断、软件 I2C/SPI。
五、中断与 EXTI
NVIC:中断使能、挂起、优先级。
优先级分组:抢占优先级 + 子优先级。
EXTI:外部中断线、触发边沿、中断/事件模式。
中断服务函数:函数名固定,注意清除中断标志。
六、定时器
类型:基本定时器、通用定时器、高级定时器。
功能:定时中断、PWM 输出、输入捕获、输出比较、编码器接口、主从触发。
关键寄存器:PSC、ARR、CNT、CCR、CR1。
PWM 公式:
频率 = 时钟 / ((PSC+1)*(ARR+1))
占空比 = CCR / (ARR+1)
七、通信外设
USART/UART:波特率、同步/异步、中断/DMA、空闲中断接收不定长。
I2C:起始/停止、ACK、7 位/10 位地址、时钟拉伸、死锁处理。
SPI:全双工、主从模式、CPOL/CPHA、NSS。
CAN:报文、过滤器、位时序。
USB:设备/主机/OTG。
其他:I2S、SDIO、以太网。
八、模拟外设
ADC:逐次逼近、规则/注入通道、采样时间、分辨率、校准、DMA。
DAC:电压输出、三角波/噪声波。
比较器、运放、温度传感器、Vref。
九、DMA
作用:不占 CPU 搬数据,提高效率。
概念:通道、请求映射、优先级、传输方向、循环模式、FIFO、双缓冲。
常见应用:ADC 多通道采集、串口收发、SPI/I2C 大批量传输。
十、RTC 与看门狗
RTC:备份域、BKP 寄存器、闹钟、周期性唤醒、32.768kHz 晶振。
IWDG:独立看门狗,LSI 时钟,防程序跑飞。
WWDG:窗口看门狗,喂狗时间有上下限。
十一、开发与工程
开发方式:寄存器、标准库、HAL 库、LL 库。
CubeMX:图形化配置时钟、引脚、外设,生成初始化代码。
工程文件:启动文件、链接脚本、HEX/BIN、分散加载。
调试:SWD/JTAG、ST-Link、断点、单步、printf 重定向。
十二、进阶知识点
RTOS:FreeRTOS、RT-Thread;任务、队列、信号量、互斥量、事件组。
Bootloader/IAP/OTA:分区、跳转、中断向量重映射。
文件系统:FatFS。
协议栈:TCP/IP、USB、Modbus。
GUI:LVGL、emWin。
电机控制:PWM、编码器、FOC。
安全:安全启动、加密、TrustZone。
十三、常见面试题
时钟树如何配置?
中断优先级如何分组?
PWM 频率和占空比怎么算?
ADC 采样时间与转换时间?
I2C 死锁原因与解决?
串口如何接收不定长数据?
DMA 有什么作用?
低功耗模式区别?
Bootloader 如何跳转?
看门狗原理?