Contents
1 Acronyms and definitions ............................................................. 26
2 Overview of HAL drivers ............................................................... 28
2.1 HAL and user-application files......................................................... 28
2.1.1 HAL driver files ................................................................................. 28
2.1.2 User-application files ........................................................................ 30
2.2 HAL data structures ........................................................................ 31
2.2.1 Peripheral handle structures ............................................................ 31
2.2.2 Initialization and configuration structure ........................................... 33
2.2.3 Specific process structures .............................................................. 33
2.3 API classification ............................................................................. 33
2.4 Devices supported by HAL drivers .................................................. 34
2.5 HAL driver rules .............................................................................. 36
2.5.1 HAL API naming rules ...................................................................... 36
2.5.2 HAL general naming rules ................................................................ 37
2.5.3 HAL interrupt handler and callback functions ................................... 38
2.6 HAL generic APIs ............................................................................ 39
2.7 HAL extension APIs ........................................................................ 40
2.7.1 HAL extension model overview ........................................................ 40
2.7.2 HAL extension model cases ............................................................. 41
2.8 File inclusion model ......................................................................... 43
2.9 HAL common resources .................................................................. 43
2.10 HAL configuration ............................................................................ 44
2.11 HAL system peripheral handling ..................................................... 46
2.11.1 Clock ................................................................................................. 46
2.11.2 GPIOs ............................................................................................... 46
2.11.3 Cortex NVIC and SysTick timer ........................................................ 48
2.11.4 PWR ................................................................................................. 48
2.11.5 EXTI .................................................................................................. 48
2.11.6 DMA .................................................................................................. 49
2.12 How to use HAL drivers .................................................................. 51
2.12.1 HAL usage models ........................................................................... 51
2.12.2 HAL initialization ............................................................................... 52
2.12.3 HAL IO operation process ................................................................ 54
2.12.4 Timeout and error management ....................................................... 57
3 Overview of Low Layer drivers ..................................................... 61