Design Win

STM32Cube initialization code generator

Get Software Download databrief

Product overview


STM32CubeMX is a graphical tool that allows a very easy configuration of STM32 microcontrollers and microprocessors, as well as the generation of the corresponding initialization C code for the Arm® Cortex®-M core or a partial Linux® Device Tree for Arm® Cortex®-A core, through a step-by-step process.

The first step consists in selecting either an STMicrolectronics STM32 microcontroller, microprocessor or a development platform that matches the required set of peripherals, or an example running on a specific development platform.

For microprocessors, the second step allows to configure the GPIOs and the clock setup for the whole system, and to interactively assign peripherals either to the Arm® Cortex®-M or to the Cortex®-A world. Specific utilities, such as DDR configuration and tuning, make it easy to get started with STM32 microprocessors. For Cortex®-M core, the configuration includes additional steps that are exactly similar to those described for microcontrollers.

For microcontrollers and microprocessor Arm® Cortex®-M, the second step consists in configuring each required embedded software thanks to a pinout-conflict solver, a clock-tree setting helper, a power-consumption calculator, and an utility that configures the peripherals (such as GPIO or USART) and the middleware stacks (such as USB or TCP/IP).

The default software and middleware stacks can be extended thanks to enhanced STM32Cube Expansion Packages. STMicrolectronics or STMicrolectronics' partner packages can be downloaded directly from a dedicated package manager available within STM32CubeMX, while the other packages can be installed from a local drive.

Moreover, a unique utility in STM32CubeMX delivery, STM32PackCreator, helps developers to build their own enhanced STM32Cube Expansion Packages.

Eventually the user launches the generation that matches the selected configuration choices. This step provides the initialization C code for the Arm® Cortex®-M, ready to be used within several development environments, or a partial Linux® Device Tree for the Arm® Cortex®-A.

STM32CubeMX is delivered within STM32Cube.

  • All features

    • Intuitive STM32 microcontroller and microprocessor selection
    • Rich easy-to-use graphical user interface allowing the configuration of:
      • Pinout with automatic conflict resolution
      • Peripherals and middleware functional modes with dynamic validation of parameter constraints for Arm® Cortex®-M core
      • Clock tree with dynamic validation of the configuration
      • Power sequence with estimated consumption results
    • Generation of initialization C code project, compliant with IAR Embedded Workbench®, MDK-ARM and STM32CubeIDE (GCC compilers) for Arm® Cortex®-M core
    • Generation of a partial Linux® Device Tree for Arm® Cortex®-A core (STM32 microprocessors)
    • Development of enhanced STM32Cube Expansion Packages thanks to STM32PackCreator
    • Integration of STM32Cube Expansion packages into the project
    • Availability as 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 and 64-bit Java Runtime environment

Circuit Diagram

Get Software

Discover STM32 software toolchain.
Discover our scalable solutions to boost the development of MPU-based systems
Looking to embed AI in your project? Discover free tools, case studies, and resources to fast-track your development.