本页目录

MCU 选型与开发生态

为什么需要选型

元器件学完了,电路会分析了,但实际做东西第一步是:⁠选哪颗芯片⁠?

选错 → 性能不够/太贵/缺货/生态差 → 项目夭折


主流 MCU 家族

STM32 (意法半导体) — 工业/通用王者

产品线 (按内核):
  STM32F0/F1: Cortex-M0/M3, 入门 (48~72MHz)
  STM32F4:     Cortex-M4 + FPU + DSP, 性能级 (84~180MHz)
  STM32F7:     Cortex-M7, 高性能 (216MHz+)
  STM32G0/G4: Cortex-M0+/M4, 低功耗主流
  STM32H5/H7: Cortex-M33/M7, 旗舰 (250MHz+)
  STM32L0/L4/L5: 超低功耗
  STM32WB/WL: 无线 (BLE/LoRa)
  STM32MP1:   Cortex-A7 + M4, Linux + RTOS 双核

命名: STM32F407VGT6
      F=系列  407=型号  V=封装(100pin)  G=Flash(1MB)  T=LQFP  6=温度

生态:
  工具: STM32CubeMX (引脚配置+时钟树+代码生成)
   IDE: STM32CubeIDE (免费), Keil, IAR
   HAL/LL 库: 官方驱动
   OpenOCD + ST-Link 调试

ESP32 (乐鑫) — WiFi/BLE 性价比之王

家族:
  ESP32 (Xtensa LX6): 双核 240MHz, WiFi 4 + BLE 4.2
  ESP32-S3: 单核 Xtensa LX7, WiFi 4 + BLE 5, AI加速
  ESP32-C3: 单核 RISC-V, WiFi 4 + BLE 5, 低功耗
  ESP32-C6: RISC-V, WiFi 6 + BLE 5.3 + Thread/Zigbee
  ESP32-S2: 单核, WiFi only (无 BLE), USB OTG

特点:
  ✓ WiFi + BLE 集成 → 物联网首选
  ✓ 价格低 (ESP32-C3 模块 ~¥8)
  ✓ Arduino / ESP-IDF 双生态
  ✗ ADC 非线性的 (别用它做精密测量)
  ✗ 功耗不如 nRF 低
  ✗ 引脚少 (尤其 ESP32-C3, GPIO 不多)

选 ESP 的场景:
  - 需要 WiFi 或 BLE
  - 低成本 IoT
  - 快速原型 (Arduino 生态)
  - 智能家居 / 传感器节点

nRF52/nRF53 (Nordic) — 低功耗无线标杆

家族:
  nRF52832: Cortex-M4F, BLE 5.0 (经典)
  nRF52840: Cortex-M4F, BLE 5.0 + Thread/Zigbee + USB
  nRF52833: 52840 缩水版 (少了 USB, Flash 小)
  nRF5340: 双核 M33 (app+network), BLE 5.4 + Thread + LE Audio
  nRF52810: 入门 BLE

特点:
  ✓ 功耗极低 (BLE 连接下 μA 级)
  ✓ 射频性能好
  ✓ Zephyr RTOS 原生支持
  ✗ 贵 (比 ESP32 贵 2-3x)
  ✗ 无 WiFi (只有 BLE/Thread/Zigbee)
  ✗ 学习曲线陡 (Zephyr/nRF Connect SDK)

选 nRF 的场景:
  - 电池供电 BLE 设备 (运行数月~年)
  - 需要 Thread/Zigbee + BLE
  - 对功耗有严格要求
  - 产品级 (不是原型)

RP2040 (树莓派) — 双核 PIO 黑马

规格:
  双核 Cortex-M0+ @133MHz
  264KB SRAM (很大!)
  无内置 Flash (外挂 QSPI, 最大 16MB)
  PIO (可编程 IO): 8 个状态机, 可模拟任意协议!
  ~$1 零售价

特点:
  ✓ 极便宜
  ✓ PIO 超灵活 (VGA 输出 / DVI / 自定义协议)
  ✓ 文档和社区极好
  ✓ 大 SRAM
  ✗ 无 WiFi/BLE (需外挂)
  ✗ 无内置 Flash (增加 BOM)
  ✗ M0+ 性能一般
  ✗ 无 DAC, ADC 一般

选 RP2040 的场景:
  - 需要 I/O 灵活性 (PIO 模拟各种协议)
  - 低成本大批量
  - 教育/教学
  - 与 Raspberry Pi 生态结合

ATmega / ATtiny (Microchip) — Arduino 的魂

ATmega328P: Arduino Uno 心脏, 8bit AVR @16MHz
ATmega32U4: 带 USB, Arduino Leonardo/Micro
ATtiny85:  8pin, 极小项目

特点:
  ✓ Arduino 生态 (无数库和教程)
  ✓ 5V 容忍 (3.3V 时代的一股清流)
  ✓ 简单, 上手零门槛
  ✗ 极弱 (8bit, 16MHz, 2KB RAM)
  ✗ 贵 (对于性能而言)

现在的定位: 极简单项目 / 5V 系统 / 教学
实际项目: 基本被 ESP32/STM32/RP2040 取代

选型决策树

MCU 选型决策树:按需求逐级筛选 需要 WiFi? Yes ESP32(C3/S3 按需选) No 需要 BLE + 极致功耗? Yes nRF52840 No 高性能 / 外设丰富? Yes STM32F4 / H7 No 超低成本 + I/O 灵活? Yes RP2040 No 极致简单 / 5V / 教学? Yes ATmega328P(Arduino) No 看具体项目需求 决策顺序即优先级:先看 WiFi,再看 BLE 低功耗,再看性能与外设,再看成本与 I/O, 最后看是否图简单易用——自上而下逐级筛选,命中即止。

开发板推荐

芯片开发板价格调试器
STM32F4STM32F407G-DISC1~$25板载 ST-Link
STM32F1Blue Pill (STM32F103C8T6)~$2需要 ST-Link
STM32G0Nucleo-G0B1RE~$15板载 ST-Link
ESP32ESP32-DevKitC / NodeMCU~$5内置 USB-UART
ESP32-C3ESP32-C3-DevKitM-1~$8内置 USB-JTAG
nRF52840nRF52840-DK~$40板载 J-Link
nRF52840Seeed XIAO nRF52840~$10内置
RP2040Raspberry Pi Pico~$4需要调试器或 USB 拖放
ATmegaArduino Uno R3~$25内置 bootloader

工具链速查

芯片IDE调试烧录
STM32STM32CubeIDE / PlatformIOST-Link + OpenOCDST-Link / DFU
ESP32PlatformIO / Arduino / ESP-IDF内置 USB-JTAG (C3/S3)USB UART
nRF52VS Code + nRF ConnectJ-Link / DAP-LinkJ-Link / DFU
RP2040VS Code + Pico SDKPicoprobe / USB拖放USB 拖放
ATmegaArduino IDE / PlatformIO需要调试器USB bootloader

建议入门路线

建议入门路线:三种起点,各自的学习路径 纯小白 Arduino Uno 最快看到效果 ESP32 加 WiFi/BLE STM32 理解底层 有编程基础 ESP32 + PlatformIO STM32 HAL 理解外设寄存器 追求底层理解 STM32 Blue Pill 裸机寄存器编程 自己写 linker script 三条路线殊途同归:小白靠 Arduino 建立信心,有编程基础可直接从 ESP32 起步, 追求底层理解才需要过一遍裸机寄存器编程与 linker script。

关键词: STM32, ESP32, nRF52, RP2040, ATmega, Arduino, Cortex-M, RISC-V, 选型, 开发板