Currently, we use ST’s Standard Peripheral Library (SPL). Goal is to research alternative peripheral libraries and see if there’s any advantage in switching.
What we currently use SPL for:
ADC
CAN
CRC/RCC
FLASH
GPIO
I2C
TIMERS
SPI
UART
STM32CubeF0
https://github.com/STMicroelectronics/STM32CubeF0
STM32Cube contains a higher hardware abstraction level so it’s possible we would write less of the HAL code ourselves, although not sure how good it is/how well it fits our needs
Additional “bloat” compared to the standard peripheral library if the extra HAL features are not necessary
Standard peripheral library is deprecated in favour of STM32Cube HAL -> https://community.st.com/s/question/0D50X00009XkYd6/stm32l4-standard-peripheral-libraries
Has lower-layer drivers for more flexibility if needed
libopencm3
https://github.com/libopencm3/libopencm3
Open-source firmware library (not from ST)
Repo claims that support for STM32F0 boards is “complete”
Documentation seems little less clear than ST libraries