STM32 LL Library
STM32 Low Level (LL) library is a new library for programming the STM32 series. The LL library offering a fast light-weight expert-oriented layer which is closer to hardware than the Hardware Abstraction Layer (HAL) library. The LL and HAL are complementary and cover a wide range of applications requirements. You can mix LL code with HAL code. You can select how each peripheral will be handled, i.e. with LL or HAL. For example, you can use LL for light-weight peripherals such as GPIO or UART, and use HAL for peripherals that need heavy software configuration such as USB or Ethernet. The LL library can also be used in standalone mode (without HAL library). The LL library works by writing directly into the peripheral registers, therefore the code is more efficient and compact. The LL library replaces the Standard Peripheral (SPL) library, which has been discontinued by ST. On the other hand, the HAL library is less efficient than the LL library, but allows easy code migration between various STM32 series. Both of the LL and HAL can be generated by using STM32CubeMX.