Content

STM32Cube embedded software provides a unified architecture and a consistent set of software components for all STM32 microcontrollers. This ensures code portability, reusability, and scalability across the STM32 portfolio.

Main software components and layer structure

STM32Cube embedded software is built around a layered architecture that separates hardware abstraction, middleware, and application code [1].

Block diagram showing the layered STM32Cube embedded software architecture, including hardware abstraction, middleware, and application layers.

Layered STM32Cube embedded software architecture

This structure promotes code reuse and simplifies the integration of new features. It is built on the following main components:

  • A hardware abstraction layer (HAL [2]) for easy and portable peripheral control.

  • Middleware components such as USB, TCP/IP, and file system support.

  • Part drivers [3] for STM32 evaluation and discovery boards.

Some key characteristics of these components include:

  • The abstraction layers and consistent APIs make it easy to migrate code between different STM32 devices, supporting efficient product evolution and maintenance.

  • These components integrate with STM32CubeMX2 for graphical configuration and code generation.

Last but not least, Example projects and application templates put these components together to help developers get started quickly.

Find the latest documentation of each of these components in these tables.