STM32 是意法半导体(STMicroelectronics,ST)基于 ARM Cortex-M 内核推出的 32 位微控制器(MCU)家族,是当前嵌入式领域应用最广、生态最成熟的 MCU 之一。它以「内核 + 丰富外设 + 完善工具链」著称,从学生实验到工业量产都能覆盖。
一句话定位
STM32 = 一颗 ARM Cortex-M 核心 + 一堆可配置外设(GPIO/UART/SPI/I2C/ADC/TIM…)+ ST 的 HAL 库与 CubeMX 工具。
知识体系
flowchart TD A[STM32] --> B[内核与系列] A --> C[外设资源] A --> D[开发方式] A --> E[时钟与启动] B --> B1["Cortex-M0 / M0+ 入门"] B --> B2["Cortex-M3 / M4 主流"] B --> B3["Cortex-M7 高性能"] B --> B4["F1 / F4 / H7 / L 低功耗 等系列"] C --> C1["GPIO 通用输入输出"] C --> C2["UART 串口 / SPI / I2C"] C --> C3["TIM 定时器与 PWM"] C --> C4["ADC / DAC 模拟量"] C --> C5["NVIC 中断控制器"] C --> C6["DMA 直接内存访问"] D --> D1["寄存器直接编程"] D --> D2["标准外设库 SPL"] D --> D3["HAL 库 + CubeMX 图形化配置"] D --> D4["LL 库 轻量高效"] E --> E1["HSE / HSI 时钟树"] E --> E2["PLL 倍频"] E --> E3["启动文件与向量表"]
核心要点
- 内核与外设分离:内核由 ARM 授权(IP 厂商),外设由 ST 设计(IC 厂商),这也是 单片机介绍 中讲的 IP 模式。
- GPIO 八种模式:输入(浮空/上拉/下拉/模拟)、输出(推挽/开漏)、复用、模拟,配置错了现象就不对。
- 时钟树:STM32 上电默认用内部高速时钟(HSI),工程里几乎都要配置 PLL 把主频拉到最高,忘记开外设时钟是新手最常见错误。
- 中断与 NVIC:Cortex-M 的嵌套向量中断控制器支持优先级抢占,是实时响应外设的关键。
- DMA:让外设和内存直接搬数据,不占用 CPU,串口高速收发、ADC 连续采样必备。
- HAL + CubeMX:图形化生成初始化代码,大幅降低门槛;想抠性能再回到寄存器或 LL 库。
学习路径
- GPIO 点灯与按键 → 2. 中断与 EXTI → 3. 定时器与 PWM → 4. 串口 UART 通信 → 5. ADC 采集 → 6. I2C/SPI 驱动传感器与屏幕 → 7. DMA → 8. RTOS 多任务。