Supported Platforms

The HAL has been ported to a variety of MCUs already, the level of support varies. Note that under the community repository there is support for much more platforms. The following tables only lists platforms officially supported by HAL.

Communication Drivers

MCU CAN I2C I2S MAC SER SPI UART USB
STM32F0xx yes yes yes - yes yes yes yes
STM32F1xx yes yes yes yes yes yes yes yes
STM32F2xx yes yes yes yes yes yes yes yes
STM32F3xx yes yes yes - yes yes yes yes
STM32F4xx yes yes yes yes yes yes yes yes
STM32F7xx yes yes yes yes yes yes yes yes
STM32H7xx no yes yes no yes yes yes yes
STM32L0xx - yes yes - yes yes yes yes
STM32L1xx yes yes yes - yes yes yes yes
STM32L4xx yes yes yes - yes yes yes yes
STM32L4xx+ yes yes yes - yes yes yes yes

Timer Drivers

MCU GPT ICU PWM RTC ST WDG
STM32F0xx yes yes yes yes yes yes
STM32F1xx yes yes yes yes yes yes
STM32F2xx yes yes yes yes yes yes
STM32F3xx yes yes yes yes yes yes
STM32F4xx yes yes yes yes yes yes
STM32F7xx yes yes yes yes yes yes
STM32H7xx yes yes yes yes yes yes
STM32L0xx yes yes yes yes yes yes
STM32L1xx yes yes yes yes yes yes
STM32L4xx yes yes yes yes yes yes
STM32L4xx+ yes yes yes yes yes yes

Other Drivers

MCU ADC DAC PAL SDC WSPI TRNG
STM32F0xx yes yes yes - - -
STM32F1xx yes - yes yes - -
STM32F2xx yes yes yes yes - -
STM32F3xx yes yes yes - - -
STM32F4xx yes yes yes yes - -
STM32F7xx yes yes yes yes yes -
STM32H7xx yes yes yes yes yes -
STM32L0xx yes yes yes - - -
STM32L1xx yes yes yes - - -
STM32L4xx yes yes yes yes yes yes
STM32L4xx+ yes yes yes yes yes yes
Code Portability

Is code portability really possible using HAL? What are the limitations?