tdse-tp2_01-model_integration

Index Commits Files Refs README
Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_ll_pwr.h (12582B)
   1 /**
   2   ******************************************************************************
   3   * @file    stm32f1xx_ll_pwr.h
   4   * @author  MCD Application Team
   5   * @brief   Header file of PWR LL module.
   6   ******************************************************************************
   7   * @attention
   8   *
   9   * Copyright (c) 2016 STMicroelectronics.
  10   * All rights reserved.
  11   *
  12   * This software is licensed under terms that can be found in the LICENSE file
  13   * in the root directory of this software component.
  14   * If no LICENSE file comes with this software, it is provided AS-IS.
  15   *
  16   ******************************************************************************
  17   */
  18 
  19 /* Define to prevent recursive inclusion -------------------------------------*/
  20 #ifndef __STM32F1xx_LL_PWR_H
  21 #define __STM32F1xx_LL_PWR_H
  22 
  23 #ifdef __cplusplus
  24 extern "C" {
  25 #endif
  26 
  27 /* Includes ------------------------------------------------------------------*/
  28 #include "stm32f1xx.h"
  29 
  30 /** @addtogroup STM32F1xx_LL_Driver
  31   * @{
  32   */
  33 
  34 #if defined(PWR)
  35 
  36 /** @defgroup PWR_LL PWR
  37   * @{
  38   */
  39 
  40 /* Private types -------------------------------------------------------------*/
  41 /* Private variables ---------------------------------------------------------*/
  42 /* Private constants ---------------------------------------------------------*/
  43 /* Private macros ------------------------------------------------------------*/
  44 /* Exported types ------------------------------------------------------------*/
  45 /* Exported constants --------------------------------------------------------*/
  46 /** @defgroup PWR_LL_Exported_Constants PWR Exported Constants
  47   * @{
  48   */
  49 
  50 /** @defgroup PWR_LL_EC_CLEAR_FLAG Clear Flags Defines
  51   * @brief    Flags defines which can be used with LL_PWR_WriteReg function
  52   * @{
  53   */
  54 #define LL_PWR_CR_CSBF                     PWR_CR_CSBF            /*!< Clear standby flag */
  55 #define LL_PWR_CR_CWUF                     PWR_CR_CWUF            /*!< Clear wakeup flag */
  56 /**
  57   * @}
  58   */
  59 
  60 /** @defgroup PWR_LL_EC_GET_FLAG Get Flags Defines
  61   * @brief    Flags defines which can be used with LL_PWR_ReadReg function
  62   * @{
  63   */
  64 #define LL_PWR_CSR_WUF                     PWR_CSR_WUF            /*!< Wakeup flag */
  65 #define LL_PWR_CSR_SBF                     PWR_CSR_SBF            /*!< Standby flag */
  66 #define LL_PWR_CSR_PVDO                    PWR_CSR_PVDO           /*!< Power voltage detector output flag */
  67 #define LL_PWR_CSR_EWUP1                   PWR_CSR_EWUP           /*!< Enable WKUP pin 1 */
  68 /**
  69   * @}
  70   */
  71 
  72 
  73 /** @defgroup PWR_LL_EC_MODE_PWR Mode Power
  74   * @{
  75   */
  76 #define LL_PWR_MODE_STOP_MAINREGU             0x00000000U                    /*!< Enter Stop mode when the CPU enters deepsleep */
  77 #define LL_PWR_MODE_STOP_LPREGU               (PWR_CR_LPDS)                  /*!< Enter Stop mode (with low power Regulator ON) when the CPU enters deepsleep */
  78 #define LL_PWR_MODE_STANDBY                   (PWR_CR_PDDS)                  /*!< Enter Standby mode when the CPU enters deepsleep */
  79 /**
  80   * @}
  81   */
  82 
  83 /** @defgroup PWR_LL_EC_REGU_MODE_DS_MODE  Regulator Mode In Deep Sleep Mode
  84  * @{
  85  */
  86 #define LL_PWR_REGU_DSMODE_MAIN        0x00000000U           /*!< Voltage Regulator in main mode during deepsleep mode */
  87 #define LL_PWR_REGU_DSMODE_LOW_POWER   (PWR_CR_LPDS)         /*!< Voltage Regulator in low-power mode during deepsleep mode */
  88 /**
  89   * @}
  90   */
  91 
  92 /** @defgroup PWR_LL_EC_PVDLEVEL Power Voltage Detector Level
  93   * @{
  94   */
  95 #define LL_PWR_PVDLEVEL_0                  (PWR_CR_PLS_LEV0)      /*!< Voltage threshold detected by PVD 2.2 V */
  96 #define LL_PWR_PVDLEVEL_1                  (PWR_CR_PLS_LEV1)      /*!< Voltage threshold detected by PVD 2.3 V */
  97 #define LL_PWR_PVDLEVEL_2                  (PWR_CR_PLS_LEV2)      /*!< Voltage threshold detected by PVD 2.4 V */
  98 #define LL_PWR_PVDLEVEL_3                  (PWR_CR_PLS_LEV3)      /*!< Voltage threshold detected by PVD 2.5 V */
  99 #define LL_PWR_PVDLEVEL_4                  (PWR_CR_PLS_LEV4)      /*!< Voltage threshold detected by PVD 2.6 V */
 100 #define LL_PWR_PVDLEVEL_5                  (PWR_CR_PLS_LEV5)      /*!< Voltage threshold detected by PVD 2.7 V */
 101 #define LL_PWR_PVDLEVEL_6                  (PWR_CR_PLS_LEV6)      /*!< Voltage threshold detected by PVD 2.8 V */
 102 #define LL_PWR_PVDLEVEL_7                  (PWR_CR_PLS_LEV7)      /*!< Voltage threshold detected by PVD 2.9 V */
 103 /**
 104   * @}
 105   */
 106 /** @defgroup PWR_LL_EC_WAKEUP_PIN  Wakeup Pins
 107   * @{
 108   */
 109 #define LL_PWR_WAKEUP_PIN1                 (PWR_CSR_EWUP)         /*!< WKUP pin 1 : PA0 */
 110 /**
 111   * @}
 112   */
 113 
 114 /**
 115   * @}
 116   */
 117 
 118 
 119 /* Exported macro ------------------------------------------------------------*/
 120 /** @defgroup PWR_LL_Exported_Macros PWR Exported Macros
 121   * @{
 122   */
 123 
 124 /** @defgroup PWR_LL_EM_WRITE_READ Common write and read registers Macros
 125   * @{
 126   */
 127 
 128 /**
 129   * @brief  Write a value in PWR register
 130   * @param  __REG__ Register to be written
 131   * @param  __VALUE__ Value to be written in the register
 132   * @retval None
 133   */
 134 #define LL_PWR_WriteReg(__REG__, __VALUE__) WRITE_REG(PWR->__REG__, (__VALUE__))
 135 
 136 /**
 137   * @brief  Read a value in PWR register
 138   * @param  __REG__ Register to be read
 139   * @retval Register value
 140   */
 141 #define LL_PWR_ReadReg(__REG__) READ_REG(PWR->__REG__)
 142 /**
 143   * @}
 144   */
 145 
 146 /**
 147   * @}
 148   */
 149 
 150 /* Exported functions --------------------------------------------------------*/
 151 /** @defgroup PWR_LL_Exported_Functions PWR Exported Functions
 152   * @{
 153   */
 154 
 155 /** @defgroup PWR_LL_EF_Configuration Configuration
 156   * @{
 157   */
 158 
 159 /**
 160   * @brief  Enable access to the backup domain
 161   * @rmtoll CR    DBP       LL_PWR_EnableBkUpAccess
 162   * @retval None
 163   */
 164 __STATIC_INLINE void LL_PWR_EnableBkUpAccess(void)
 165 {
 166   SET_BIT(PWR->CR, PWR_CR_DBP);
 167 }
 168 
 169 /**
 170   * @brief  Disable access to the backup domain
 171   * @rmtoll CR    DBP       LL_PWR_DisableBkUpAccess
 172   * @retval None
 173   */
 174 __STATIC_INLINE void LL_PWR_DisableBkUpAccess(void)
 175 {
 176   CLEAR_BIT(PWR->CR, PWR_CR_DBP);
 177 }
 178 
 179 /**
 180   * @brief  Check if the backup domain is enabled
 181   * @rmtoll CR    DBP       LL_PWR_IsEnabledBkUpAccess
 182   * @retval State of bit (1 or 0).
 183   */
 184 __STATIC_INLINE uint32_t LL_PWR_IsEnabledBkUpAccess(void)
 185 {
 186   return (READ_BIT(PWR->CR, PWR_CR_DBP) == (PWR_CR_DBP));
 187 }
 188 
 189 /**
 190   * @brief  Set voltage Regulator mode during deep sleep mode
 191   * @rmtoll CR    LPDS         LL_PWR_SetRegulModeDS
 192   * @param  RegulMode This parameter can be one of the following values:
 193   *         @arg @ref LL_PWR_REGU_DSMODE_MAIN
 194   *         @arg @ref LL_PWR_REGU_DSMODE_LOW_POWER
 195   * @retval None
 196   */
 197 __STATIC_INLINE void LL_PWR_SetRegulModeDS(uint32_t RegulMode)
 198 {
 199   MODIFY_REG(PWR->CR, PWR_CR_LPDS, RegulMode);
 200 }
 201 
 202 /**
 203   * @brief  Get voltage Regulator mode during deep sleep mode
 204   * @rmtoll CR    LPDS         LL_PWR_GetRegulModeDS
 205   * @retval Returned value can be one of the following values:
 206   *         @arg @ref LL_PWR_REGU_DSMODE_MAIN
 207   *         @arg @ref LL_PWR_REGU_DSMODE_LOW_POWER
 208   */
 209 __STATIC_INLINE uint32_t LL_PWR_GetRegulModeDS(void)
 210 {
 211   return (uint32_t)(READ_BIT(PWR->CR, PWR_CR_LPDS));
 212 }
 213 
 214 /**
 215   * @brief  Set Power Down mode when CPU enters deepsleep
 216   * @rmtoll CR    PDDS         LL_PWR_SetPowerMode\n
 217   * @rmtoll CR    LPDS         LL_PWR_SetPowerMode
 218   * @param  PDMode This parameter can be one of the following values:
 219   *         @arg @ref LL_PWR_MODE_STOP_MAINREGU
 220   *         @arg @ref LL_PWR_MODE_STOP_LPREGU
 221   *         @arg @ref LL_PWR_MODE_STANDBY
 222   * @retval None
 223   */
 224 __STATIC_INLINE void LL_PWR_SetPowerMode(uint32_t PDMode)
 225 {
 226   MODIFY_REG(PWR->CR, (PWR_CR_PDDS| PWR_CR_LPDS), PDMode);
 227 }
 228 
 229 /**
 230   * @brief  Get Power Down mode when CPU enters deepsleep
 231   * @rmtoll CR    PDDS         LL_PWR_GetPowerMode\n
 232   * @rmtoll CR    LPDS         LL_PWR_GetPowerMode
 233   * @retval Returned value can be one of the following values:
 234   *         @arg @ref LL_PWR_MODE_STOP_MAINREGU
 235   *         @arg @ref LL_PWR_MODE_STOP_LPREGU
 236   *         @arg @ref LL_PWR_MODE_STANDBY
 237   */
 238 __STATIC_INLINE uint32_t LL_PWR_GetPowerMode(void)
 239 {
 240   return (uint32_t)(READ_BIT(PWR->CR, (PWR_CR_PDDS| PWR_CR_LPDS)));
 241 }
 242 
 243 /**
 244   * @brief  Configure the voltage threshold detected by the Power Voltage Detector
 245   * @rmtoll CR    PLS       LL_PWR_SetPVDLevel
 246   * @param  PVDLevel This parameter can be one of the following values:
 247   *         @arg @ref LL_PWR_PVDLEVEL_0
 248   *         @arg @ref LL_PWR_PVDLEVEL_1
 249   *         @arg @ref LL_PWR_PVDLEVEL_2
 250   *         @arg @ref LL_PWR_PVDLEVEL_3
 251   *         @arg @ref LL_PWR_PVDLEVEL_4
 252   *         @arg @ref LL_PWR_PVDLEVEL_5
 253   *         @arg @ref LL_PWR_PVDLEVEL_6
 254   *         @arg @ref LL_PWR_PVDLEVEL_7
 255   * @retval None
 256   */
 257 __STATIC_INLINE void LL_PWR_SetPVDLevel(uint32_t PVDLevel)
 258 {
 259   MODIFY_REG(PWR->CR, PWR_CR_PLS, PVDLevel);
 260 }
 261 
 262 /**
 263   * @brief  Get the voltage threshold detection
 264   * @rmtoll CR    PLS       LL_PWR_GetPVDLevel
 265   * @retval Returned value can be one of the following values:
 266   *         @arg @ref LL_PWR_PVDLEVEL_0
 267   *         @arg @ref LL_PWR_PVDLEVEL_1
 268   *         @arg @ref LL_PWR_PVDLEVEL_2
 269   *         @arg @ref LL_PWR_PVDLEVEL_3
 270   *         @arg @ref LL_PWR_PVDLEVEL_4
 271   *         @arg @ref LL_PWR_PVDLEVEL_5
 272   *         @arg @ref LL_PWR_PVDLEVEL_6
 273   *         @arg @ref LL_PWR_PVDLEVEL_7
 274   */
 275 __STATIC_INLINE uint32_t LL_PWR_GetPVDLevel(void)
 276 {
 277   return (uint32_t)(READ_BIT(PWR->CR, PWR_CR_PLS));
 278 }
 279 
 280 /**
 281   * @brief  Enable Power Voltage Detector
 282   * @rmtoll CR    PVDE       LL_PWR_EnablePVD
 283   * @retval None
 284   */
 285 __STATIC_INLINE void LL_PWR_EnablePVD(void)
 286 {
 287   SET_BIT(PWR->CR, PWR_CR_PVDE);
 288 }
 289 
 290 /**
 291   * @brief  Disable Power Voltage Detector
 292   * @rmtoll CR    PVDE       LL_PWR_DisablePVD
 293   * @retval None
 294   */
 295 __STATIC_INLINE void LL_PWR_DisablePVD(void)
 296 {
 297   CLEAR_BIT(PWR->CR, PWR_CR_PVDE);
 298 }
 299 
 300 /**
 301   * @brief  Check if Power Voltage Detector is enabled
 302   * @rmtoll CR    PVDE       LL_PWR_IsEnabledPVD
 303   * @retval State of bit (1 or 0).
 304   */
 305 __STATIC_INLINE uint32_t LL_PWR_IsEnabledPVD(void)
 306 {
 307   return (READ_BIT(PWR->CR, PWR_CR_PVDE) == (PWR_CR_PVDE));
 308 }
 309 
 310 /**
 311   * @brief  Enable the WakeUp PINx functionality
 312   * @rmtoll CSR   EWUP       LL_PWR_EnableWakeUpPin
 313   * @param  WakeUpPin This parameter can be one of the following values:
 314   *         @arg @ref LL_PWR_WAKEUP_PIN1
 315   * @retval None
 316   */
 317 __STATIC_INLINE void LL_PWR_EnableWakeUpPin(uint32_t WakeUpPin)
 318 {
 319   SET_BIT(PWR->CSR, WakeUpPin);
 320 }
 321 
 322 /**
 323   * @brief  Disable the WakeUp PINx functionality
 324   * @rmtoll CSR   EWUP       LL_PWR_DisableWakeUpPin
 325   * @param  WakeUpPin This parameter can be one of the following values:
 326   *         @arg @ref LL_PWR_WAKEUP_PIN1
 327   * @retval None
 328   */
 329 __STATIC_INLINE void LL_PWR_DisableWakeUpPin(uint32_t WakeUpPin)
 330 {
 331   CLEAR_BIT(PWR->CSR, WakeUpPin);
 332 }
 333 
 334 /**
 335   * @brief  Check if the WakeUp PINx functionality is enabled
 336   * @rmtoll CSR   EWUP       LL_PWR_IsEnabledWakeUpPin
 337   * @param  WakeUpPin This parameter can be one of the following values:
 338   *         @arg @ref LL_PWR_WAKEUP_PIN1
 339   * @retval State of bit (1 or 0).
 340   */
 341 __STATIC_INLINE uint32_t LL_PWR_IsEnabledWakeUpPin(uint32_t WakeUpPin)
 342 {
 343   return (READ_BIT(PWR->CSR, WakeUpPin) == (WakeUpPin));
 344 }
 345 
 346 
 347 /**
 348   * @}
 349   */
 350 
 351 /** @defgroup PWR_LL_EF_FLAG_Management FLAG_Management
 352   * @{
 353   */
 354 
 355 /**
 356   * @brief  Get Wake-up Flag
 357   * @rmtoll CSR   WUF       LL_PWR_IsActiveFlag_WU
 358   * @retval State of bit (1 or 0).
 359   */
 360 __STATIC_INLINE uint32_t LL_PWR_IsActiveFlag_WU(void)
 361 {
 362   return (READ_BIT(PWR->CSR, PWR_CSR_WUF) == (PWR_CSR_WUF));
 363 }
 364 
 365 /**
 366   * @brief  Get Standby Flag
 367   * @rmtoll CSR   SBF       LL_PWR_IsActiveFlag_SB
 368   * @retval State of bit (1 or 0).
 369   */
 370 __STATIC_INLINE uint32_t LL_PWR_IsActiveFlag_SB(void)
 371 {
 372   return (READ_BIT(PWR->CSR, PWR_CSR_SBF) == (PWR_CSR_SBF));
 373 }
 374 
 375 /**
 376   * @brief  Indicate whether VDD voltage is below the selected PVD threshold
 377   * @rmtoll CSR   PVDO       LL_PWR_IsActiveFlag_PVDO
 378   * @retval State of bit (1 or 0).
 379   */
 380 __STATIC_INLINE uint32_t LL_PWR_IsActiveFlag_PVDO(void)
 381 {
 382   return (READ_BIT(PWR->CSR, PWR_CSR_PVDO) == (PWR_CSR_PVDO));
 383 }
 384 
 385 /**
 386   * @brief  Clear Standby Flag
 387   * @rmtoll CR   CSBF       LL_PWR_ClearFlag_SB
 388   * @retval None
 389   */
 390 __STATIC_INLINE void LL_PWR_ClearFlag_SB(void)
 391 {
 392   SET_BIT(PWR->CR, PWR_CR_CSBF);
 393 }
 394 
 395 /**
 396   * @brief  Clear Wake-up Flags
 397   * @rmtoll CR   CWUF       LL_PWR_ClearFlag_WU
 398   * @retval None
 399   */
 400 __STATIC_INLINE void LL_PWR_ClearFlag_WU(void)
 401 {
 402   SET_BIT(PWR->CR, PWR_CR_CWUF);
 403 }
 404 
 405 /**
 406   * @}
 407   */
 408 
 409 #if defined(USE_FULL_LL_DRIVER)
 410 /** @defgroup PWR_LL_EF_Init De-initialization function
 411   * @{
 412   */
 413 ErrorStatus LL_PWR_DeInit(void);
 414 /**
 415   * @}
 416   */
 417 #endif /* USE_FULL_LL_DRIVER */
 418 
 419 /**
 420   * @}
 421   */
 422 
 423 /**
 424   * @}
 425   */
 426 
 427 #endif /* defined(PWR) */
 428 
 429 /**
 430   * @}
 431   */
 432 
 433 #ifdef __cplusplus
 434 }
 435 #endif
 436 
 437 #endif /* __STM32F1xx_LL_PWR_H */