STM32
Introduction to STM32
STM32 is a family of 32-bit microcontrollers from STMicroelectronics, based on ARM Cortex-M cores. They are widely used in industrial, automotive, and IoT applications — and are a core platform in the Analog Data curriculum.
What is STM32?
STM32 devices span a wide range of performance and power profiles:
| Series | Core | Speed | Use Case |
|---|---|---|---|
| STM32F0 / F1 | Cortex-M0/M3 | Up to 72 MHz | Entry-level, education |
| STM32F4 | Cortex-M4F | Up to 180 MHz | General purpose, DSP |
| STM32H7 | Cortex-M7 | Up to 550 MHz | High performance |
| STM32L0 / L4 | Cortex-M0+/M4 | Varies | Ultra-low power |
| STM32U5 | Cortex-M33 | Up to 160 MHz | Security + low power |
| STM32G0 | Cortex-M0+ | Up to 64 MHz | Cost-optimized |
For Analog Data workshops, we primarily use:
- STM32F103C8T6 ("Blue Pill") — a low-cost, widely available board
- NUCLEO-F446RE — the official ST dev board with built-in ST-LINK
Recommended Toolchain: STM32CubeIDE
STM32CubeIDE is ST's official all-in-one development environment. It bundles:
| Component | Description |
|---|---|
| Eclipse-based IDE | Code editor with project management |
| GCC Arm Toolchain | Compiler (arm-none-eabi-gcc) |
| STM32CubeMX | Graphical pin/clock/peripheral configurator |
| ST-LINK GDB Server | Hardware debugger interface |
| STM32CubeProgrammer | Standalone flash/erase tool |
It is free, cross-platform, and requires no separate component downloads.
ST Development Boards
NUCLEO Boards (Recommended for Beginners)
NUCLEO boards include a built-in ST-LINK/V3 debugger/programmer. Just connect via USB — no separate programmer needed.
Common NUCLEO boards:
- NUCLEO-F446RE — STM32F446, 180 MHz, 512KB Flash (used in Analog Data workshops)
- NUCLEO-F401RE — STM32F401, 84 MHz, 512KB Flash
- NUCLEO-L476RG — STM32L476, ultra-low power
Blue Pill (STM32F103C8T6)
The Blue Pill is a cheap bare-board (~$2). It requires a separate ST-LINK V2 programmer for flashing.
Blue Pill Flash Size Warning
Many Blue Pill boards are sold as "64KB Flash" but actually have 128KB. Check your specific board. Also note that the ST-LINK clone programmers often sold with Blue Pills are not always reliable — use a genuine ST-LINK or NUCLEO for best results.
Key Concepts Before You Start
HAL vs. LL vs. Register
STM32CubeIDE generates code using one of three abstraction levels:
| Level | Description | Use Case |
|---|---|---|
| HAL (Hardware Abstraction Layer) | High-level, portable, easy to use | Beginners, rapid prototyping |
| LL (Low Layer) | Thin wrapper, close to registers | Performance-critical code |
| Bare Register | Direct register access | Maximum control, expert use |
For workshops, we use HAL — it's what STM32CubeMX generates by default.
ST-LINK
ST-LINK is ST's debug/programmer interface. It supports:
- SWD (Serial Wire Debug) — 2-wire debug interface (used on most boards)
- JTAG — 4-wire interface (more features, less common on dev boards)
NUCLEO boards have ST-LINK built in. If using a bare Blue Pill, you need a USB ST-LINK V2 dongle.
Next Steps
Choose your operating system to begin installation:

