hk32f0xx_pwr.h 4.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167
  1. /**
  2. ******************************************************************************
  3. * @file hk32f0xx_pwr.h
  4. * @version V1.0.1
  5. * @date 2019-08-15
  6. ******************************************************************************
  7. */
  8. /* Define to prevent recursive inclusion -------------------------------------*/
  9. #ifndef __HK32F0XX_PWR_H
  10. #define __HK32F0XX_PWR_H
  11. #ifdef __cplusplus
  12. extern "C" {
  13. #endif
  14. /* Includes ------------------------------------------------------------------*/
  15. #include "hk32f0xx.h"
  16. /** @addtogroup HK32F0xx_StdPeriph_Driver
  17. * @{
  18. */
  19. /** @addtogroup PWR
  20. * @{
  21. */
  22. /* Exported types ------------------------------------------------------------*/
  23. /* Exported constants --------------------------------------------------------*/
  24. /** @defgroup PWR_Exported_Constants
  25. * @{
  26. */
  27. /** @defgroup PWR_PVD_detection_level
  28. * @brief This parameters are only applicable for HK32F051 and HK32F072 devices
  29. * @{
  30. */
  31. #define PWR_PVDLevel_0 PWR_CR_PLS_LEV0
  32. #define PWR_PVDLevel_1 PWR_CR_PLS_LEV1
  33. #define PWR_PVDLevel_2 PWR_CR_PLS_LEV2
  34. #define PWR_PVDLevel_3 PWR_CR_PLS_LEV3
  35. #define PWR_PVDLevel_4 PWR_CR_PLS_LEV4
  36. #define PWR_PVDLevel_5 PWR_CR_PLS_LEV5
  37. #define PWR_PVDLevel_6 PWR_CR_PLS_LEV6
  38. #define PWR_PVDLevel_7 PWR_CR_PLS_LEV7
  39. #define IS_PWR_PVD_LEVEL(LEVEL) (((LEVEL) == PWR_PVDLevel_0) || ((LEVEL) == PWR_PVDLevel_1)|| \
  40. ((LEVEL) == PWR_PVDLevel_2) || ((LEVEL) == PWR_PVDLevel_3)|| \
  41. ((LEVEL) == PWR_PVDLevel_4) || ((LEVEL) == PWR_PVDLevel_5)|| \
  42. ((LEVEL) == PWR_PVDLevel_6) || ((LEVEL) == PWR_PVDLevel_7))
  43. /**
  44. * @}
  45. */
  46. /** @defgroup PWR_WakeUp_Pins
  47. * @{
  48. */
  49. #define PWR_WakeUpPin_1 PWR_CSR_EWUP1
  50. #define PWR_WakeUpPin_2 PWR_CSR_EWUP2
  51. #define IS_PWR_WAKEUP_PIN(PIN) (((PIN) == PWR_WakeUpPin_1) || ((PIN) == PWR_WakeUpPin_2) )
  52. /**
  53. * @}
  54. */
  55. /** @defgroup PWR_Regulator_state_is_Sleep_STOP_mode
  56. * @{
  57. */
  58. #define PWR_Regulator_ON ((uint32_t)0x00000000)
  59. #define PWR_Regulator_LowPower PWR_CR_LPSDSR
  60. #define IS_PWR_REGULATOR(REGULATOR) (((REGULATOR) == PWR_Regulator_ON) || \
  61. ((REGULATOR) == PWR_Regulator_LowPower))
  62. /**
  63. * @}
  64. */
  65. /** @defgroup PWR_SLEEP_mode_entry
  66. * @{
  67. */
  68. #define PWR_SLEEPEntry_WFI ((uint8_t)0x01)
  69. #define PWR_SLEEPEntry_WFE ((uint8_t)0x02)
  70. #define IS_PWR_SLEEP_ENTRY(ENTRY) (((ENTRY) == PWR_SLEEPEntry_WFI) || ((ENTRY) == PWR_SLEEPEntry_WFE))
  71. /**
  72. * @}
  73. */
  74. /** @defgroup PWR_STOP_mode_entry
  75. * @{
  76. */
  77. #define PWR_STOPEntry_WFI ((uint8_t)0x01)
  78. #define PWR_STOPEntry_WFE ((uint8_t)0x02)
  79. #define PWR_STOPEntry_SLEEPONEXIT ((uint8_t)0x03)
  80. #define IS_PWR_STOP_ENTRY(ENTRY) (((ENTRY) == PWR_STOPEntry_WFI) || ((ENTRY) == PWR_STOPEntry_WFE) ||\
  81. ((ENTRY) == PWR_STOPEntry_SLEEPONEXIT))
  82. /**
  83. * @}
  84. */
  85. /** @defgroup PWR_Flag
  86. * @{
  87. */
  88. #define PWR_FLAG_WU PWR_CSR_WUF
  89. #define PWR_FLAG_SB PWR_CSR_SBF
  90. #define PWR_FLAG_PVDO PWR_CSR_PVDO
  91. #define PWR_FLAG_VREFINTRDY PWR_CSR_VREFINTRDYF
  92. #define IS_PWR_GET_FLAG(FLAG) (((FLAG) == PWR_FLAG_WU) || ((FLAG) == PWR_FLAG_SB) || \
  93. ((FLAG) == PWR_FLAG_PVDO) || ((FLAG) == PWR_FLAG_VREFINTRDY))
  94. #define IS_PWR_CLEAR_FLAG(FLAG) (((FLAG) == PWR_FLAG_WU) || ((FLAG) == PWR_FLAG_SB))
  95. /**
  96. * @}
  97. */
  98. /**
  99. * @}
  100. */
  101. /* Exported macro ------------------------------------------------------------*/
  102. /* Exported functions ------------------------------------------------------- */
  103. /* Function used to set the PWR configuration to the default reset state ******/
  104. void PWR_DeInit(void);
  105. /* Backup Domain Access function **********************************************/
  106. void PWR_BackupAccessCmd(FunctionalState NewState);
  107. /* PVD configuration functions ************************************************/
  108. void PWR_PVDLevelConfig(uint32_t PWR_PVDLevel);
  109. void PWR_PVDCmd(FunctionalState NewState);
  110. /* WakeUp pins configuration functions ****************************************/
  111. void PWR_WakeUpPinCmd(uint32_t PWR_WakeUpPin, FunctionalState NewState);
  112. /* Low Power modes configuration functions ************************************/
  113. void PWR_EnterSleepMode(uint8_t PWR_SLEEPEntry);
  114. void PWR_EnterSTOPMode(uint32_t PWR_Regulator, uint8_t PWR_STOPEntry);
  115. void PWR_EnterSTANDBYMode(void);
  116. /* Flags management functions *************************************************/
  117. FlagStatus PWR_GetFlagStatus(uint32_t PWR_FLAG);
  118. void PWR_ClearFlag(uint32_t PWR_FLAG);
  119. #ifdef __cplusplus
  120. }
  121. #endif
  122. #endif /* __HK32F0XX_PWR_H */
  123. /**
  124. * @}
  125. */
  126. /**
  127. * @}
  128. */