Files
H563ZI-HAL-CMake-Template/Drivers/STM32H5xx_HAL_Driver/Inc/stm32h5xx_ll_pwr.h
2025-05-06 22:17:51 +08:00

2078 lines
70 KiB
C

/**
******************************************************************************
* @file stm32h5xx_ll_pwr.h
* @author MCD Application Team
* @brief Header file of PWR LL module.
******************************************************************************
* @attention
*
* Copyright (c) 2023 STMicroelectronics.
* All rights reserved.
*
* This software is licensed under terms that can be found in the LICENSE file
* in the root directory of this software component.
* If no LICENSE file comes with this software, it is provided AS-IS.
*
******************************************************************************
*/
/* Define to prevent recursive inclusion -------------------------------------*/
#ifndef STM32H5xx_LL_PWR_H
#define STM32H5xx_LL_PWR_H
#ifdef __cplusplus
extern "C" {
#endif /* __cplusplus */
/* Includes ------------------------------------------------------------------*/
#include "stm32h5xx.h"
/** @addtogroup STM32H5xx_LL_Driver
* @{
*/
#if defined (PWR)
/** @defgroup PWR_LL PWR
* @{
*/
/* Private types -------------------------------------------------------------*/
/* Private variables ---------------------------------------------------------*/
/* Private constants ---------------------------------------------------------*/
/** @defgroup PWR_LL_Private_Constants PWR Private Constants
* @{
*/
/** @defgroup PWR_LL_WAKEUP_PIN_OFFSET Wake-Up Pins register offsets Defines
* @brief Flags defines which can be used with LL_PWR_WriteReg function
* @{
*/
/* Wake-Up Pins PWR register offsets */
#define LL_PWR_WAKEUP_PINS_PULL_SHIFT_OFFSET 2UL
#define LL_PWR_WAKEUP_PINS_MAX_SHIFT_MASK 0x7FU
/**
* @}
*/
/**
* @}
*/
/* Private macros ------------------------------------------------------------*/
/* Exported types ------------------------------------------------------------*/
/* Exported constants --------------------------------------------------------*/
/** @defgroup PWR_LL_Exported_Constants PWR Exported Constants
* @{
*/
/** @defgroup PWR_LL_EC_CLEAR_FLAG Clear Flags Defines
* @brief Flags defines which can be used with LL_PWR_WriteReg function
* @{
*/
#define LL_PWR_PMCR_CSSF PWR_PMCR_CSSF /*!< Clear STOP and STANDBY flags */
#define LL_PWR_WUSCR_CWUF1 PWR_WUSCR_CWUF1 /*!< Clear Wakeup flag 1 */
#define LL_PWR_WUSCR_CWUF2 PWR_WUSCR_CWUF2 /*!< Clear Wakeup flag 2 */
#define LL_PWR_WUSCR_CWUF3 PWR_WUSCR_CWUF3 /*!< Clear Wakeup flag 3 */
#define LL_PWR_WUSCR_CWUF4 PWR_WUSCR_CWUF4 /*!< Clear Wakeup flag 4 */
#define LL_PWR_WUSCR_CWUF5 PWR_WUSCR_CWUF5 /*!< Clear Wakeup flag 5 */
#define LL_PWR_WUSCR_CWUF6 PWR_WUSCR_CWUF6 /*!< Clear Wakeup flag 6 */
#define LL_PWR_WUSCR_CWUF7 PWR_WUSCR_CWUF7 /*!< Clear Wakeup flag 7 */
#define LL_PWR_WUSCR_CWUF8 PWR_WUSCR_CWUF8 /*!< Clear Wakeup flag 8 */
#define LL_PWR_WUSCR_CWUF_ALL PWR_WUSCR_CWUF /*!< Clear all Wakeup flags */
/**
* @}
*/
/** @defgroup PWR_LL_EC_GET_FLAG Get Flags Defines
* @brief Flags defines which can be used with LL_PWR_ReadReg function
* @{
*/
#define LL_PWR_FLAG_VOSRDY PWR_VOSR_VOSRDY /*!< Voltage scaling ready flag */
#define LL_PWR_FLAG_ACTVOSRDY PWR_VOSR_ACTOVSRDY /*!< Currently applied VOS ready flag */
#define LL_PWR_FLAG_STOPF PWR_PMSR_STOPF /*!< STOP flag */
#define LL_PWR_FLAG_SBF PWR_PMSR_SBF /*!< STANDBY flag */
#define LL_PWR_FLAG_AVDO PWR_VMSR_AVDO /*!< Analog voltage detector output on VDDA flag */
#define LL_PWR_FLAG_VDDIO2RDY PWR_VMSR_VDDIO2RDY /*!< VDDIO2 ready flag */
#define LL_PWR_FLAG_PVDO PWR_VMSR_PVDO /*!< Programmable voltage detect output flag */
#define LL_PWR_FLAG_USB33RDY PWR_VMSR_USB33RDY /*!< VDDUSB ready flag */
#define LL_PWR_FLAG_TEMPH PWR_BDSR_TEMPH /*!< Temperature level flag (versus high threshold) */
#define LL_PWR_FLAG_TEMPL PWR_BDSR_TEMPL /*!< Temperature level flag (versus low threshold) */
#define LL_PWR_FLAG_VBATH PWR_BDSR_VBATH /*!< VBAT level flag (versus high threshold) */
#define LL_PWR_FLAG_VBATL PWR_BDSR_VBATL /*!< VBAT level flag (versus low threshold) */
#define LL_PWR_WAKEUP_FLAG1 PWR_WUSR_WUF1 /*!< Wakeup flag 1 */
#define LL_PWR_WAKEUP_FLAG2 PWR_WUSR_WUF2 /*!< Wakeup flag 2 */
#define LL_PWR_WAKEUP_FLAG3 PWR_WUSR_WUF3 /*!< Wakeup flag 3 */
#define LL_PWR_WAKEUP_FLAG4 PWR_WUSR_WUF4 /*!< Wakeup flag 4 */
#define LL_PWR_WAKEUP_FLAG5 PWR_WUSR_WUF5 /*!< Wakeup flag 5 */
#define LL_PWR_WAKEUP_FLAG6 PWR_WUSR_WUF6 /*!< Wakeup flag 6 */
#define LL_PWR_WAKEUP_FLAG7 PWR_WUSR_WUF7 /*!< Wakeup flag 7 */
#define LL_PWR_WAKEUP_FLAG8 PWR_WUSR_WUF8 /*!< Wakeup flag 8 */
/**
* @}
*/
/** @defgroup PWR_LL_EC_LOW_POWER_MODE_SELCTION Low Power Mode Selection
* @{
*/
#define LL_PWR_STOP_MODE (0U) /*!< STOP 0 mode */
#define LL_PWR_STANDBY_MODE PWR_PMCR_LPMS /*!< STANDBY mode */
/**
* @}
*/
/** @defgroup PWR_LL_EC_VOLTAGE_SCALING_RANGE_SELECTION PWR Voltage scaling range selection
* @{
*/
#define LL_PWR_REGU_VOLTAGE_SCALE0 PWR_VOSCR_VOS /*!< Voltage scaling range 0 */
#define LL_PWR_REGU_VOLTAGE_SCALE1 PWR_VOSCR_VOS_1 /*!< Voltage scaling range 1 */
#define LL_PWR_REGU_VOLTAGE_SCALE2 PWR_VOSCR_VOS_0 /*!< Voltage scaling range 2 */
#define LL_PWR_REGU_VOLTAGE_SCALE3 0x00000000U /*!< Voltage scaling range 3 */
/**
* @}
*/
/** @defgroup PWR_LL_EC_STOP_MODE_REGU_VOLTAGE Stop mode Regulator Voltage Scaling
* @{
*/
#define LL_PWR_REGU_VOLTAGE_SVOS_SCALE5 PWR_PMCR_SVOS_0 /*!< Select voltage scale 5 when system enters STOP mode */
#define LL_PWR_REGU_VOLTAGE_SVOS_SCALE4 PWR_PMCR_SVOS_1 /*!< Select voltage scale 4 when system enters STOP mode */
#define LL_PWR_REGU_VOLTAGE_SVOS_SCALE3 (PWR_PMCR_SVOS_0 | PWR_PMCR_SVOS_1) /*!< Select voltage scale 3 when system enters STOP mode */
/**
* @}
*/
/** @defgroup PWR_LL_EC_PVD_LEVEL_SELECTION PWR Power Voltage Detector Level Selection
* @{
*/
#define LL_PWR_PVDLEVEL_0 0U /*!< Voltage threshold detected by PVD 1.95 V */
#define LL_PWR_PVDLEVEL_1 PWR_VMCR_PLS_0 /*!< Voltage threshold detected by PVD 2.10 V */
#define LL_PWR_PVDLEVEL_2 PWR_VMCR_PLS_1 /*!< Voltage threshold detected by PVD 2.25 V */
#define LL_PWR_PVDLEVEL_3 (PWR_VMCR_PLS_0 | PWR_VMCR_PLS_1) /*!< Voltage threshold detected by PVD 2.40 V */
#define LL_PWR_PVDLEVEL_4 PWR_VMCR_PLS_2 /*!< Voltage threshold detected by PVD 2.55 V */
#define LL_PWR_PVDLEVEL_5 (PWR_VMCR_PLS_0 | PWR_VMCR_PLS_2) /*!< Voltage threshold detected by PVD 2.70 V */
#define LL_PWR_PVDLEVEL_6 (PWR_VMCR_PLS_1 | PWR_VMCR_PLS_2) /*!< Voltage threshold detected by PVD 2.85 V */
#define LL_PWR_PVDLEVEL_7 PWR_VMCR_PLS /*!< External input analog voltage on PVD_IN
pin, compared to internal VREFINT level */
/**
* @}
*/
/** @defgroup PWR_LL_EC_AVDLEVEL Power Analog Voltage Level Detector
* @{
*/
#define LL_PWR_AVDLEVEL_0 0U /*!< Analog Voltage threshold detected by AVD 1.7 V */
#define LL_PWR_AVDLEVEL_1 PWR_VMCR_ALS_0 /*!< Analog Voltage threshold detected by AVD 2.1 V */
#define LL_PWR_AVDLEVEL_2 PWR_VMCR_ALS_1 /*!< Analog Voltage threshold detected by AVD 2.5 V */
#define LL_PWR_AVDLEVEL_3 PWR_VMCR_ALS /*!< Analog Voltage threshold detected by AVD 2.8 V */
/**
* @}
*/
/** @defgroup PWR_LL_EC_WAKEUP_PIN PWR Wake Up Pin
* @{
*/
#define LL_PWR_WAKEUP_PIN1 PWR_WUCR_WUPEN1 /*!< Wakeup pin 1 enable */
#define LL_PWR_WAKEUP_PIN2 PWR_WUCR_WUPEN2 /*!< Wakeup pin 2 enable */
#define LL_PWR_WAKEUP_PIN3 PWR_WUCR_WUPEN3 /*!< Wakeup pin 3 enable */
#define LL_PWR_WAKEUP_PIN4 PWR_WUCR_WUPEN4 /*!< Wakeup pin 4 enable */
#define LL_PWR_WAKEUP_PIN5 PWR_WUCR_WUPEN5 /*!< Wakeup pin 5 enable */
#define LL_PWR_WAKEUP_PIN6 PWR_WUCR_WUPEN6 /*!< Wakeup pin 6 enable */
#define LL_PWR_WAKEUP_PIN7 PWR_WUCR_WUPEN7 /*!< Wakeup pin 7 enable */
#define LL_PWR_WAKEUP_PIN8 PWR_WUCR_WUPEN8 /*!< Wakeup pin 8 enable */
/**
* @}
*/
/** @defgroup PWR_LL_EC_WAKEUP_PIN_PULL Wakeup Pins pull configuration
* @{
*/
#define LL_PWR_WAKEUP_PIN_NOPULL 0x00000000UL /*!< Configure Wake-Up pin in no pull */
#define LL_PWR_WAKEUP_PIN_PULLUP 0x00000001UL /*!< Configure Wake-Up pin in pull Up */
#define LL_PWR_WAKEUP_PIN_PULLDOWN 0x00000002UL /*!< Configure Wake-Up pin in pull Down */
/**
* @}
*/
/** @defgroup PWR_LL_EC_SUPPLY_PWR Power supply source configuration
* @{
*/
#define LL_PWR_EXTERNAL_SOURCE_SUPPLY PWR_SCCR_BYPASS /*!< The SMPS and the LDO are Bypassed.
The Core domains are supplied from an external source */
/**
* @}
*/
/** @defgroup PWR_LL_EC_CHARGING_RESISTOR_SELECTION PWR VBAT Charging Resistor Selection
* @{
*/
#define LL_PWR_BATT_CHARG_RESISTOR_5K 0U /*!< Charge the battery through a 5 kO resistor */
#define LL_PWR_BATT_CHARG_RESISTOR_1_5K PWR_BDCR_VBRS /*!< Charge the battery through a 1.5 kO resistor */
/**
* @}
*/
/** @defgroup PWR_LL_EC_ITEMS_SECURE_ATTRIBUTE PWR Items Secure Attribute
* @{
*/
#define LL_PWR_WAKEUP_PIN1_NSEC 0U /* Wake up pin 1 nsecure mode */
#define LL_PWR_WAKEUP_PIN1_SEC PWR_SECCFGR_WUP1SEC /* Wake up pin 1 secure mode */
#define LL_PWR_WAKEUP_PIN2_NSEC 0U /* Wake up pin 2 nsecure mode */
#define LL_PWR_WAKEUP_PIN2_SEC PWR_SECCFGR_WUP2SEC /* Wake up pin 2 secure mode */
#define LL_PWR_WAKEUP_PIN3_NSEC 0U /* Wake up pin 3 nsecure mode */
#define LL_PWR_WAKEUP_PIN3_SEC PWR_SECCFGR_WUP3SEC /* Wake up pin 3 secure mode */
#define LL_PWR_WAKEUP_PIN4_NSEC 0U /* Wake up pin 4 nsecure mode */
#define LL_PWR_WAKEUP_PIN4_SEC PWR_SECCFGR_WUP4SEC /* Wake up pin 4 secure mode */
#define LL_PWR_WAKEUP_PIN5_NSEC 0U /* Wake up pin 5 nsecure mode */
#define LL_PWR_WAKEUP_PIN5_SEC PWR_SECCFGR_WUP5SEC /* Wake up pin 5 secure mode */
#define LL_PWR_WAKEUP_PIN6_NSEC 0U /* Wake up pin 6 nsecure mode */
#define LL_PWR_WAKEUP_PIN6_SEC PWR_SECCFGR_WUP6SEC /* Wake up pin 6 secure mode */
#define LL_PWR_WAKEUP_PIN7_NSEC 0U /* Wake up pin 7 nsecure mode */
#define LL_PWR_WAKEUP_PIN7_SEC PWR_SECCFGR_WUP7SEC /* Wake up pin 7 secure mode */
#define LL_PWR_WAKEUP_PIN8_NSEC 0U /* Wake up pin 8 nsecure mode */
#define LL_PWR_WAKEUP_PIN8_SEC PWR_SECCFGR_WUP8SEC /* Wake up pin 8 secure mode */
#define LL_PWR_RET_NSEC 0U /* Retention nsecure mode */
#define LL_PWR_RET_SEC PWR_SECCFGR_RETSEC /* Retention secure mode */
#define LL_PWR_LPM_NSEC 0U /* Low-power modes nsecure mode */
#define LL_PWR_LPM_SEC PWR_SECCFGR_LPMSEC /* Low-power modes secure mode */
#define LL_PWR_VDM_NSEC 0U /* Voltage detection and monitoring nsecure mode */
#define LL_PWR_VDM_SEC PWR_SECCFGR_SCMSEC /* Voltage detection and monitoring secure mode */
#define LL_PWR_VB_NSEC 0U /* Backup domain nsecure mode */
#define LL_PWR_VB_SEC PWR_SECCFGR_VBSEC /* Backup domain secure mode */
#define LL_PWR_APC_NSEC 0U /* Pull-up/pull-down nsecure mode */
#define LL_PWR_APC_SEC PWR_SECCFGR_VUSBSEC /* Pull-up/pull-down secure mode */
/**
* @}
*/
/**
* @}
*/
/* Exported macro ------------------------------------------------------------*/
/** @defgroup PWR_LL_Exported_Macros PWR Exported Macros
* @{
*/
/** @defgroup PWR_LL_EM_WRITE_READ Common Write and Read Registers Macros
* @{
*/
/**
* @brief Write a value in PWR register.
* @param __REG__ Register to be written.
* @param __VALUE__ Value to be written in the register.
* @retval None.
*/
#define LL_PWR_WriteReg(__REG__, __VALUE__) WRITE_REG(PWR->__REG__, (__VALUE__))
/**
* @brief Read a value in PWR register.
* @param __REG__ Register to be read.
* @retval Register value.
*/
#define LL_PWR_ReadReg(__REG__) READ_REG(PWR->__REG__)
/**
* @}
*/
/**
* @}
*/
/* Exported functions --------------------------------------------------------*/
/** @defgroup PWR_LL_Exported_Functions PWR Exported Functions
* @{
*/
/** @defgroup PWR_LL_EF_CONFIGURATION PWR Configuration
* @{
*/
/**
* @brief Set system power mode.
* @rmtoll PMCR LPMS LL_PWR_SetPowerMode
* @param Mode : This parameter can be one of the following values:
* @arg @ref LL_PWR_STOP_MODE
* @arg @ref LL_PWR_STANDBY_MODE
* @retval None
*/
__STATIC_INLINE void LL_PWR_SetPowerMode(uint32_t Mode)
{
MODIFY_REG(PWR->PMCR, PWR_PMCR_LPMS, Mode);
}
/**
* @brief Get system power mode.
* @rmtoll PMCR LPMS LL_PWR_GetPowerMode
* @retval Returned value can be one of the following values:
* @arg @ref LL_PWR_STOP_MODE
* @arg @ref LL_PWR_STANDBY_MODE
*/
__STATIC_INLINE uint32_t LL_PWR_GetPowerMode(void)
{
return (READ_BIT(PWR->PMCR, PWR_PMCR_LPMS));
}
/**
* @brief Set the internal Regulator output voltage in STOP mode
* @rmtoll PMCR SVOS LL_PWR_SetStopModeRegulVoltageScaling
* @param VoltageScaling This parameter can be one of the following values:
* @arg @ref LL_PWR_REGU_VOLTAGE_SVOS_SCALE3
* @arg @ref LL_PWR_REGU_VOLTAGE_SVOS_SCALE4
* @arg @ref LL_PWR_REGU_VOLTAGE_SVOS_SCALE5
* @retval None
*/
__STATIC_INLINE void LL_PWR_SetStopModeRegulVoltageScaling(uint32_t VoltageScaling)
{
MODIFY_REG(PWR->PMCR, PWR_PMCR_SVOS, VoltageScaling);
}
/**
* @brief Get the internal Regulator output voltage in STOP mode
* @rmtoll PMCR SVOS LL_PWR_GetStopModeRegulVoltageScaling
* @retval Returned value can be one of the following values:
* @arg @ref LL_PWR_REGU_VOLTAGE_SVOS_SCALE3
* @arg @ref LL_PWR_REGU_VOLTAGE_SVOS_SCALE4
* @arg @ref LL_PWR_REGU_VOLTAGE_SVOS_SCALE5
*/
__STATIC_INLINE uint32_t LL_PWR_GetStopModeRegulVoltageScaling(void)
{
return (uint32_t)(READ_BIT(PWR->PMCR, PWR_PMCR_SVOS));
}
/**
* @brief Enable the Flash Power Down in Stop Mode
* @rmtoll PMCR FLPS LL_PWR_EnableFlashPowerDown
* @retval None
*/
__STATIC_INLINE void LL_PWR_EnableFlashPowerDown(void)
{
SET_BIT(PWR->PMCR, PWR_PMCR_FLPS);
}
/**
* @brief Disable the Flash Power Down in Stop Mode
* @rmtoll PMCR FLPS LL_PWR_DisableFlashPowerDown
* @retval None
*/
__STATIC_INLINE void LL_PWR_DisableFlashPowerDown(void)
{
CLEAR_BIT(PWR->PMCR, PWR_PMCR_FLPS);
}
/**
* @brief Check if the Flash Power Down in Stop Mode is enabled
* @rmtoll PMCR FLPS LL_PWR_IsEnabledFlashPowerDown
* @retval State of bit (1 or 0).
*/
__STATIC_INLINE uint32_t LL_PWR_IsEnabledFlashPowerDown(void)
{
return ((READ_BIT(PWR->PMCR, PWR_PMCR_FLPS) == (PWR_PMCR_FLPS)) ? 1UL : 0UL);
}
/**
* @brief Enable the Analog Voltage Booster (VDDA)
* @rmtoll PMCR BOOSTE LL_PWR_EnableAnalogBooster
* @retval None
*/
__STATIC_INLINE void LL_PWR_EnableAnalogBooster(void)
{
SET_BIT(PWR->PMCR, PWR_PMCR_BOOSTE);
}
/**
* @brief Disable the Analog Voltage Booster (VDDA)
* @rmtoll PMCR BOOSTE LL_PWR_DisableAnalogBooster
* @retval None
*/
__STATIC_INLINE void LL_PWR_DisableAnalogBooster(void)
{
CLEAR_BIT(PWR->PMCR, PWR_PMCR_BOOSTE);
}
/**
* @brief Check if the Analog Voltage Booster (VDDA) is enabled
* @rmtoll PMCR BOOSTE LL_PWR_IsEnabledAnalogBooster
* @retval State of bit (1 or 0).
*/
__STATIC_INLINE uint32_t LL_PWR_IsEnabledAnalogBooster(void)
{
return ((READ_BIT(PWR->PMCR, PWR_PMCR_BOOSTE) == (PWR_PMCR_BOOSTE)) ? 1UL : 0UL);
}
/**
* @brief Enable the Analog Voltage Ready to isolate the BOOST IP until VDDA will be ready
* @rmtoll PMCR AVD_READY LL_PWR_EnableAnalogVoltageReady
* @retval None
*/
__STATIC_INLINE void LL_PWR_EnableAnalogVoltageReady(void)
{
SET_BIT(PWR->PMCR, PWR_PMCR_AVD_READY);
}
/**
* @brief Disable the Analog Voltage Ready (VDDA)
* @rmtoll PMCR AVD_READY LL_PWR_DisableAnalogVoltageReady
* @retval None
*/
__STATIC_INLINE void LL_PWR_DisableAnalogVoltageReady(void)
{
CLEAR_BIT(PWR->PMCR, PWR_PMCR_AVD_READY);
}
/**
* @brief Check if the Analog Voltage Booster (VDDA) is enabled
* @rmtoll PMCR AVD_READY LL_PWR_IsEnabledAnalogVoltageReady
* @retval State of bit (1 or 0).
*/
__STATIC_INLINE uint32_t LL_PWR_IsEnabledAnalogVoltageReady(void)
{
return ((READ_BIT(PWR->PMCR, PWR_PMCR_AVD_READY) == (PWR_PMCR_AVD_READY)) ? 1UL : 0UL);
}
/**
* @brief Enable the AHB RAM1 shut-off in Stop mode
* @rmtoll PMCR SRAM1SO LL_PWR_EnableAHBRAM1ShutOff
* @retval None
*/
__STATIC_INLINE void LL_PWR_EnableAHBRAM1ShutOff(void)
{
SET_BIT(PWR->PMCR, PWR_PMCR_SRAM1SO);
}
/**
* @brief Disable the AHB RAM1 shut-off in Stop mode
* @rmtoll PMCR SRAM1SO LL_PWR_DisableAHBRAM1ShutOff
* @retval None
*/
__STATIC_INLINE void LL_PWR_DisableAHBRAM1ShutOff(void)
{
CLEAR_BIT(PWR->PMCR, PWR_PMCR_SRAM1SO);
}
/**
* @brief Check if the AHB RAM1 shut-off in Stop mode is enabled
* @rmtoll CR1 SRAM1SO LL_PWR_IsEnabledAHBRAM1ShutOff
* @retval State of bit (1 or 0).
*/
__STATIC_INLINE uint32_t LL_PWR_IsEnabledAHBRAM1ShutOff(void)
{
return ((READ_BIT(PWR->PMCR, PWR_PMCR_SRAM1SO) == (PWR_PMCR_SRAM1SO)) ? 1UL : 0UL);
}
#if defined (PWR_PMCR_SRAM2_48SO)
/**
* @brief Enable the AHB RAM2 48K Bytes shut-off in Stop mode
* @rmtoll PMCR SRAM2_48SO LL_PWR_EnableAHBRAM2_48K_ShutOff
* @retval None
*/
__STATIC_INLINE void LL_PWR_EnableAHBRAM2_48K_ShutOff(void)
{
SET_BIT(PWR->PMCR, PWR_PMCR_SRAM2_48SO);
}
/**
* @brief Disable the AHB RAM2 48K Bytes shut-off in Stop mode
* @rmtoll PMCR SRAM2_48SO LL_PWR_DisableAHBRAM2_48K_ShutOff
* @retval None
*/
__STATIC_INLINE void LL_PWR_DisableAHBRAM2_48K_ShutOff(void)
{
CLEAR_BIT(PWR->PMCR, PWR_PMCR_SRAM2_48SO);
}
/**
* @brief Check if the AHB RAM2 shut-off in Stop mode is enabled
* @rmtoll PMCR SRAM2_48SO LL_PWR_IsEnabledAHBRAM2_48K_ShutOff
* @retval State of bit (1 or 0).
*/
__STATIC_INLINE uint32_t LL_PWR_IsEnabledAHBRAM2_48K_ShutOff(void)
{
return ((READ_BIT(PWR->PMCR, PWR_PMCR_SRAM2_48SO) == (PWR_PMCR_SRAM2_48SO)) ? 1UL : 0UL);
}
#endif /* PWR_PMCR_SRAM2_48SO */
#if defined (PWR_PMCR_SRAM2_16SO)
/**
* @brief Enable the AHB RAM2 16K Bytes shut-off in Stop mode
* @rmtoll PMCR SRAM2_16SO LL_PWR_EnableAHBRAM2_16K_ShutOff
* @retval None
*/
__STATIC_INLINE void LL_PWR_EnableAHBRAM2_16K_ShutOff(void)
{
SET_BIT(PWR->PMCR, PWR_PMCR_SRAM2_16SO);
}
/**
* @brief Disable the AHB RAM2 16K Bytes shut-off in Stop mode
* @rmtoll PMCR SRAM2_16SO LL_PWR_DisableAHBRAM2_16K_ShutOff
* @retval None
*/
__STATIC_INLINE void LL_PWR_DisableAHBRAM2_16K_ShutOff(void)
{
CLEAR_BIT(PWR->PMCR, PWR_PMCR_SRAM2_16SO);
}
/**
* @brief Check if the AHB RAM2 shut-off in Stop mode is enabled
* @rmtoll PMCR SRAM2_16SO LL_PWR_IsEnabledAHBRAM2_16K_ShutOff
* @retval State of bit (1 or 0).
*/
__STATIC_INLINE uint32_t LL_PWR_IsEnabledAHBRAM2_16K_ShutOff(void)
{
return ((READ_BIT(PWR->PMCR, PWR_PMCR_SRAM2_16SO) == (PWR_PMCR_SRAM2_16SO)) ? 1UL : 0UL);
}
#endif /* PWR_PMCR_SRAM2_16SO */
#if defined(PWR_PMCR_SRAM2_16HSO)
/**
* @brief Enable the AHB RAM2 high 16K Bytes shut-off in Stop mode
* @rmtoll PMCR SRAM2_16HSO LL_PWR_EnableAHBRAM2_High_16K_ShutOff
* @retval None
*/
__STATIC_INLINE void LL_PWR_EnableAHBRAM2_High_16K_ShutOff(void)
{
SET_BIT(PWR->PMCR, PWR_PMCR_SRAM2_16HSO);
}
/**
* @brief Disable the AHB RAM2 high 16K Bytes shut-off in Stop mode
* @rmtoll PMCR SRAM2_16HSO LL_PWR_DisableAHBRAM2_High_16K_ShutOff
* @retval None
*/
__STATIC_INLINE void LL_PWR_DisableAHBRAM2_High_16K_ShutOff(void)
{
CLEAR_BIT(PWR->PMCR, PWR_PMCR_SRAM2_16HSO);
}
/**
* @brief Check if the high AHB RAM2 shut-off in Stop mode is enabled
* @rmtoll PMCR SRAM2_16HSO LL_PWR_IsEnabledAHBRAM2_16K_ShutOff
* @retval State of bit (1 or 0).
*/
__STATIC_INLINE uint32_t LL_PWR_IsEnabledAHBRAM2_High_16K_ShutOff(void)
{
return ((READ_BIT(PWR->PMCR, PWR_PMCR_SRAM2_16HSO) == (PWR_PMCR_SRAM2_16HSO)) ? 1UL : 0UL);
}
#endif /* PWR_PMCR_SRAM2_16HSO */
#if defined(PWR_PMCR_SRAM2_16LSO)
/**
* @brief Enable the AHB RAM2 low 16K Bytes shut-off in Stop mode
* @rmtoll PMCR SRAM2_16LSO LL_PWR_EnableAHBRAM2_Low_16K_ShutOff
* @retval None
*/
__STATIC_INLINE void LL_PWR_EnableAHBRAM2_Low_16K_ShutOff(void)
{
SET_BIT(PWR->PMCR, PWR_PMCR_SRAM2_16LSO);
}
/**
* @brief Disable the AHB RAM2 low 16K Bytes shut-off in Stop mode
* @rmtoll PMCR SRAM2_16LSO LL_PWR_DisableAHBRAM2_Low_16K_ShutOff
* @retval None
*/
__STATIC_INLINE void LL_PWR_DisableAHBRAM2_Low_16K_ShutOff(void)
{
CLEAR_BIT(PWR->PMCR, PWR_PMCR_SRAM2_16LSO);
}
/**
* @brief Check if the low 16K AHB RAM2 shut-off in Stop mode is enabled
* @rmtoll PMCR SRAM2_16LSO LL_PWR_IsEnabledAHBRAM2_Low_16K_ShutOff
* @retval State of bit (1 or 0).
*/
__STATIC_INLINE uint32_t LL_PWR_IsEnabledAHBRAM2_Low_16K_ShutOff(void)
{
return ((READ_BIT(PWR->PMCR, PWR_PMCR_SRAM2_16LSO) == (PWR_PMCR_SRAM2_16LSO)) ? 1UL : 0UL);
}
#endif /* PWR_PMCR_SRAM2_16LSO */
#if defined (PWR_PMCR_SRAM2SO)
/**
* @brief Enable the AHB RAM2 shut-off in Stop mode
* @rmtoll PMCR SRAM2SO LL_PWR_EnableAHBRAM2ShutOff
* @retval None
*/
__STATIC_INLINE void LL_PWR_EnableAHBRAM2ShutOff(void)
{
SET_BIT(PWR->PMCR, PWR_PMCR_SRAM2SO);
}
/**
* @brief Disable the AHB RAM2 shut-off in Stop mode
* @rmtoll PMCR SRAM2SO LL_PWR_DisableAHBRAM2ShutOff
* @retval None
*/
__STATIC_INLINE void LL_PWR_DisableAHBRAM2ShutOff(void)
{
CLEAR_BIT(PWR->PMCR, PWR_PMCR_SRAM2SO);
}
/**
* @brief Check if the AHB RAM2 shut-off in Stop mode is enabled
* @rmtoll PMCR SRAM2SO LL_PWR_IsEnabledAHBRAM2ShutOff
* @retval State of bit (1 or 0).
*/
__STATIC_INLINE uint32_t LL_PWR_IsEnabledAHBRAM2ShutOff(void)
{
return ((READ_BIT(PWR->PMCR, PWR_PMCR_SRAM2SO) == (PWR_PMCR_SRAM2SO)) ? 1UL : 0UL);
}
#endif /* PWR_PMCR_SRAM2SO */
#if defined (PWR_PMCR_SRAM3SO)
/**
* @brief Enable the AHB RAM3 shut-off in Stop mode
* @rmtoll PMCR SRAM3SO LL_PWR_EnableAHBRAM3ShutOff
* @retval None
*/
__STATIC_INLINE void LL_PWR_EnableAHBRAM3ShutOff(void)
{
SET_BIT(PWR->PMCR, PWR_PMCR_SRAM3SO);
}
/**
* @brief Disable the AHB RAM3 shut-off in Stop mode
* @rmtoll PMCR SRAM3SO LL_PWR_DisableAHBRAM3ShutOff
* @retval None
*/
__STATIC_INLINE void LL_PWR_DisableAHBRAM3ShutOff(void)
{
CLEAR_BIT(PWR->PMCR, PWR_PMCR_SRAM3SO);
}
/**
* @brief Check if the AHB RAM3 shut-off in Stop mode is enabled
* @rmtoll PMCR SRAM3SO LL_PWR_IsEnabledAHBRAM3ShutOff
* @retval State of bit (1 or 0).
*/
__STATIC_INLINE uint32_t LL_PWR_IsEnabledAHBRAM3ShutOff(void)
{
return ((READ_BIT(PWR->PMCR, PWR_PMCR_SRAM3SO) == (PWR_PMCR_SRAM3SO)) ? 1UL : 0UL);
}
#endif /* PWR_PMCR_SRAM3SO */
#if defined (PWR_PMCR_ETHERNETSO)
/**
* @brief Enable the ETHERNET RAM shut-off in Stop mode
* @rmtoll PMCR ETHERNETSO LL_PWR_EnableETHERNETRAMShutOff
* @retval None
*/
__STATIC_INLINE void LL_PWR_EnableETHERNETRAMShutOff(void)
{
SET_BIT(PWR->PMCR, PWR_PMCR_ETHERNETSO);
}
/**
* @brief Disable the ETHERNET RAM shut-off in Stop mode
* @rmtoll PMCR ETHERNETSO LL_PWR_DisableETHERNETRAMShutOff
* @retval None
*/
__STATIC_INLINE void LL_PWR_DisableETHERNETRAMShutOff(void)
{
CLEAR_BIT(PWR->PMCR, PWR_PMCR_ETHERNETSO);
}
/**
* @brief Check if the ETHERNET RAM shut-off in Stop mode is enabled
* @rmtoll PMCR ETHERNETSO LL_PWR_IsEnabledETHERNETRAMShutOff
* @retval State of bit (1 or 0).
*/
__STATIC_INLINE uint32_t LL_PWR_IsEnabledETHERNETRAMShutOff(void)
{
return ((READ_BIT(PWR->PMCR, PWR_PMCR_ETHERNETSO) == (PWR_PMCR_ETHERNETSO)) ? 1UL : 0UL);
}
#endif /* PWR_PMCR_ETHERNETSO */
/**
* @brief Set the regulator supply output voltage.
* @rmtoll VOSCR VOS LL_PWR_SetRegulVoltageScaling
* @param VoltageScaling This parameter can be one of the following values:
* @arg @ref LL_PWR_REGU_VOLTAGE_SCALE0
* @arg @ref LL_PWR_REGU_VOLTAGE_SCALE1
* @arg @ref LL_PWR_REGU_VOLTAGE_SCALE2
* @arg @ref LL_PWR_REGU_VOLTAGE_SCALE3
* @retval None
*/
__STATIC_INLINE void LL_PWR_SetRegulVoltageScaling(uint32_t VoltageScaling)
{
MODIFY_REG(PWR->VOSCR, PWR_VOSCR_VOS, VoltageScaling);
}
/**
* @brief Get the regulator supply output voltage.
* @rmtoll VOSCR VOS LL_PWR_GetRegulVoltageScaling
* @retval Returned value can be one of the following values:
* @arg @ref LL_PWR_REGU_VOLTAGE_SCALE0
* @arg @ref LL_PWR_REGU_VOLTAGE_SCALE1
* @arg @ref LL_PWR_REGU_VOLTAGE_SCALE2
* @arg @ref LL_PWR_REGU_VOLTAGE_SCALE3
*/
__STATIC_INLINE uint32_t LL_PWR_GetRegulVoltageScaling(void)
{
return (uint32_t)(READ_BIT(PWR->VOSCR, PWR_VOSCR_VOS));
}
/**
* @brief Get currently voltage scaling applied to VCORE.
* @rmtoll VOSSR ACTVOS[1:0] LL_PWR_GetCurrentVOS
* @retval Returned value can be one of the following values:
* @arg @ref LL_PWR_REGU_VOLTAGE_SCALE0
* @arg @ref LL_PWR_REGU_VOLTAGE_SCALE1
* @arg @ref LL_PWR_REGU_VOLTAGE_SCALE2
* @arg @ref LL_PWR_REGU_VOLTAGE_SCALE3
*/
__STATIC_INLINE uint32_t LL_PWR_GetCurrentVOS(void)
{
return (READ_BIT(PWR->VOSSR, PWR_VOSSR_ACTVOS));
}
/**
* @brief Enable Backup Regulator
* @rmtoll BDCR BREN LL_PWR_EnableBkUpRegulator
* @note When set, the Backup Regulator (used to maintain backup SRAM content in Standby and
* VBAT modes) is enabled. If BRE is reset, the backup Regulator is switched off. The backup
* SRAM can still be used but its content will be lost in the Standby and VBAT modes. Once set,
* the application must wait that the Backup Regulator Ready flag (BRR) is set to indicate that
* the data written into the RAM will be maintained in the Standby and VBAT modes.
* @retval None
*/
__STATIC_INLINE void LL_PWR_EnableBkUpRegulator(void)
{
SET_BIT(PWR->BDCR, PWR_BDCR_BREN);
}
/**
* @brief Disable Backup Regulator
* @rmtoll BDCR BREN LL_PWR_DisableBkUpRegulator
* @retval None
*/
__STATIC_INLINE void LL_PWR_DisableBkUpRegulator(void)
{
CLEAR_BIT(PWR->BDCR, PWR_BDCR_BREN);
}
/**
* @brief Check if the backup Regulator is enabled
* @rmtoll BDCR BREN LL_PWR_IsEnabledBkUpRegulator
* @retval State of bit (1 or 0).
*/
__STATIC_INLINE uint32_t LL_PWR_IsEnabledBkUpRegulator(void)
{
return ((READ_BIT(PWR->BDCR, PWR_BDCR_BREN) == (PWR_BDCR_BREN)) ? 1UL : 0UL);
}
/**
* @brief Enable VBAT and Temperature monitoring
* @rmtoll BDCR MONEN LL_PWR_EnableMonitoring
* @retval None
*/
__STATIC_INLINE void LL_PWR_EnableMonitoring(void)
{
SET_BIT(PWR->BDCR, PWR_BDCR_MONEN);
}
/**
* @brief Disable VBAT and Temperature monitoring
* @rmtoll BDCR MONEN LL_PWR_DisableMonitoring
* @retval None
*/
__STATIC_INLINE void LL_PWR_DisableMonitoring(void)
{
CLEAR_BIT(PWR->BDCR, PWR_BDCR_MONEN);
}
/**
* @brief Check if the VBAT and Temperature monitoring is enabled
* @rmtoll BDCR MONEN LL_PWR_IsEnabledMonitoring
* @retval State of bit (1 or 0).
*/
__STATIC_INLINE uint32_t LL_PWR_IsEnabledMonitoring(void)
{
return ((READ_BIT(PWR->BDCR, PWR_BDCR_MONEN) == (PWR_BDCR_MONEN)) ? 1UL : 0UL);
}
/**
* @brief Enable battery charging
* @rmtoll BDCR VBE LL_PWR_EnableBatteryCharging
* @retval None
*/
__STATIC_INLINE void LL_PWR_EnableBatteryCharging(void)
{
SET_BIT(PWR->BDCR, PWR_BDCR_VBE);
}
/**
* @brief Disable battery charging
* @rmtoll BDCR VBE LL_PWR_DisableBatteryCharging
* @retval None
*/
__STATIC_INLINE void LL_PWR_DisableBatteryCharging(void)
{
CLEAR_BIT(PWR->BDCR, PWR_BDCR_VBE);
}
/**
* @brief Check if battery charging is enabled
* @rmtoll BDCR VBE LL_PWR_IsEnabledBatteryCharging
* @retval State of bit (1 or 0).
*/
__STATIC_INLINE uint32_t LL_PWR_IsEnabledBatteryCharging(void)
{
return ((READ_BIT(PWR->BDCR, PWR_BDCR_VBE) == (PWR_BDCR_VBE)) ? 1UL : 0UL);
}
/**
* @brief Set the Battery charge resistor impedance
* @rmtoll BDCR VBRS LL_PWR_SetBattChargResistor
* @param Resistor This parameter can be one of the following values:
* @arg @ref LL_PWR_BATT_CHARG_RESISTOR_5K
* @arg @ref LL_PWR_BATT_CHARG_RESISTOR_1_5K
* @retval None
*/
__STATIC_INLINE void LL_PWR_SetBattChargResistor(uint32_t Resistor)
{
MODIFY_REG(PWR->BDCR, PWR_BDCR_VBRS, Resistor);
}
/**
* @brief Get the Battery charge resistor impedance
* @rmtoll BDCR VBRS LL_PWR_GetBattChargResistor
* @retval Returned value can be one of the following values:
* @arg @ref LL_PWR_BATT_CHARG_RESISTOR_5K
* @arg @ref LL_PWR_BATT_CHARG_RESISTOR_1_5K
*/
__STATIC_INLINE uint32_t LL_PWR_GetBattChargResistor(void)
{
return (uint32_t)(READ_BIT(PWR->BDCR, PWR_BDCR_VBRS));
}
/**
* @brief Enable access to the backup domain
* @rmtoll DBPCR DBP LL_PWR_EnableBkUpAccess
* @retval None
*/
__STATIC_INLINE void LL_PWR_EnableBkUpAccess(void)
{
SET_BIT(PWR->DBPCR, PWR_DBPCR_DBP);
}
/**
* @brief Disable access to the backup domain
* @rmtoll DBPCR DBP LL_PWR_DisableBkUpAccess
* @retval None
*/
__STATIC_INLINE void LL_PWR_DisableBkUpAccess(void)
{
CLEAR_BIT(PWR->DBPCR, PWR_DBPCR_DBP);
}
/**
* @brief Check if the backup domain is enabled
* @rmtoll DBPCR DBP LL_PWR_IsEnabledBkUpAccess
* @retval State of bit (1 or 0).
*/
__STATIC_INLINE uint32_t LL_PWR_IsEnabledBkUpAccess(void)
{
return ((READ_BIT(PWR->DBPCR, PWR_DBPCR_DBP) == (PWR_DBPCR_DBP)) ? 1UL : 0UL);
}
#if defined (PWR_UCPDR_UCPD_STBY)
/**
* @brief Enable the USB type-C and power delivery memorization in Standby
* mode.
* @note This function must be called just before entering Standby mode.
* @rmtoll UCPDR UCPD_STDBY LL_PWR_EnableUCPDStandbyMode
* @retval None
*/
__STATIC_INLINE void LL_PWR_EnableUCPDStandbyMode(void)
{
SET_BIT(PWR->UCPDR, PWR_UCPDR_UCPD_STBY);
}
/**
* @brief Disable the USB type-C and power delivery memorization in Standby
* mode.
* @note This function must be called after exiting Standby mode and before
* any UCPD configuration update.
* @rmtoll UCPDR UCPD_STDBY LL_PWR_DisableUCPDStandbyMode
* @retval None
*/
__STATIC_INLINE void LL_PWR_DisableUCPDStandbyMode(void)
{
CLEAR_BIT(PWR->UCPDR, PWR_UCPDR_UCPD_STBY);
}
/**
* @brief Check if the USB Type-C and Power Delivery Standby mode memorization
* is enabled.
* @rmtoll UCPDR UCPD_STDBY LL_PWR_IsEnabledUCPDStandbyMode
* @retval State of bit (1 or 0).
*/
__STATIC_INLINE uint32_t LL_PWR_IsEnabledUCPDStandbyMode(void)
{
return ((READ_BIT(PWR->UCPDR, PWR_UCPDR_UCPD_STBY) == (PWR_UCPDR_UCPD_STBY)) ? 1UL : 0UL);
}
#endif /* PWR_UCPDR_UCPD_STBY */
#if defined (PWR_UCPDR_UCPD_DBDIS)
/**
* @brief Enable the USB Type-C and power delivery dead battery pull-down behavior
* on UCPD CC1 and CC2 pins.
* @note After exiting reset, the USB Type-C dead battery behavior is enabled,
* which may have a pull-down effect on CC1 and CC2 pins. It is recommended
* to disable it in all cases, either to stop this pull-down or to hand over
* control to the UCPD (which should therefore be initialized before doing the disable).
* @rmtoll UCPDR UCPD_DBDIS LL_PWR_EnableUCPDDeadBattery
* @retval None
*/
__STATIC_INLINE void LL_PWR_EnableUCPDDeadBattery(void)
{
CLEAR_BIT(PWR->UCPDR, PWR_UCPDR_UCPD_DBDIS);
}
/**
* @brief Disable the USB Type-C and power delivery dead battery pull-down behavior
* on UCPD CC1 and CC2 pins.
* @note After exiting reset, the USB Type-C dead battery behavior is enabled,
* which may have a pull-down effect on CC1 and CC2 pins. It is recommended
* to disable it in all cases, either to stop this pull-down or to hand over
* control to the UCPD (which should therefore be initialized before doing the disable).
* @rmtoll UCPDR UCPD_DBDIS LL_PWR_DisableUCPDDeadBattery
* @retval None
*/
__STATIC_INLINE void LL_PWR_DisableUCPDDeadBattery(void)
{
SET_BIT(PWR->UCPDR, PWR_UCPDR_UCPD_DBDIS);
}
/**
* @brief Check the USB Type-C and power delivery dead battery pull-down behavior
* on UCPD CC1 and CC2 pins.
* @note After exiting reset, the USB Type-C dead battery behavior is enabled,
* which may have a pull-down effect on CC1 and CC2 pins. It is recommended
* to disable it in all cases, either to stop this pull-down or to hand over
* control to the UCPD (which should therefore be initialized before doing the disable).
* @rmtoll UCPDR UCPD_DBDIS LL_PWR_IsEnabledUCPDDeadBattery
* @retval State of feature (1 : enabled; 0 : disabled).
*/
__STATIC_INLINE uint32_t LL_PWR_IsEnabledUCPDDeadBattery(void)
{
return ((READ_BIT(PWR->UCPDR, PWR_UCPDR_UCPD_DBDIS) == (PWR_UCPDR_UCPD_DBDIS)) ? 0UL : 1UL);
}
#endif /* PWR_UCPDR_UCPD_DBDIS */
/**
* @brief Configure the PWR supply
* @rmtoll SCCR BYPASS LL_PWR_ConfigSupply
* @param SupplySource This parameter can be one of the following values:
* @arg @ref LL_PWR_EXTERNAL_SOURCE_SUPPLY
* @retval None
*/
__STATIC_INLINE void LL_PWR_ConfigSupply(uint32_t SupplySource)
{
/* Set the power supply configuration */
MODIFY_REG(PWR->SCCR, (PWR_SCCR_BYPASS), SupplySource);
}
/**
* @brief Get the PWR supply
* @rmtoll SCCR BYPASS LL_PWR_GetSupply
* @retval The supply configuration.
*/
__STATIC_INLINE uint32_t LL_PWR_GetSupply(void)
{
#if defined (PWR_SCCR_SMPSEN)
/* Get the power supply configuration */
return (uint32_t)(READ_BIT(PWR->SCCR, (PWR_SCCR_SMPSEN | PWR_SCCR_LDOEN | PWR_SCCR_BYPASS)));
#else
/* Get the power supply configuration */
return (uint32_t)(READ_BIT(PWR->SCCR, (PWR_SCCR_LDOEN | PWR_SCCR_BYPASS)));
#endif /* PWR_SCCR_SMPSEN */
}
/**
* @brief Enable Power Voltage Detector
* @rmtoll VMCR PVDEN LL_PWR_EnablePVD
* @retval None
*/
__STATIC_INLINE void LL_PWR_EnablePVD(void)
{
SET_BIT(PWR->VMCR, PWR_VMCR_PVDEN);
}
/**
* @brief Disable Power Voltage Detector
* @rmtoll VMCR PVDEN LL_PWR_DisablePVD
* @retval None
*/
__STATIC_INLINE void LL_PWR_DisablePVD(void)
{
CLEAR_BIT(PWR->VMCR, PWR_VMCR_PVDEN);
}
/**
* @brief Check if Power Voltage Detector is enabled
* @rmtoll VMCR PVDEN LL_PWR_IsEnabledPVD
* @retval State of bit (1 or 0).
*/
__STATIC_INLINE uint32_t LL_PWR_IsEnabledPVD(void)
{
return ((READ_BIT(PWR->VMCR, PWR_VMCR_PVDEN) == (PWR_VMCR_PVDEN)) ? 1UL : 0UL);
}
/**
* @brief Configure the voltage threshold detected by the Power Voltage Detector
* @rmtoll VMCR PLS LL_PWR_SetPVDLevel
* @param PVDLevel This parameter can be one of the following values:
* @arg @ref LL_PWR_PVDLEVEL_0
* @arg @ref LL_PWR_PVDLEVEL_1
* @arg @ref LL_PWR_PVDLEVEL_2
* @arg @ref LL_PWR_PVDLEVEL_3
* @arg @ref LL_PWR_PVDLEVEL_4
* @arg @ref LL_PWR_PVDLEVEL_5
* @arg @ref LL_PWR_PVDLEVEL_6
* @arg @ref LL_PWR_PVDLEVEL_7
* @retval None
*/
__STATIC_INLINE void LL_PWR_SetPVDLevel(uint32_t PVDLevel)
{
MODIFY_REG(PWR->VMCR, PWR_VMCR_PLS, PVDLevel);
}
/**
* @brief Get the voltage threshold detection
* @rmtoll VMCR PLS LL_PWR_GetPVDLevel
* @retval Returned value can be one of the following values:
* @arg @ref LL_PWR_PVDLEVEL_0
* @arg @ref LL_PWR_PVDLEVEL_1
* @arg @ref LL_PWR_PVDLEVEL_2
* @arg @ref LL_PWR_PVDLEVEL_3
* @arg @ref LL_PWR_PVDLEVEL_4
* @arg @ref LL_PWR_PVDLEVEL_5
* @arg @ref LL_PWR_PVDLEVEL_6
* @arg @ref LL_PWR_PVDLEVEL_7
*/
__STATIC_INLINE uint32_t LL_PWR_GetPVDLevel(void)
{
return (uint32_t)(READ_BIT(PWR->VMCR, PWR_VMCR_PLS));
}
/**
* @brief Enable Analog Power Voltage Detector
* @rmtoll VMCR AVDEN LL_PWR_EnableAVD
* @retval None
*/
__STATIC_INLINE void LL_PWR_EnableAVD(void)
{
SET_BIT(PWR->VMCR, PWR_VMCR_AVDEN);
}
/**
* @brief Disable Analog Power Voltage Detector
* @rmtoll VMCR AVDEN LL_PWR_DisableAVD
* @retval None
*/
__STATIC_INLINE void LL_PWR_DisableAVD(void)
{
CLEAR_BIT(PWR->VMCR, PWR_VMCR_AVDEN);
}
/**
* @brief Check if Analog Power Voltage Detector is enabled
* @rmtoll VMCR AVDEN LL_PWR_IsEnabledAVD
* @retval State of bit (1 or 0).
*/
__STATIC_INLINE uint32_t LL_PWR_IsEnabledAVD(void)
{
return ((READ_BIT(PWR->VMCR, PWR_VMCR_AVDEN) == (PWR_VMCR_AVDEN)) ? 1UL : 0UL);
}
/**
* @brief Configure the voltage threshold to be detected by the Analog Power Voltage Detector
* @rmtoll VMCR ALS LL_PWR_SetAVDLevel
* @param AVDLevel This parameter can be one of the following values:
* @arg @ref LL_PWR_AVDLEVEL_0
* @arg @ref LL_PWR_AVDLEVEL_1
* @arg @ref LL_PWR_AVDLEVEL_2
* @arg @ref LL_PWR_AVDLEVEL_3
* @retval None
*/
__STATIC_INLINE void LL_PWR_SetAVDLevel(uint32_t AVDLevel)
{
MODIFY_REG(PWR->VMCR, PWR_VMCR_ALS, AVDLevel);
}
/**
* @brief Get the Analog Voltage threshold to be detected by the Analog Power Voltage Detector
* @rmtoll CR1 ALS LL_PWR_GetAVDLevel
* @retval Returned value can be one of the following values:
* @arg @ref LL_PWR_AVDLEVEL_0
* @arg @ref LL_PWR_AVDLEVEL_1
* @arg @ref LL_PWR_AVDLEVEL_2
* @arg @ref LL_PWR_AVDLEVEL_3
*/
__STATIC_INLINE uint32_t LL_PWR_GetAVDLevel(void)
{
return (uint32_t)(READ_BIT(PWR->VMCR, PWR_VMCR_ALS));
}
#if defined (PWR_USBSCR_USB33DEN)
/**
* @brief Enable the USB voltage detector
* @rmtoll USBSCR USB33DEN LL_PWR_EnableUSBVoltageDetector
* @retval None
*/
__STATIC_INLINE void LL_PWR_EnableUSBVoltageDetector(void)
{
SET_BIT(PWR->USBSCR, PWR_USBSCR_USB33DEN);
}
/**
* @brief Disable the USB voltage detector
* @rmtoll USBSCR USB33DEN LL_PWR_DisableUSBVoltageDetector
* @retval None
*/
__STATIC_INLINE void LL_PWR_DisableUSBVoltageDetector(void)
{
CLEAR_BIT(PWR->USBSCR, PWR_USBSCR_USB33DEN);
}
/**
* @brief Check if the USB voltage detector is enabled
* @rmtoll USBSCR USB33DEN LL_PWR_IsEnabledUSBVoltageDetector
* @retval State of bit (1 or 0).
*/
__STATIC_INLINE uint32_t LL_PWR_IsEnabledUSBVoltageDetector(void)
{
return ((READ_BIT(PWR->USBSCR, PWR_USBSCR_USB33DEN) == (PWR_USBSCR_USB33DEN)) ? 1UL : 0UL);
}
/**
* @brief Enable the independent USB supply.
* @rmtoll USBSCR USB33SV LL_PWR_EnableVddUSB
* @retval None
*/
__STATIC_INLINE void LL_PWR_EnableVddUSB(void)
{
SET_BIT(PWR->USBSCR, PWR_USBSCR_USB33SV);
}
#define LL_PWR_EnableVDDUSB LL_PWR_EnableVddUSB /* for API backward compatibility */
/**
* @brief Disable the independent USB supply.
* @rmtoll USBSCR USB33SV LL_PWR_DisableVddUSB
* @retval None
*/
__STATIC_INLINE void LL_PWR_DisableVddUSB(void)
{
CLEAR_BIT(PWR->USBSCR, PWR_USBSCR_USB33SV);
}
#define LL_PWR_DisableVDDUSB LL_PWR_DisableVddUSB /* for API backward compatibility */
/**
* @brief Check if the independent USB supply is enabled.
* @rmtoll USBSCR USB33SV LL_PWR_IsEnabledVddUSB
* @retval State of bit (1 or 0).
*/
__STATIC_INLINE uint32_t LL_PWR_IsEnabledVddUSB(void)
{
return ((READ_BIT(PWR->USBSCR, PWR_USBSCR_USB33SV) == (PWR_USBSCR_USB33SV)) ? 1UL : 0UL);
}
#define LL_PWR_IsEnabledVDDUSB LL_PWR_IsEnabledVddUSB /* for API backward compatibility */
#endif /* PWR_USBSCR_USB33DEN */
/**
* @brief Enable the wake up pin_x.
* @rmtoll WUCR WUPENx LL_PWR_EnableWakeUpPin
* @param WakeUpPin This parameter can be a combination of the following values:
* @arg @ref LL_PWR_WAKEUP_PIN1
* @arg @ref LL_PWR_WAKEUP_PIN2
* @arg @ref LL_PWR_WAKEUP_PIN3
* @arg @ref LL_PWR_WAKEUP_PIN4
* @arg @ref LL_PWR_WAKEUP_PIN5
* @arg @ref LL_PWR_WAKEUP_PIN6
* @arg @ref LL_PWR_WAKEUP_PIN7
* @arg @ref LL_PWR_WAKEUP_PIN8
* @retval None
*/
__STATIC_INLINE void LL_PWR_EnableWakeUpPin(uint32_t WakeUpPin)
{
SET_BIT(PWR->WUCR, WakeUpPin);
}
/**
* @brief Disable the wake up pin_x.
* @rmtoll WUCR WUPENx LL_PWR_DisableWakeUpPin
* @param WakeUpPin This parameter can be a combination of the following values:
* @arg @ref LL_PWR_WAKEUP_PIN1
* @arg @ref LL_PWR_WAKEUP_PIN2
* @arg @ref LL_PWR_WAKEUP_PIN3
* @arg @ref LL_PWR_WAKEUP_PIN4
* @arg @ref LL_PWR_WAKEUP_PIN5
* @arg @ref LL_PWR_WAKEUP_PIN6
* @arg @ref LL_PWR_WAKEUP_PIN7
* @arg @ref LL_PWR_WAKEUP_PIN8
* @retval None
*/
__STATIC_INLINE void LL_PWR_DisableWakeUpPin(uint32_t WakeUpPin)
{
CLEAR_BIT(PWR->WUCR, WakeUpPin);
}
/**
* @brief Check if the wake up pin_x is enabled.
* @rmtoll WUCR WUPPx LL_PWR_IsEnabledWakeUpPin
* @param WakeUpPin This parameter can be one of the following values:
* @arg @ref LL_PWR_WAKEUP_PIN1
* @arg @ref LL_PWR_WAKEUP_PIN2
* @arg @ref LL_PWR_WAKEUP_PIN3
* @arg @ref LL_PWR_WAKEUP_PIN4
* @arg @ref LL_PWR_WAKEUP_PIN5
* @arg @ref LL_PWR_WAKEUP_PIN6
* @arg @ref LL_PWR_WAKEUP_PIN7
* @arg @ref LL_PWR_WAKEUP_PIN8
* @retval State of bit (1 or 0).
*/
__STATIC_INLINE uint32_t LL_PWR_IsEnabledWakeUpPin(uint32_t WakeUpPin)
{
return ((READ_BIT(PWR->WUCR, WakeUpPin) == (WakeUpPin)) ? 1UL : 0UL);
}
/**
* @brief Set the Wake-Up pin polarity low for the event detection
* @rmtoll WUCR WKUPP1 LL_PWR_SetWakeUpPinPolarityLow\n
* WUCR WKUPP2 LL_PWR_SetWakeUpPinPolarityLow\n
* WUCR WKUPP3 LL_PWR_SetWakeUpPinPolarityLow\n
* WUCR WKUPP4 LL_PWR_SetWakeUpPinPolarityLow\n
* WUCR WKUPP5 LL_PWR_SetWakeUpPinPolarityLow\n
* WUCR WKUPP6 LL_PWR_SetWakeUpPinPolarityLow\n
* WUCR WKUPP7 LL_PWR_SetWakeUpPinPolarityLow\n
* WUCR WKUPP8 LL_PWR_SetWakeUpPinPolarityLow
* @param WakeUpPin This parameter can be one of the following values:
* @arg @ref LL_PWR_WAKEUP_PIN1
* @arg @ref LL_PWR_WAKEUP_PIN2
* @arg @ref LL_PWR_WAKEUP_PIN3
* @arg @ref LL_PWR_WAKEUP_PIN4
* @arg @ref LL_PWR_WAKEUP_PIN5
* @arg @ref LL_PWR_WAKEUP_PIN6
* @arg @ref LL_PWR_WAKEUP_PIN7
* @arg @ref LL_PWR_WAKEUP_PIN8
* @retval None
*/
__STATIC_INLINE void LL_PWR_SetWakeUpPinPolarityLow(uint32_t WakeUpPin)
{
SET_BIT(PWR->WUCR, (WakeUpPin << PWR_WUCR_WUPP1_Pos));
}
/**
* @brief Set the Wake-Up pin polarity high for the event detection
* @rmtoll WUCR WKUPP1 LL_PWR_SetWakeUpPinPolarityHigh\n
* WUCR WKUPP2 LL_PWR_SetWakeUpPinPolarityHigh\n
* WUCR WKUPP3 LL_PWR_SetWakeUpPinPolarityHigh\n
* WUCR WKUPP4 LL_PWR_SetWakeUpPinPolarityHigh\n
* WUCR WKUPP5 LL_PWR_SetWakeUpPinPolarityHigh\n
* WUCR WKUPP6 LL_PWR_SetWakeUpPinPolarityHigh\n
* WUCR WKUPP7 LL_PWR_SetWakeUpPinPolarityHigh\n
* WUCR WKUPP8 LL_PWR_SetWakeUpPinPolarityHigh
* @param WakeUpPin This parameter can be one of the following values:
* @arg @ref LL_PWR_WAKEUP_PIN1
* @arg @ref LL_PWR_WAKEUP_PIN2
* @arg @ref LL_PWR_WAKEUP_PIN3
* @arg @ref LL_PWR_WAKEUP_PIN4
* @arg @ref LL_PWR_WAKEUP_PIN5
* @arg @ref LL_PWR_WAKEUP_PIN6
* @arg @ref LL_PWR_WAKEUP_PIN7
* @arg @ref LL_PWR_WAKEUP_PIN8
* @retval None
*/
__STATIC_INLINE void LL_PWR_SetWakeUpPinPolarityHigh(uint32_t WakeUpPin)
{
CLEAR_BIT(PWR->WUCR, (WakeUpPin << PWR_WUCR_WUPP1_Pos));
}
/**
* @brief Get the Wake-Up pin polarity for the event detection
* @rmtoll WUCR WUPP1 LL_PWR_SetWakeUpPinPolarityLow\n
* WUCR WUPP2 LL_PWR_SetWakeUpPinPolarityLow\n
* WUCR WUPP3 LL_PWR_SetWakeUpPinPolarityLow\n
* WUCR WUPP4 LL_PWR_SetWakeUpPinPolarityLow\n
* WUCR WUPP5 LL_PWR_SetWakeUpPinPolarityLow\n
* WUCR WUPP6 LL_PWR_SetWakeUpPinPolarityLow\n
* WUCR WUPP7 LL_PWR_SetWakeUpPinPolarityLow\n
* WUCR WUPP8 LL_PWR_SetWakeUpPinPolarityLow
* @param WakeUpPin This parameter can be one of the following values:
* @arg @ref LL_PWR_WAKEUP_PIN1
* @arg @ref LL_PWR_WAKEUP_PIN2
* @arg @ref LL_PWR_WAKEUP_PIN3
* @arg @ref LL_PWR_WAKEUP_PIN4
* @arg @ref LL_PWR_WAKEUP_PIN5
* @arg @ref LL_PWR_WAKEUP_PIN6
* @arg @ref LL_PWR_WAKEUP_PIN7
* @arg @ref LL_PWR_WAKEUP_PIN8
* @retval State of bit (1 or 0).
*/
__STATIC_INLINE uint32_t LL_PWR_IsWakeUpPinPolarityLow(uint32_t WakeUpPin)
{
return ((READ_BIT(PWR->WUCR, (WakeUpPin << PWR_WUCR_WUPP1_Pos)) == (WakeUpPin << PWR_WUCR_WUPP1_Pos)) ? 1UL : 0UL);
}
/**
* @brief Set the Wake-Up pin Pull None
* @rmtoll WUCR WUPPUPD1 LL_PWR_SetWakeUpPinPullNone\n
* WUCR WUPPUPD2 LL_PWR_SetWakeUpPinPullNone\n
* WUCR WUPPUPD3 LL_PWR_SetWakeUpPinPullNone\n
* WUCR WUPPUPD4 LL_PWR_SetWakeUpPinPullNone\n
* WUCR WUPPUPD5 LL_PWR_SetWakeUpPinPullNone\n
* WUCR WUPPUPD6 LL_PWR_SetWakeUpPinPullNone\n
* WUCR WUPPUPD7 LL_PWR_SetWakeUpPinPullNone\n
* WUCR WUPPUPD8 LL_PWR_SetWakeUpPinPullNone
* @param WakeUpPin This parameter can be one of the following values:
* @arg @ref LL_PWR_WAKEUP_PIN1
* @arg @ref LL_PWR_WAKEUP_PIN2
* @arg @ref LL_PWR_WAKEUP_PIN3
* @arg @ref LL_PWR_WAKEUP_PIN4
* @arg @ref LL_PWR_WAKEUP_PIN5
* @arg @ref LL_PWR_WAKEUP_PIN6
* @arg @ref LL_PWR_WAKEUP_PIN7
* @arg @ref LL_PWR_WAKEUP_PIN8
*
* @retval None
*/
__STATIC_INLINE void LL_PWR_SetWakeUpPinPullNone(uint32_t WakeUpPin)
{
MODIFY_REG(PWR->WUCR,
(PWR_WUCR_WUPPUPD1 << ((LL_PWR_WAKEUP_PINS_PULL_SHIFT_OFFSET * (POSITION_VAL(WakeUpPin) & 0xFU)) & \
LL_PWR_WAKEUP_PINS_MAX_SHIFT_MASK)),
(LL_PWR_WAKEUP_PIN_NOPULL << ((PWR_WUCR_WUPPUPD1_Pos + ((LL_PWR_WAKEUP_PINS_PULL_SHIFT_OFFSET * \
POSITION_VAL(WakeUpPin)) & 0xFU)) & \
LL_PWR_WAKEUP_PINS_MAX_SHIFT_MASK)));
}
/**
* @brief Set the Wake-Up pin Pull Up
* @rmtoll WUCR WUPPUPD1 LL_PWR_SetWakeUpPinPullUp\n
* WUCR WUPPUPD2 LL_PWR_SetWakeUpPinPullUp\n
* WUCR WUPPUPD3 LL_PWR_SetWakeUpPinPullUp\n
* WUCR WUPPUPD4 LL_PWR_SetWakeUpPinPullUp\n
* WUCR WUPPUPD5 LL_PWR_SetWakeUpPinPullUp\n
* WUCR WUPPUPD6 LL_PWR_SetWakeUpPinPullUp\n
* WUCR WUPPUPD7 LL_PWR_SetWakeUpPinPullUp\n
* WUCR WUPPUPD8 LL_PWR_SetWakeUpPinPullUp
* @param WakeUpPin This parameter can be one of the following values:
* @arg @ref LL_PWR_WAKEUP_PIN1
* @arg @ref LL_PWR_WAKEUP_PIN2
* @arg @ref LL_PWR_WAKEUP_PIN3
* @arg @ref LL_PWR_WAKEUP_PIN4
* @arg @ref LL_PWR_WAKEUP_PIN5
* @arg @ref LL_PWR_WAKEUP_PIN6
* @arg @ref LL_PWR_WAKEUP_PIN7
* @arg @ref LL_PWR_WAKEUP_PIN8
*
*
* @retval None
*/
__STATIC_INLINE void LL_PWR_SetWakeUpPinPullUp(uint32_t WakeUpPin)
{
MODIFY_REG(PWR->WUCR,
(PWR_WUCR_WUPPUPD1 << ((LL_PWR_WAKEUP_PINS_PULL_SHIFT_OFFSET * (POSITION_VAL(WakeUpPin) & 0xFU)) & \
LL_PWR_WAKEUP_PINS_MAX_SHIFT_MASK)),
(LL_PWR_WAKEUP_PIN_PULLUP << ((PWR_WUCR_WUPPUPD1_Pos + ((LL_PWR_WAKEUP_PINS_PULL_SHIFT_OFFSET * \
POSITION_VAL(WakeUpPin)) & 0xFU)) & \
LL_PWR_WAKEUP_PINS_MAX_SHIFT_MASK)));
}
/**
* @brief Set the Wake-Up pin Pull Down
* @rmtoll WUCR WUPPUPD1 LL_PWR_SetWakeUpPinPullDown\n
* WUCR WUPPUPD2 LL_PWR_SetWakeUpPinPullDown\n
* WUCR WUPPUPD3 LL_PWR_SetWakeUpPinPullDown\n
* WUCR WUPPUPD4 LL_PWR_SetWakeUpPinPullDown\n
* WUCR WUPPUPD5 LL_PWR_SetWakeUpPinPullDown\n
* WUCR WUPPUPD6 LL_PWR_SetWakeUpPinPullDown\n
* WUCR WUPPUPD7 LL_PWR_SetWakeUpPinPullDown\n
* WUCR WUPPUPD8 LL_PWR_SetWakeUpPinPullDown
* @param WakeUpPin This parameter can be one of the following values:
* @arg @ref LL_PWR_WAKEUP_PIN1
* @arg @ref LL_PWR_WAKEUP_PIN2
* @arg @ref LL_PWR_WAKEUP_PIN3
* @arg @ref LL_PWR_WAKEUP_PIN4
* @arg @ref LL_PWR_WAKEUP_PIN5
* @arg @ref LL_PWR_WAKEUP_PIN6
* @arg @ref LL_PWR_WAKEUP_PIN7
* @arg @ref LL_PWR_WAKEUP_PIN8
*
* @retval None
*/
__STATIC_INLINE void LL_PWR_SetWakeUpPinPullDown(uint32_t WakeUpPin)
{
MODIFY_REG(PWR->WUCR,
(PWR_WUCR_WUPPUPD1 << ((LL_PWR_WAKEUP_PINS_PULL_SHIFT_OFFSET * (POSITION_VAL(WakeUpPin) & 0xFU)) & \
LL_PWR_WAKEUP_PINS_MAX_SHIFT_MASK)),
(LL_PWR_WAKEUP_PIN_PULLDOWN << ((PWR_WUCR_WUPPUPD1_Pos + ((LL_PWR_WAKEUP_PINS_PULL_SHIFT_OFFSET * \
POSITION_VAL(WakeUpPin)) & 0xFU)) & \
LL_PWR_WAKEUP_PINS_MAX_SHIFT_MASK)));
}
/**
* @brief Get the Wake-Up pin pull
* @rmtoll WUCR WUPPUPD1 LL_PWR_GetWakeUpPinPull\n
* WUCR WUPPUPD2 LL_PWR_GetWakeUpPinPull\n
* WUCR WUPPUPD3 LL_PWR_GetWakeUpPinPull\n
* WUCR WUPPUPD4 LL_PWR_GetWakeUpPinPull\n
* WUCR WUPPUPD5 LL_PWR_GetWakeUpPinPull\n
* WUCR WUPPUPD7 LL_PWR_GetWakeUpPinPull\n
* WUCR WUPPUPD7 LL_PWR_GetWakeUpPinPull\n
* WUCR WUPPUPD8 LL_PWR_GetWakeUpPinPull
* @param WakeUpPin This parameter can be one of the following values:
* @arg @ref LL_PWR_WAKEUP_PIN1
* @arg @ref LL_PWR_WAKEUP_PIN2
* @arg @ref LL_PWR_WAKEUP_PIN3
* @arg @ref LL_PWR_WAKEUP_PIN4
* @arg @ref LL_PWR_WAKEUP_PIN5
* @arg @ref LL_PWR_WAKEUP_PIN6
* @arg @ref LL_PWR_WAKEUP_PIN7
* @arg @ref LL_PWR_WAKEUP_PIN8
*
* @retval Returned value can be one of the following values:
* @arg @ref LL_PWR_WAKEUP_PIN_NOPULL
* @arg @ref LL_PWR_WAKEUP_PIN_PULLUP
* @arg @ref LL_PWR_WAKEUP_PIN_PULLDOWN
*/
__STATIC_INLINE uint32_t LL_PWR_GetWakeUpPinPull(uint32_t WakeUpPin)
{
uint32_t regValue = READ_BIT(PWR->WUCR, (PWR_WUCR_WUPPUPD1 << ((LL_PWR_WAKEUP_PINS_PULL_SHIFT_OFFSET * \
(POSITION_VAL(WakeUpPin) & 0xFU)) & \
LL_PWR_WAKEUP_PINS_MAX_SHIFT_MASK)));
return (uint32_t)(regValue >> ((PWR_WUCR_WUPPUPD1_Pos + ((LL_PWR_WAKEUP_PINS_PULL_SHIFT_OFFSET * \
POSITION_VAL(WakeUpPin)) & 0xFU)) & \
LL_PWR_WAKEUP_PINS_MAX_SHIFT_MASK));
}
/**
* @brief Enable IO Retention
* @rmtoll IORETR IORETEN LL_PWR_EnableIORetention
* @retval None
*/
__STATIC_INLINE void LL_PWR_EnableIORetention(void)
{
SET_BIT(PWR->IORETR, PWR_IORETR_IORETEN);
}
/**
* @brief Disable IO Retention
* @rmtoll IORETR IORETEN LL_PWR_DisableIORetention
* @retval None
*/
__STATIC_INLINE void LL_PWR_DisableIORetention(void)
{
CLEAR_BIT(PWR->IORETR, PWR_IORETR_IORETEN);
}
/**
* @brief Check if IO Retention is enabled
* @rmtoll IORETR IORETEN LL_PWR_IsEnabledIORetention
* @retval State of bit (1 or 0).
*/
__STATIC_INLINE uint32_t LL_PWR_IsEnabledIORetention(void)
{
return ((READ_BIT(PWR->IORETR, PWR_IORETR_IORETEN) == (PWR_IORETR_IORETEN)) ? 1UL : 0UL);
}
/**
* @brief Enable JTAGIO Retention
* @rmtoll JTAGIORETR JTAGIORETEN LL_PWR_EnableJTAGIORetention
* @retval None
*/
__STATIC_INLINE void LL_PWR_EnableJTAGIORetention(void)
{
SET_BIT(PWR->IORETR, PWR_IORETR_JTAGIORETEN);
}
/**
* @brief Disable JTAGIO Retention
* @rmtoll JTAGIORETR JTAGIORETEN LL_PWR_DisableJTAGIORetention
* @retval None
*/
__STATIC_INLINE void LL_PWR_DisableJTAGIORetention(void)
{
CLEAR_BIT(PWR->IORETR, PWR_IORETR_JTAGIORETEN);
}
/**
* @brief Check if JTAGIO Retention is enabled
* @rmtoll IORETR JTAGIORETEN LL_PWR_IsEnabledJTAGIORetention
* @retval State of bit (1 or 0).
*/
__STATIC_INLINE uint32_t LL_PWR_IsEnabledJTAGIORetention(void)
{
return ((READ_BIT(PWR->IORETR, PWR_IORETR_JTAGIORETEN) == (PWR_IORETR_JTAGIORETEN)) ? 1UL : 0UL);
}
/**
* @}
*/
/** @defgroup PWR_LL_EF_FLAG_MANAGEMENT PWR FLAG Management
* @{
*/
/**
* @brief Indicate whether the regulator voltage output is above voltage
* scaling range or not.
* @rmtoll VOSSR VOSRDY LL_PWR_IsActiveFlag_VOS
* @retval State of bit (1 or 0).
*/
__STATIC_INLINE uint32_t LL_PWR_IsActiveFlag_VOS(void)
{
return ((READ_BIT(PWR->VOSSR, PWR_VOSSR_VOSRDY) == (PWR_VOSSR_VOSRDY)) ? 1UL : 0UL);
}
/**
* @brief Indicate whether the system was in standby mode or not.
* @rmtoll PMSR SBF LL_PWR_IsActiveFlag_SB
* @retval State of bit (1 or 0).
*/
__STATIC_INLINE uint32_t LL_PWR_IsActiveFlag_SB(void)
{
return ((READ_BIT(PWR->PMSR, PWR_PMSR_SBF) == (PWR_PMSR_SBF)) ? 1UL : 0UL);
}
/**
* @brief Indicate whether the system was in stop mode or not.
* @rmtoll PMSR STOPF LL_PWR_IsActiveFlag_STOP
* @retval State of bit (1 or 0).
*/
__STATIC_INLINE uint32_t LL_PWR_IsActiveFlag_STOP(void)
{
return ((READ_BIT(PWR->PMSR, PWR_PMSR_STOPF) == (PWR_PMSR_STOPF)) ? 1UL : 0UL);
}
/**
* @brief Indicate whether the VDD voltage is below the threshold or not.
* @rmtoll VMSR PVDO LL_PWR_IsActiveFlag_PVDO
* @retval State of bit (1 or 0).
*/
__STATIC_INLINE uint32_t LL_PWR_IsActiveFlag_PVDO(void)
{
return ((READ_BIT(PWR->VMSR, PWR_VMSR_PVDO) == (PWR_VMSR_PVDO)) ? 1UL : 0UL);
}
/**
* @brief Indicate whether the VDDA voltage is below the threshold or not.
* @rmtoll VMSR AVDO LL_PWR_IsActiveFlag_AVDO
* @retval State of bit (1 or 0).
*/
__STATIC_INLINE uint32_t LL_PWR_IsActiveFlag_AVDO(void)
{
return ((READ_BIT(PWR->VMSR, PWR_VMSR_AVDO) == (PWR_VMSR_AVDO)) ? 1UL : 0UL);
}
/**
* @brief Indicate whether the regulator voltage output is equal to current
* used voltage scaling range or not.
* @rmtoll VOSSR ACTVOSRDY LL_PWR_IsActiveFlag_ACTVOS
* @retval State of bit (1 or 0).
*/
__STATIC_INLINE uint32_t LL_PWR_IsActiveFlag_ACTVOS(void)
{
return ((READ_BIT(PWR->VOSSR, PWR_VOSSR_ACTVOSRDY) == (PWR_VOSSR_ACTVOSRDY)) ? 1UL : 0UL);
}
#if defined (PWR_VMSR_USB33RDY)
/**
* @brief Indicate whether the VDDUSB is below the threshold of monitor or not.
* @rmtoll VMSR USB33RDY LL_PWR_IsActiveFlag_VDDUSB
* @retval State of bit (1 or 0).
*/
__STATIC_INLINE uint32_t LL_PWR_IsActiveFlag_VDDUSB(void)
{
return ((READ_BIT(PWR->VMSR, PWR_VMSR_USB33RDY) == (PWR_VMSR_USB33RDY)) ? 1UL : 0UL);
}
#endif /* PWR_VMSR_USB33RDY */
/**
* @brief Indicate whether VDDMMC voltage is below 1V2
* @rmtoll VMSR VDDIO2RDY LL_PWR_IsActiveFlag_VDDIO2
* @retval State of bit (1 or 0).
*/
__STATIC_INLINE uint32_t LL_PWR_IsActiveFlag_VDDIO2(void)
{
return ((READ_BIT(PWR->VMCR, PWR_VMSR_VDDIO2RDY) == (PWR_VMSR_VDDIO2RDY)) ? 1UL : 0UL);
}
/**
* @brief Get Backup Regulator ready Flag
* @rmtoll BDSR BRRDY LL_PWR_IsActiveFlag_BRR
* @retval State of bit (1 or 0).
*/
__STATIC_INLINE uint32_t LL_PWR_IsActiveFlag_BRR(void)
{
return ((READ_BIT(PWR->BDSR, PWR_BDSR_BRRDY) == (PWR_BDSR_BRRDY)) ? 1UL : 0UL);
}
/**
* @brief Indicate whether the VBAT level is below high threshold or not.
* @rmtoll BDSR VBATL LL_PWR_IsActiveFlag_VBATL
* @retval State of bit (1 or 0).
*/
__STATIC_INLINE uint32_t LL_PWR_IsActiveFlag_VBATL(void)
{
return ((READ_BIT(PWR->BDSR, PWR_BDSR_VBATL) == (PWR_BDSR_VBATL)) ? 1UL : 0UL);
}
/**
* @brief Indicate whether the VBAT level is below high threshold or not.
* @rmtoll BDSR VBATH LL_PWR_IsActiveFlag_VBATH
* @retval State of bit (1 or 0).
*/
__STATIC_INLINE uint32_t LL_PWR_IsActiveFlag_VBATH(void)
{
return ((READ_BIT(PWR->BDSR, PWR_BDSR_VBATH) == (PWR_BDSR_VBATH)) ? 1UL : 0UL);
}
/**
* @brief Indicate whether the CPU temperature level is above low threshold or
* not.
* @rmtoll BDSR TEMPL LL_PWR_IsActiveFlag_TEMPL
* @retval State of bit (1 or 0).
*/
__STATIC_INLINE uint32_t LL_PWR_IsActiveFlag_TEMPL(void)
{
return ((READ_BIT(PWR->BDSR, PWR_BDSR_TEMPL) == (PWR_BDSR_TEMPL)) ? 1UL : 0UL);
}
/**
* @brief Indicate whether the CPU temperature level is below high threshold
* or not.
* @rmtoll BDSR TEMPH LL_PWR_IsActiveFlag_TEMPH
* @retval State of bit (1 or 0).
*/
__STATIC_INLINE uint32_t LL_PWR_IsActiveFlag_TEMPH(void)
{
return ((READ_BIT(PWR->BDSR, PWR_BDSR_TEMPH) == (PWR_BDSR_TEMPH)) ? 1UL : 0UL);
}
/**
* @brief Indicate whether a wakeup event is detected on wake up pin 1.
* @rmtoll WUSR WUF1 LL_PWR_IsActiveFlag_WU1
* @retval State of bit (1 or 0).
*/
__STATIC_INLINE uint32_t LL_PWR_IsActiveFlag_WU1(void)
{
return ((READ_BIT(PWR->WUSR, PWR_WUSR_WUF1) == (PWR_WUSR_WUF1)) ? 1UL : 0UL);
}
/**
* @brief Indicate whether a wakeup event is detected on wake up pin 2.
* @rmtoll WUSR WUF2 LL_PWR_IsActiveFlag_WU2
* @retval State of bit (1 or 0).
*/
__STATIC_INLINE uint32_t LL_PWR_IsActiveFlag_WU2(void)
{
return ((READ_BIT(PWR->WUSR, PWR_WUSR_WUF2) == (PWR_WUSR_WUF2)) ? 1UL : 0UL);
}
/**
* @brief Indicate whether a wakeup event is detected on wake up pin 3.
* @rmtoll WUSR WUF3 LL_PWR_IsActiveFlag_WU3
* @retval State of bit (1 or 0).
*/
__STATIC_INLINE uint32_t LL_PWR_IsActiveFlag_WU3(void)
{
return ((READ_BIT(PWR->WUSR, PWR_WUSR_WUF3) == (PWR_WUSR_WUF3)) ? 1UL : 0UL);
}
/**
* @brief Indicate whether a wakeup event is detected on wake up pin 4.
* @rmtoll WUSR WUF4 LL_PWR_IsActiveFlag_WU4
* @retval State of bit (1 or 0).
*/
__STATIC_INLINE uint32_t LL_PWR_IsActiveFlag_WU4(void)
{
return ((READ_BIT(PWR->WUSR, PWR_WUSR_WUF4) == (PWR_WUSR_WUF4)) ? 1UL : 0UL);
}
/**
* @brief Indicate whether a wakeup event is detected on wake up pin 5.
* @rmtoll WUSR WUF5 LL_PWR_IsActiveFlag_WU5
* @retval State of bit (1 or 0).
*/
__STATIC_INLINE uint32_t LL_PWR_IsActiveFlag_WU5(void)
{
return ((READ_BIT(PWR->WUSR, PWR_WUSR_WUF5) == (PWR_WUSR_WUF5)) ? 1UL : 0UL);
}
#if defined (PWR_WUSR_WUF6)
/**
* @brief Indicate whether a wakeup event is detected on wake up pin 6.
* @rmtoll WUSR WUF6 LL_PWR_IsActiveFlag_WU6
* @retval State of bit (1 or 0).
*/
__STATIC_INLINE uint32_t LL_PWR_IsActiveFlag_WU6(void)
{
return ((READ_BIT(PWR->WUSR, PWR_WUSR_WUF6) == (PWR_WUSR_WUF6)) ? 1UL : 0UL);
}
#endif /* PWR_WUSR_WUF6 */
#if defined (PWR_WUSR_WUF7)
/**
* @brief Indicate whether a wakeup event is detected on wake up pin 7.
* @rmtoll WUSR WUF7 LL_PWR_IsActiveFlag_WU7
* @retval State of bit (1 or 0).
*/
__STATIC_INLINE uint32_t LL_PWR_IsActiveFlag_WU7(void)
{
return ((READ_BIT(PWR->WUSR, PWR_WUSR_WUF7) == (PWR_WUSR_WUF7)) ? 1UL : 0UL);
}
#endif /* PWR_WUSR_WUF7 */
#if defined (PWR_WUSR_WUF8)
/**
* @brief Indicate whether a wakeup event is detected on wake up pin 8.
* @rmtoll WUSR WUF8 LL_PWR_IsActiveFlag_WU8
* @retval State of bit (1 or 0).
*/
__STATIC_INLINE uint32_t LL_PWR_IsActiveFlag_WU8(void)
{
return ((READ_BIT(PWR->WUSR, PWR_WUSR_WUF8) == (PWR_WUSR_WUF8)) ? 1UL : 0UL);
}
#endif /* PWR_WUSR_WUF8 */
/**
* @brief Clear stop flag.
* @rmtoll PMCR CSSF LL_PWR_ClearFlag_STOP
* @retval None
*/
__STATIC_INLINE void LL_PWR_ClearFlag_STOP(void)
{
WRITE_REG(PWR->PMCR, PWR_PMCR_CSSF);
}
/**
* @brief Clear standby flag.
* @rmtoll PMCR CSSF LL_PWR_ClearFlag_SB
* @retval None
*/
__STATIC_INLINE void LL_PWR_ClearFlag_SB(void)
{
WRITE_REG(PWR->PMCR, PWR_PMCR_CSSF);
}
/**
* @brief Clear wake up flag 1.
* @rmtoll WUSCR CWUF1 LL_PWR_ClearFlag_WU1
* @retval None
*/
__STATIC_INLINE void LL_PWR_ClearFlag_WU1(void)
{
WRITE_REG(PWR->WUSCR, PWR_WUSCR_CWUF1);
}
/**
* @brief Clear wake up flag 2.
* @rmtoll WUSCR CWUF2 LL_PWR_ClearFlag_WU2
* @retval None
*/
__STATIC_INLINE void LL_PWR_ClearFlag_WU2(void)
{
WRITE_REG(PWR->WUSCR, PWR_WUSCR_CWUF2);
}
/**
* @brief Clear wake up flag 3.
* @rmtoll WUSCR CWUF3 LL_PWR_ClearFlag_WU3
* @retval None
*/
__STATIC_INLINE void LL_PWR_ClearFlag_WU3(void)
{
WRITE_REG(PWR->WUSCR, PWR_WUSCR_CWUF3);
}
/**
* @brief Clear wake up flag 4.
* @rmtoll WUSCR CWUF4 LL_PWR_ClearFlag_WU4
* @retval None
*/
__STATIC_INLINE void LL_PWR_ClearFlag_WU4(void)
{
WRITE_REG(PWR->WUSCR, PWR_WUSCR_CWUF4);
}
/**
* @brief Clear wake up flag 5.
* @rmtoll WUSCR CWUF5 LL_PWR_ClearFlag_WU5
* @retval None
*/
__STATIC_INLINE void LL_PWR_ClearFlag_WU5(void)
{
WRITE_REG(PWR->WUSCR, PWR_WUSCR_CWUF5);
}
#if defined (PWR_WUSCR_CWUF6)
/**
* @brief Clear wake up flag 6.
* @rmtoll WUSCR CWUF6 LL_PWR_ClearFlag_WU6
* @retval None
*/
__STATIC_INLINE void LL_PWR_ClearFlag_WU6(void)
{
WRITE_REG(PWR->WUSCR, PWR_WUSCR_CWUF6);
}
#endif /* PWR_WUSCR_CWUF6 */
#if defined (PWR_WUSCR_CWUF7)
/**
* @brief Clear wake up flag 7.
* @rmtoll WUSCR CWUF7 LL_PWR_ClearFlag_WU7
* @retval None
*/
__STATIC_INLINE void LL_PWR_ClearFlag_WU7(void)
{
WRITE_REG(PWR->WUSCR, PWR_WUSCR_CWUF7);
}
#endif /* PWR_WUSCR_CWUF7 */
#if defined (PWR_WUSCR_CWUF8)
/**
* @brief Clear wake up flag 8.
* @rmtoll WUSCR CWUF8 LL_PWR_ClearFlag_WU8
* @retval None
*/
__STATIC_INLINE void LL_PWR_ClearFlag_WU8(void)
{
WRITE_REG(PWR->WUSCR, PWR_WUSCR_CWUF8);
}
#endif /* PWR_WUSCR_CWUF8 */
/**
* @brief Clear all wake up flags.
* @rmtoll WUSCR CWUF LL_PWR_ClearFlag_WU
* @retval None
*/
__STATIC_INLINE void LL_PWR_ClearFlag_WU(void)
{
WRITE_REG(PWR->WUSCR, PWR_WUSCR_CWUF);
}
/**
* @}
*/
/** @defgroup PWR_LL_EF_ATTRIBUTE_MANAGEMENT PWR Attribute Management
* @{
*/
#if defined(PWR_PRIVCFGR_NSPRIV)
/**
* @brief Enable privileged mode for nsecure items.
* @rmtoll PRIVCFGR NSPRIV LL_PWR_EnableNSecurePrivilege
* @retval None
*/
__STATIC_INLINE void LL_PWR_EnableNSecurePrivilege(void)
{
SET_BIT(PWR->PRIVCFGR, PWR_PRIVCFGR_NSPRIV);
}
/**
* @brief Disable privileged mode for nsecure items.
* @rmtoll PRIVCFGR NSPRIV LL_PWR_DisableNSecurePrivilege
* @retval None
*/
__STATIC_INLINE void LL_PWR_DisableNSecurePrivilege(void)
{
CLEAR_BIT(PWR->PRIVCFGR, PWR_PRIVCFGR_NSPRIV);
}
/**
* @brief Check if privileged mode for nsecure items is enabled.
* @rmtoll PRIVCFGR NSPRIV LL_PWR_IsEnabledNSecurePrivilege
* @retval State of bit (1 or 0).
*/
__STATIC_INLINE uint32_t LL_PWR_IsEnabledNSecurePrivilege(void)
{
return ((READ_BIT(PWR->PRIVCFGR, PWR_PRIVCFGR_NSPRIV) == PWR_PRIVCFGR_NSPRIV) ? 1UL : 0UL);
}
#else
/**
* @brief Enable privileged mode for nsecure items.
* @rmtoll PRIVCFGR NSPRIV LL_PWR_EnableNSecurePrivilege
* @retval None
*/
__STATIC_INLINE void LL_PWR_EnableNSecurePrivilege(void)
{
SET_BIT(PWR->PRIVCFGR, PWR_PRIVCFGR_PRIV);
}
/**
* @brief Disable privileged mode for nsecure items.
* @rmtoll PRIVCFGR NSPRIV LL_PWR_DisableNSecurePrivilege
* @retval None
*/
__STATIC_INLINE void LL_PWR_DisableNSecurePrivilege(void)
{
CLEAR_BIT(PWR->PRIVCFGR, PWR_PRIVCFGR_PRIV);
}
/**
* @brief Check if privileged mode for nsecure items is enabled.
* @rmtoll PRIVCFGR NSPRIV LL_PWR_IsEnabledNSecurePrivilege
* @retval State of bit (1 or 0).
*/
__STATIC_INLINE uint32_t LL_PWR_IsEnabledNSecurePrivilege(void)
{
return ((READ_BIT(PWR->PRIVCFGR, PWR_PRIVCFGR_PRIV) == PWR_PRIVCFGR_PRIV) ? 1UL : 0UL);
}
#endif /* RCC_PRIVCFGR_NSPRIV */
#if defined (__ARM_FEATURE_CMSE) && (__ARM_FEATURE_CMSE == 3U)
/**
* @brief Enable privileged mode for secure items.
* @rmtoll PRIVCFGR SPRIV LL_PWR_EnableSecurePrivilege
* @retval None
*/
__STATIC_INLINE void LL_PWR_EnableSecurePrivilege(void)
{
SET_BIT(PWR->PRIVCFGR, PWR_PRIVCFGR_SPRIV);
}
/**
* @brief Disable privileged mode for secure items.
* @rmtoll PRIVCFGR SPRIV LL_PWR_DisableSecurePrivilege
* @retval None
*/
__STATIC_INLINE void LL_PWR_DisableSecurePrivilege(void)
{
CLEAR_BIT(PWR->PRIVCFGR, PWR_PRIVCFGR_SPRIV);
}
#endif /* defined (__ARM_FEATURE_CMSE) && (__ARM_FEATURE_CMSE == 3U) */
#if defined (PWR_PRIVCFGR_SPRIV)
/**
* @brief Check if privileged mode for secure items is enabled.
* @rmtoll PRIVCFGR SPRIV LL_PWR_IsEnabledSecurePrivilege
* @retval State of bit (1 or 0).
*/
__STATIC_INLINE uint32_t LL_PWR_IsEnabledSecurePrivilege(void)
{
return ((READ_BIT(PWR->PRIVCFGR, PWR_PRIVCFGR_SPRIV) == PWR_PRIVCFGR_SPRIV) ? 1UL : 0UL);
}
#endif /* PWR_PRIVCFGR_SPRIV */
#if defined (__ARM_FEATURE_CMSE) && (__ARM_FEATURE_CMSE == 3U)
/**
* @brief Configure secure attribute mode.
* @note This API can be executed only by CPU in secure mode.
* @rmtoll SECCFGR WUP1SEC LL_PWR_ConfigSecure\n
* SECCFGR WUP2SEC LL_PWR_ConfigSecure\n
* SECCFGR WUP3SEC LL_PWR_ConfigSecure\n
* SECCFGR WUP4SEC LL_PWR_ConfigSecure\n
* SECCFGR WUP5SEC LL_PWR_ConfigSecure\n
* SECCFGR WUP6SEC LL_PWR_ConfigSecure\n
* SECCFGR WUP7SEC LL_PWR_ConfigSecure\n
* SECCFGR WUP8SEC LL_PWR_ConfigSecure\n
* SECCFGR RETSEC LL_PWR_ConfigSecure\n
* SECCFGR LPMSEC LL_PWR_ConfigSecure\n
* SECCFGR VDMSEC LL_PWR_ConfigSecure\n
* SECCFGR VBSEC LL_PWR_ConfigSecure\n
* SECCFGR APCSEC LL_PWR_ConfigSecure
* @param SecureConfig This parameter can be the full combination
* of the following values:
* @arg @ref LL_PWR_WAKEUP_PIN1_NSEC or LL_PWR_WAKEUP_PIN1_SEC
* @arg @ref LL_PWR_WAKEUP_PIN2_NSEC or LL_PWR_WAKEUP_PIN2_SEC
* @arg @ref LL_PWR_WAKEUP_PIN3_NSEC or LL_PWR_WAKEUP_PIN3_SEC
* @arg @ref LL_PWR_WAKEUP_PIN4_NSEC or LL_PWR_WAKEUP_PIN4_SEC
* @arg @ref LL_PWR_WAKEUP_PIN5_NSEC or LL_PWR_WAKEUP_PIN5_SEC
* @arg @ref LL_PWR_WAKEUP_PIN6_NSEC or LL_PWR_WAKEUP_PIN6_SEC
* @arg @ref LL_PWR_WAKEUP_PIN7_NSEC or LL_PWR_WAKEUP_PIN7_SEC
* @arg @ref LL_PWR_WAKEUP_PIN8_NSEC or LL_PWR_WAKEUP_PIN8_SEC
* @arg @ref LL_PWR_RET_NSEC or LL_PWR_RET_SEC
* @arg @ref LL_PWR_LPM_NSEC or LL_PWR_LPM_SEC
* @arg @ref LL_PWR_VDM_NSEC or LL_PWR_VDM_SEC
* @arg @ref LL_PWR_VB_NSEC or LL_PWR_VB_SEC
* @arg @ref LL_PWR_APC_NSEC or LL_PWR_APC_SEC
* @retval None.
*/
__STATIC_INLINE void LL_PWR_ConfigSecure(uint32_t SecureConfig)
{
WRITE_REG(PWR->SECCFGR, SecureConfig);
}
/**
* @brief Get secure attribute configuration.
* @note This API can be executed only by CPU in secure mode.
* @rmtoll SECCFGR WUP1SEC LL_PWR_GetConfigSecure\n
* SECCFGR WUP2SEC LL_PWR_GetConfigSecure\n
* SECCFGR WUP3SEC LL_PWR_GetConfigSecure\n
* SECCFGR WUP4SEC LL_PWR_GetConfigSecure\n
* SECCFGR WUP5SEC LL_PWR_GetConfigSecure\n
* SECCFGR WUP6SEC LL_PWR_GetConfigSecure\n
* SECCFGR WUP7SEC LL_PWR_GetConfigSecure\n
* SECCFGR WUP8SEC LL_PWR_GetConfigSecure\n
* SECCFGR RETSEC LL_PWR_ConfigSecure\n
* SECCFGR LPMSEC LL_PWR_GetConfigSecure\n
* SECCFGR VDMSEC LL_PWR_GetConfigSecure\n
* SECCFGR VBSEC LL_PWR_GetConfigSecure\n
* SECCFGR APCSEC LL_PWR_GetConfigSecure
* @retval Returned value is the combination of the following values:
* @arg @ref LL_PWR_WAKEUP_PIN1_NSEC or LL_PWR_WAKEUP_PIN1_SEC
* @arg @ref LL_PWR_WAKEUP_PIN2_NSEC or LL_PWR_WAKEUP_PIN2_SEC
* @arg @ref LL_PWR_WAKEUP_PIN3_NSEC or LL_PWR_WAKEUP_PIN3_SEC
* @arg @ref LL_PWR_WAKEUP_PIN4_NSEC or LL_PWR_WAKEUP_PIN4_SEC
* @arg @ref LL_PWR_WAKEUP_PIN5_NSEC or LL_PWR_WAKEUP_PIN5_SEC
* @arg @ref LL_PWR_WAKEUP_PIN6_NSEC or LL_PWR_WAKEUP_PIN6_SEC
* @arg @ref LL_PWR_WAKEUP_PIN7_NSEC or LL_PWR_WAKEUP_PIN7_SEC
* @arg @ref LL_PWR_WAKEUP_PIN8_NSEC or LL_PWR_WAKEUP_PIN8_SEC
* @arg @ref LL_PWR_RET_NSEC or LL_PWR_RET_SEC
* @arg @ref LL_PWR_LPM_NSEC or LL_PWR_LPM_SEC
* @arg @ref LL_PWR_VDM_NSEC or LL_PWR_VDM_SEC
* @arg @ref LL_PWR_VB_NSEC or LL_PWR_VB_SEC
* @arg @ref LL_PWR_APC_NSEC or LL_PWR_APC_SEC
*/
__STATIC_INLINE uint32_t LL_PWR_GetConfigSecure(void)
{
return (READ_REG(PWR->SECCFGR));
}
#endif /* defined (__ARM_FEATURE_CMSE) && (__ARM_FEATURE_CMSE == 3U) */
/**
* @}
*/
#if defined (USE_FULL_LL_DRIVER)
/** @defgroup PWR_LL_EF_Init De-initialization function
* @{
*/
ErrorStatus LL_PWR_DeInit(void);
/**
* @}
*/
#endif /* defined (USE_FULL_LL_DRIVER) */
/**
* @}
*/
/**
* @}
*/
#endif /* defined (PWR) */
/**
* @}
*/
#ifdef __cplusplus
}
#endif /* __cplusplus */
#endif /* STM32H5xx_LL_PWR_H */