The STM32 is a family of microcontrollerICs based on various 32-bitRISCARM Cortex-M cores.[1]STMicroelectronics licenses the ARM Processor IP from ARM Holdings. The ARM core designs have numerous configurable options, and ST chooses the individual configuration to use for each design. ST attaches its own peripherals to the core before converting the design into a silicon die. The following tables summarize the STM32 microcontroller families.
The STM32 is the third ARM family by STMicroelectronics. It follows their earlier STR9 family based on the ARM9E core,[8] and STR7 family based on the ARM7TDMI core.[9] The following is the history of how the STM32 family has evolved.
More information Date, Announcement ...
Date
Announcement
October 2006
STMicroelectronics licensed the ARM Cortex-M3 core
June 2007
ST announced the STM32 F1-series based on the ARM Cortex-M3
October 2009
ST announced new ARM chips would be built using the 90 nm process
April 2010
ST announced the STM32 L1-series chips
November 2010
ST announced the STM32 F2-series chips based on the ARM Cortex-M3 core, and future development
March 2011
ST announced the expansion of their STM32 L1-series chips with flash densities of 256 KB and 384 KB
September 2011
ST announced the STM32 F4-series chips based on the ARM Cortex-M4F core
February 2012
ST announced the STM32 F0-series chips based on the ARM Cortex-M0 core
June 2012
ST announced the STM32 F3-series chips based on the ARM Cortex-M4F core
January 2013
ST announced full Java support for STM32 F2 and F4-series chips
February 2013
ST announced STM32 Embedded Coder support for MATLAB and Simulink
February 2013
ST announced the STM32 F4x9-series chips
April 2013
ST announced the STM32 F401-series chips
July 2013
ST announced the STM32 F030-series chips and availability in a TSSOP20 package
December 2013
ST announced that it is joining the mbed project
January 2014
ST announced the STM32 F0x2-series chips
February 2014
ST announced the STM32 L0-series chips based on the ARM Cortex-M0+ core
February 2014
ST announced multiple STM32 Nucleo boards with Arduino headers and mbed IDE
February 2014
ST announced the release of free STM32Cube software tool with graphical configurator and C code
September 2014
ST announced the STM32 F7 series, the first chips based on the Cortex-M7F core
October 2016
STM32H7 series announced, based on ARM Cortex-M7F core, produced using 40 nm technology, runs at 400 MHz
November 2017
STM32L4+ series announced, an upgrade to STM32L4 series Cortex-M4 MCUs
October 2018
STM32L5 series announced, ultra-low-power MCUs based on ARM Cortex-M33 core with various security features
February 2021
STM32U5 series announced, ultra-low-power MCUs based on ARM Cortex-M33 core with low power and hardware & software-based security measures targeting PSA Certified and SESIP assurance level 3 with physical attacker resistance
January 2023
STM32C0 series announced, based on ARM Cortex-M0+ core, targeting equipment like home appliances, industrial pumps, fans, smoke detectors, typically served by simpler 8-bit and 16-bit MCUs.
March 2023
STM32H5 series announced, based on ARM Cortex-M33 core, designed for smart, connected devices, which provide more intelligence “in the edge” and also strengthens defenses against attacks on IoT assets.
March 2024
STM32U0 series announced, based on ARM Cortex-M0+ core, targeting ultra-low power entry-level battery-powered applications in industrial, medical, smart metering, and consumer wellness markets.
Close
The STM32 family consists of many series of microcontrollers: C0, F0, F1, F2, F3, F4, F7, G0, G4, H5, H7, L0, L1, L4, L4+, L5, U0, U5, WBA, WB, WL.[1] Each STM32 microcontroller series is based upon a specific ARM Cortex-M processor core.
The STM32 F1-series was the first group of STM32 microcontrollers based on the ARM Cortex-M3 core and considered their mainstream ARM microcontrollers. The F1-series has evolved over time by increasing CPU speed, size of internal memory, variety of peripherals. There are five F1 lines: Connectivity (STM32F105/107), Performance (STM32F103), USB Access (STM32F102), Access (STM32F101), Value (STM32F100). The summary for this series is:[16][17][18]
Core:
ARM Cortex-M3 core at a maximum clock rate of 24 / 36 / 48 / 72MHz.
The STM32 F2-series of STM32 microcontrollers based on the ARM Cortex-M3 core. It is the most recent and fastest Cortex-M3 series. The F2 is pin-to-pin compatible with the STM32 F4-series. The summary for this series is:[20][19][21]
Static RAM consists of 64 / 96 / 128KB general purpose, 4KB battery-backed, 80 bytes battery-backed with tamper-detection erase.
Flash consists of 128 / 256 / 512 / 768 / 1024KB general purpose, 30KB system boot, 512 bytes one-time programmable (OTP), 16 option bytes.
Each chip has a factory-programmed 96-bit unique device identifier number.
Peripherals:
Common peripherals included in all IC packages are USB 2.0 OTG HS, two CAN 2.0B, one SPI + two SPI or I²S, three I²C, four USART, two UART, SDIO/MMC, twelve 16-bit timers, two 32-bit timers, two watchdog timers, temperature sensor, 16 or 24 channels into three ADCs, two DACs, 51 to 140 GPIOs, sixteen DMA, real-time clock (RTC), cyclic redundancy check (CRC) engine, random number generator (RNG) engine. Larger IC packages add 8/16-bit external memory bus capabilities.
The STM32 F3-series is the second group of STM32 microcontrollers based on the ARM Cortex-M4F core. The F3 is almost pin-to-pin compatible with the STM32 F1-series. The summary for this series is:[23][24][22]
The distinguishing feature for this series is presence of four fast, 12-bit, simultaneous sampling ADCs (multiplexer to over 30 channels), and four matched, 8MHz bandwidth op-amps with all pins exposed and additionally internal PGA (Programmable Gain Array) network. The exposed pads allow for a range of analog signal conditioning circuits like band-pass filters, anti-alias filters, charge amplifiers, integrators/differentiators, 'instrumentation' high-gain differential inputs, and other. This eliminates need for external op-amps for many applications. The built-in two-channel DAC has arbitrary waveform as well as a hardware-generated waveform (sine, triangle, noise etc.) capability. All analog devices can be completely independent, or partially internally connected, meaning that one can have nearly everything that is needed for an advanced measurement and sensor interfacing system in a single chip.
The four ADCs can be simultaneously sampled making a wide range of precision analog control equipment possible. It is also possible to use a hardware scheduler for the multiplexer array, allowing good timing accuracy when sampling more than 4 channels, independent of the main processor thread. The sampling and multiplexing trigger can be controlled from a variety of sources including timers and built-in comparators, allowing for irregular sampling intervals where needed.
The op-amps inputs feature 2-to-1 analog multiplexer, allowing for a total of eight analog channels to be pre-processed using the op-amp; all the op-amp outputs can be internally connected to ADCs.
The STM32 F4-series is the first group of STM32 microcontrollers based on the ARM Cortex-M4F core. The F4-series is also the first STM32 series to have DSP and floating-point instructions. The F4 is pin-to-pin compatible with the STM32 F2-series and adds higher clock speed, 64KB CCM static RAM, full-duplex I²S, improved real-time clock, and faster ADCs. The summary for this series is:[27][28][29][26][30]
Core:
ARM Cortex-M4F core at a maximum clock rate of 84 / 100 / 168 / 180MHz.
Memory:
Static RAM consists of up to 192KB general-purpose, 64KB core-coupled memory (CCM), 4KB battery-backed, 80bytes battery-backed with tamper-detection erase.
Flash consists of 512 / 1024 / 2048KB general-purpose, 30KB system boot, 512bytes one-time programmable (OTP), 16 option bytes.
Each chip has a factory-programmed 96-bit unique device identifier number.
The STM32 F7-series is a group of STM32 microcontrollers based on the ARM Cortex-M7F core. Many of the F7 series are pin-to-pin compatible with the STM32 F4-series.
Core:
ARM Cortex-M7F core at a maximum clock rate of 216MHz.
Many of STM32F76xxx and STM32F77xxx models have a digital filter for sigma-delta modulators (DFSDM) interface.[31]
The STM32 G0-series is a next generation of Cortex-M0/M0+ microcontrollers for budget market segment, offering the golden mean in productivity and power efficiency, e.g. better power efficiency and performance compared to the older F0 series and higher performance compared to ultra low power L0 series[11]
Debug interface is SWD with breakpoints and watchpoints. JTAG debugging isn't supported.
Memory:
Static RAM sizes of 8 to 128KB general purpose with hardware parity checking and up to 144KB without hardware parity checking, 5x 32-bit battery-backed registers with tamper-detection erase.
The STM32 G4-series is a next generation of Cortex-M4F microcontrollers aiming to replace F3 series, offering the golden mean in productivity and power efficiency, e.g. better power efficiency and performance compared to the older F3/F4 series and higher performance compared to ultra low power L4 series, integrated several hardware accelerators.
Core:
ARM Cortex-M4F core at a maximum clock rate of 170 MHz with FPU and DSP instructions
Mathematical accelerators:
CORDIC (trigonometric and hyperbolic functions)
FMAC (filtering functions)
Memory:
Flash memory with error-correcting code (ECC) and sizes of 128 to 512KB.
Static RAM sizes of 32 to 128KB with hardware parity checking and CCM-SRAM routine booster, 32x 32-bit battery-backed registers with tamper-detection erase.
Rich advanced analog peripherals (comparator, op-amps, DAC)
ADC with hardware oversampling (16-bit resolution) up to 4 Msps
High-resolution timer version 2
USB Type-C interface with Power Delivery including physical layer (PHY)
The STM32 H7-series is a group of high performance STM32 microcontrollers based on the ARM Cortex-M7F core with double-precision floating point unit and optional second Cortex-M4F core with single-precision floating point. Cortex-M7F core can reach working frequency up to 480 MHz, while Cortex-M4F - up to 240 MHz. Each of these cores can work independently or as master/slave core.
The STM32H7 Series is the first series of STM32 microcontrollers in 40 nm process technology and the first series of ARM Cortex-M7-based microcontrollers which is able to run up to 480 MHz, allowing a performance boost versus previous series of Cortex-M microcontrollers, reaching new performance records of 1027 DMIPS and 2400 CoreMark. [38]
Digital filter for sigma-delta modulators (DFSDM) interface[31]
The STM32 L0-series is the first group of STM32 microcontrollers based on the ARM Cortex-M0+ core. This series targets low power applications. The summary for this series is:[40][39]
capacitive touch sense and 32-bit random number generator (only L0x2 and L0x3 chips), LCD controller (only L0x3 chips), 128-bit AES engine (only L06x chips).
Oscillators consists of optional external 1 to 24MHz crystal or oscillator, optional external 32.768kHz crystal or ceramic resonator, multiple internal oscillators, and one PLL.
The STM32 L1-series was the first group of STM32 microcontrollers with a primary goal of ultra-low power usage for battery-powered applications. The summary for this series is:[42][43][41][44]
Static RAM consists of 10 / 16 / 32 / 48 / 80 KB general purpose, 80 bytes with tamper-detection erase.
Flash consists of 32 / 64 / 128 / 256 / 384 / 512 KB general purpose with ECC, 4 / 8 KB system boot, 32 option bytes, EEPROM consists of 4 / 8 / 12 / 16 KB data storage with ECC.
Each chip has a factory-programmed 96-bit unique device identifier number.
Peripherals:
Common peripherals included in all IC packages are USB 2.0 FS, two SPI, two I²C, three USART, eight 16-bit timers, two watchdog timers, temperature sensor, 16 to 24 channels into one ADC, two DACs, 37 to 83 GPIOs, seven DMA, real-time clock (RTC), cyclic redundancy check (CRC) engine. The STM32FL152 line adds a LCD controller.
Oscillators consists of internal (16MHz, 38kHz, variable 64kHz to 4MHz), optional external (1 to 26MHz, 32.768 to 1000kHz).
The STM32 L4-series is an evolution of STM32L1-series of ultra-low power microcontrollers. An example of L4 MCU is STM32L432KC in UFQFPN32 package, that has:
ARM 32-bit Cortex-M4 core
80MHz max CPU frequency
VDD from 1.65 V to 3.6 V
256 KB Flash, 64 KB SRAM
General purpose timers (4), SPI/I2S (2), I2C (2), USART (2), 12-bit ADC with 10 channels (1), GPIO (20) with external interrupt capability, RTC
The STM32 L4+-series is expansion of STM32L4-series of ultra-low power microcontrollers, providing more performance, more embedded memory and richer graphics and connectivity features while keeping ultra-low-power capability.
Main features:
ARM 32-bit Cortex-M4 core
120MHz max CPU frequency
VDD from 1.71 V to 3.6 V
Ultra low power consumption: down to 41 μA/MHz, 20 nA power consumption in power-down mode.
Up to 2048 KB Flash, up to 640 KB SRAM
Advanced peripherals, including TFT-LCD controller, Chrom-ART Accelerator, Camera interface etc.
Digital filter for sigma-delta modulators (DFSDM) interface[31]
The following boards have Arduino Nano pin-compatible male pin headers with 0.6-inch row-to-row DIP-30 footprint, but these boards have 3.3 volt logic I/O, instead of 5 volt logic I/O for an Arduino Nano.
Blue Pill board has a STM32F103C8T6 microcontroller.[51][52][53] Unfortunately, most blue pill boards now contain a fake STM32 from China.[54]
Black Pill board has a STM32F401CCU6 or STM32F411CEU6 microcontroller.[55][56][57]
ST Nucleo-32 boards have Arduino Nano pin-compatible male pin headers too.[58] (see Nucleo section below)
Arduino Uno style
The following boards have Arduino Uno pin-compatible female pin headers for Arduino shields, but these boards have 3.3 volt logic I/O, instead of 5 volt logic I/O for an Arduino Uno.
Maple board by Leaflabs has a STM32F103RB microcontroller. A C/C++ library called libmaple is available to make it easier to migrate from Arduino.
OLIMEXINO-STM32 board by Olimex has a STM32F103RBT6 microcontroller and similar to the Maple board.
ST Nucleo-64 and Nucleo-144 boards have female pin headers for Arduino shields too. (see Nucleo section below)
ST Nucleo
All Nucleo boards by STMicroelectronics support the mbed development environment,[59][60] and have an additional onboard ST-LINK/V2-1 host adapter chip which supplies SWD debugging, virtual COM port, and mass storage over USB. There are three Nucleo board families, each supporting a different microcontroller IC package footprint.[61] The debugger embedded on Nucleo boards can be converted to the SEGGER J-Link debugger protocol.[62]
This family has 144-pin STM32 ICs, Arduino Uno Rev3 female headers for shields, ST Zio female headers, ST Morpho male pin headers (two 19x2), second Micro-AB USB connector, and RJ45Ethernet connector (some boards).[66]
Low power ICs are L496, L496-P, L4A6, L4R5, L4R5-P. Mainstream IC is F303. High performance ICs are F207, F412, F413, F429, F439, F446, F722, F746, F756, F767, H743.
Note: The unofficial suffix "-DP" means the ARM core includes double-precision floating point unit, where as all other chips are single-precision only.
ST Discovery
The following Discovery evaluation boards are sold by STMicroelectronics to provide a quick and easy way for engineers to evaluate their microcontroller chips. These kits are available from various distributors for less than US$20. The STMicroelectronics evaluation product licence agreement forbids their use in any production system or any product that is offered for sale.[69]
Each board includes an on-board ST-LINK for programming and debugging via a Mini-B USB connector. The power for each board is provided by a choice of the 5V via the USB cable, or an external 5V power supply. They can be used as output power supplies of 3V or 5V (current must be less than 100mA). All Discovery boards also include a voltage regulator, reset button, user button, multiple LEDs, SWD header on top of each board, and rows of header pins on the bottom.[70]
An open-source project was created to allow Linux to communicate with the ST-LINK debugger.[71]
ChibiOS/RT, a free RTOS, has been ported to run on some of the Discovery boards.[72][73][74]
STM32L476GDISCOVERY
A discovery board for STM32L476VGT6 microcontroller with 80MHz ARM Cortex-M4F core, 1024KB flash, 128KB RAM in LQFP100 package
STM32F429IDISCOVERY
A discovery board for STM32F429ZIT6 microcontroller with 180MHz ARM Cortex-M4F core, 2048KB flash, 256KB RAM, 4KB battery-backed RAM in LQFP144 package.[75]
This board includes an integrated ST-LINK/V2 debugger via Mini-B USB connector, 8 MB SDRAM (IS42S16400J), 2.4-inch 320x200 TFT LCD color display (SF-TC240T), touchscreen controller (STMPE811), gyroscope (L3GD20), 2 user LEDs, user button, reset button, Full-Speed USB OTG to second Micro-AB USB connector, and two 32x2 male pin headers.
A discovery board for STM32F303VCT6 microcontroller with 72MHz ARM Cortex-M4F core, 256KB flash, 48KB RAM (24K with parity) in LQFP100 package.[24]
This board includes an integrated ST-LINK/V2 debugger via Mini-B USB connector, accelerometer/compass (LSM303DLHC), gyroscope (L3GD20), 8 user LEDs, user button, reset button, Full-Speed USB to second Mini-B USB connector, and two 25x2 male pin headers.
This board includes an integrated ST-LINK debugger via Mini-B USB connector, 2 user LEDs, user button, reset button, and two 28x1 male pin headers.
STM32L-DISCOVERY
A discovery board for STM32L152RBT6 microcontroller with 32MHz ARM Cortex-M3 core, 128 KB flash (with ECC), 16 KB RAM, 4 KB EEPROM (with ECC) in LQFP64 package.[77]
This board includes an integrated ST-LINK/V2 debugger via Mini-B USB connector, 24-segment LCD, touch sensors, 2 user LEDs, user button, reset button, and two 28x1 male pin headers.
This board is currently End-Of-Life and replaced by the 32L152CDISCOVERY board.
STM32L152CDISCOVERY
A discovery board for STM32L152RCT6 microcontroller with 32MHz ARM Cortex-M3 core, 256 KB flash (with ECC), 32 KB RAM, 8 KB EEPROM (with ECC) in LQFP64 package.
This board includes an integrated ST-LINK/V2 debugger via Mini-B USB connector, 24-segment LCD, touch sensors, 2 user LEDs, user button, reset button, and two 28x1 male pin headers.
STM32L100CDISCOVERY
A discovery board for STM32L100RCT6 microcontroller with 32MHz ARM Cortex-M3 core, 256 KB flash (with ECC), 16 KB RAM, 4 KB EEPROM (with ECC) in LQFP64 package.
This board includes an integrated ST-LINK/V2 debugger via Mini-B USB connector, 2 user LEDs, user button, reset button, and two 33x1 male pin headers.
This board includes an integrated ST-LINK/V2 debugger via Mini-B USB connector, gyroscope (L3GD20), 4 user LEDs, user button, reset button, linear touch keys, Full-Speed USB to second Mini-B USB connector, and two 33x1 male pin headers.
It contains two boards, each with a STM32W108 SoC microcontroller in VFQFPN40 and VFQFPN48 packages.
The evaluation board has a built-in 2.4GHz IEEE 802.15.4 transceiver and Lower MAC (so supports 802.15.4, ZigBee RF4CE, ZigBee Pro, 6LoWPAN (Contiki) wireless protocols). The SoC contains 128-Kbyte flash and 8-Kbyte RAM memory. Flash memory is upgradable too via USB. It has an ARM Serial Wire Debug (SWD) interface (Remote board) and is designed to be powered by USB or with 2 AAA batteries (Remote board). There are two user-defined LEDs (green and yellow) and five push buttons to create easy-to-use remote functions (remote board).
STM3220G-JAVA
A ready-to-use Java development kits for its STM32 microcontrollers. The STM3220G-JAVA Starter Kit combines an evaluation version of IS2T's MicroEJ Software Development Kit (SDK) and the STM32F2 series microcontroller evaluation board providing everything engineers need to start their projects.
MicroEJ provides extended features to create, simulate, test and deploy Java applications in embedded systems. Support for Graphical User Interface (GUI) development includes a widget library, design tools including storyboarding, and tools for customizing fonts.[81] STM32 microcontrollers that embed Java have a Part Number that ends with J like STM32F205VGT6J.
Simulink, by MathWorks provides model-based design solutions to design embedded systems. The Embedded Coder Support Package for STMicroelectronics Discovery Boards and the Simulink Coder Support Package for STMicroelectronics Nucleo Boards provide parameter tuning, signal monitoring and one-click deployment of Simulink algorithms to STM32 boards with access to peripherals like ADC, PWM, GPIOs, I²C, SPI, SCI, TCP/IP, UDP, etc.
Flash programming via USART
All STM32 microcontrollers have a ROM'ed bootloader that supports loading a binary image into its flash memory using one or more peripherals (varies by STM32 family). Since all STM32 bootloaders support loading from the USART peripheral and most boards connect the USART to RS-232 or a USB-to-UART adapter IC, thus it's a universal method to program the STM32 microcontroller. This method requires the target to have a way to enable/disable booting from the ROM'ed bootloader (i.e. jumper / switch / button).
The amount of documentation for all ARM chips can be daunting, especially for newcomers. As microprocessors have increased in capability and complexity, the documentation has grown. The total documentation for all ARM chips consists of documents from the IC manufacturer (STMicroelectronics) and documents from CPU core vendor (ARM Holdings).
A typical top-down documentation tree is: manufacturer website, manufacturer marketing slides, manufacturer datasheet for the exact physical chip, manufacturer detailed reference manual that describes common peripherals and aspects of a physical chip family, ARM core generic user guide, ARM core technical reference manual, ARM architecture reference manual that describes the instruction set(s).
STM32 documentation tree (top to bottom)
STM32 website.
STM32 marketing slides.
STM32 datasheet.
STM32 reference manual.
ARM core website.
ARM core generic user guide.
ARM core technical reference manual.
ARM architecture reference manual.
STMicroelectronics has additional documents, such as: evaluation board user manuals, application notes, getting started guides, software library documents, errata, and more. See External Links section for links to official STM32 and ARM documents.
μC/OS-III: The Real-Time Kernel for the STMicroelecronics STM32F107; 1st Edition; Jean Labrosse; Micrium; 820 pages; 2009; ISBN978-0-9823375-3-0.
μC/TCP-IP: The Embedded Protocol Stack for the STMicroelectronics STM32F107; 1st Edition; Christian Légaré; Micrium; 824 pages; 2010; ISBN978-0-9823375-0-9.