STM32Cube initialization code generator

STM32CubeMX is part of STMicroelectronics STM32Cube original initiative to make developers’ lives easier by reducing development effort, time and cost. STM32Cube covers the whole STM32 portfolio.

STM32Cube includes STM32CubeMX, a graphical software configuration tool that allows the generation of C initialization code using graphical wizards.

STM32Cube also embeds comprehensive STM32Cube MCU Packages, delivered per STM32 microcontroller Series (such as STM32CubeF4 for STM32F4 Series). All packages are composed of the hardware abstraction layer (HAL) and the low-layer (LL) APIs, plus a consistent set of middleware components (such as RTOS, USB, TCP/IP and graphics). All embedded software utilities are delivered with a full set of examples running on STMicroelectronics boards.

The STM32Cube HAL is an STM32 embedded software layer that ensures maximized portability across the STM32 portfolio, while the LL APIs make up a fast, light-weight, expert-oriented layer which is closer to the hardware that the HAL.

STM32CubeMX is a graphical tool that allows a very easy configuration of STM32 microcontrollers and the generation of the corresponding initialization C code through a step-by-step process.

Step one consists in selecting the STMicroelectronics STM32 microcontroller that matches the required set of peripherals.

The user must then configure each required embedded software thanks to a pinout-conflict solver, a clock-tree setting helper, a power-consumption calculator, and an utility performing MCU peripheral configuration (GPIO, USART, ..) and middleware stacks (USB, TCP/IP, …).

Finally, the user launches the generation of the initialization C code based on the selected configuration. This code is ready to be used within several development environments. The user code is kept at the next code generation.

In addition to STM32CubeMX, other software development tools are available within STM32Cube, such as STM32CubeProgrammer (STM32CubeProg) and STM32CubeMonitor-Power (

Key Features

  • Intuitive STM32 microcontroller selection
  • Rich easy-to-use graphical user interface allowing to configure:
    • Pinout with automatic conflict resolution
    • Peripherals and middleware functional modes and initialization with dynamic validation of parameter constraints
    • Clock tree with dynamic validation of the configuration
    • Power sequence with estimate of consumption results
  • C code project generation covering STM32 microcontroller initialization compliant with IAR, Keil, SW4STM32 and GCC compilers
  • Available as a standalone software running on Windows, Linux and macOS (macOS is a trademark of Apple Inc. registered in the U.S. and other countries.) operating systems, or through Eclipse plug-in