2.11.3 Cortex NVIC and SysTick timer
The Cortex HAL driver, stm32f2xx_hal_cortex.c, provides APIs to handle NVIC and
Systick. The supported APIs include:
HAL_NVIC_SetPriority()/ HAL_NVIC_SetPriorityGrouping()
HAL_NVIC_GetPriority() / HAL_NVIC_GetPriorityGrouping()
HAL_NVIC_EnableIRQ()/HAL_NVIC_DisableIRQ()
HAL_NVIC_SystemReset()
HAL_SYSTICK_IRQHandler()
HAL_NVIC_GetPendingIRQ() / HAL_NVIC_SetPendingIRQ () /
HAL_NVIC_ClearPendingIRQ()
HAL_NVIC_GetActive(IRQn)
HAL_SYSTICK_Config()
HAL_SYSTICK_CLKSourceConfig()
HAL_SYSTICK_Callback()
2.11.4 PWR
The PWR HAL driver handles power management. The features shared between all
STM32 Series are listed below:
PVD configuration, enabling/disabling and interrupt handling
HAL_PWR_ConfigPVD()
HAL_PWR_EnablePVD() / HAL_PWR_DisablePVD()
HAL_PWR_PVD_IRQHandler()
HAL_PWR_PVDCallback()
Wakeup pin configuration
HAL_PWR_EnableWakeUpPin() / HAL_PWR_DisableWakeUpPin()
Low-power mode entry
HAL_PWR_EnterSLEEPMode()
HAL_PWR_EnterSTOPMode()
HAL_PWR_EnterSTANDBYMode()
Depending on the STM32 Series, extension functions are available in
stm32f2xx_hal_pwr_ex. Here are a few examples (the list is not exhaustive)
Backup domain registers enable/disable
HAL_PWREx_EnableBkUpReg() / HAL_PWREx_DisableBkUpReg()
Flash power-down control:
HAL_PWREx_EnableFlashPowerDown()
HAL_PWREx_DisableFlashPowerDown().
2.11.5 EXTI
The EXTI is not considered as a standalone peripheral but rather as a service used by
other peripheral. As a result there are no EXTI APIs but each peripheral HAL driver
implements the associated EXTI configuration and EXTI function are implemented as
macros in its header file.
The first 16 EXTI lines connected to the GPIOs are managed within the GPIO driver. The
GPIO_InitTypeDef structure allows configuring an I/O as external interrupt or external
event.
The EXTI lines connected internally to the PVD, RTC, USB, and Ethernet are configured
within the HAL drivers of these peripheral through the macros given in the table below. The
EXTI internal connections depend on the targeted STM32 microcontroller (refer to the
product datasheet for more details):