1 //////////////////////////////////////////////////////////////////////////////// 2 /// @file hal_pwr.h 3 /// @author AE TEAM 4 /// @brief THIS FILE CONTAINS ALL THE FUNCTIONS PROTOTYPES FOR THE PWR 5 /// FIRMWARE LIBRARY. 6 //////////////////////////////////////////////////////////////////////////////// 7 /// @attention 8 /// 9 /// THE EXISTING FIRMWARE IS ONLY FOR REFERENCE, WHICH IS DESIGNED TO PROVIDE 10 /// CUSTOMERS WITH CODING INFORMATION ABOUT THEIR PRODUCTS SO THEY CAN SAVE 11 /// TIME. THEREFORE, MINDMOTION SHALL NOT BE LIABLE FOR ANY DIRECT, INDIRECT OR 12 /// CONSEQUENTIAL DAMAGES ABOUT ANY CLAIMS ARISING OUT OF THE CONTENT OF SUCH 13 /// HARDWARE AND/OR THE USE OF THE CODING INFORMATION CONTAINED HEREIN IN 14 /// CONNECTION WITH PRODUCTS MADE BY CUSTOMERS. 15 /// 16 /// <H2><CENTER>© COPYRIGHT MINDMOTION </CENTER></H2> 17 //////////////////////////////////////////////////////////////////////////////// 18 19 // Define to prevent recursive inclusion 20 #ifndef __HAL_PWR_H 21 #define __HAL_PWR_H 22 23 // Files includes 24 #include "types.h" 25 #include "reg_pwr.h" 26 #include "reg_syscfg.h" 27 //////////////////////////////////////////////////////////////////////////////// 28 /// @addtogroup MM32_Hardware_Abstract_Layer 29 /// @{ 30 31 //////////////////////////////////////////////////////////////////////////////// 32 /// @defgroup PWR_HAL 33 /// @brief PWR HAL modules 34 /// @{ 35 36 //////////////////////////////////////////////////////////////////////////////// 37 /// @defgroup PWR_Exported_Types 38 /// @{ 39 40 typedef enum { 41 emWUP_Pin1 = 0, 42 emWUP_Pin2 = 1, 43 emWUP_Pin3, 44 emWUP_Pin4, 45 emWUP_Pin5, 46 emWUP_Pin6, 47 } emWUP_Pin_Typedef; 48 //////////////////////////////////////////////////////////////////////////////// 49 /// @brief PVD_detection_level 50 51 typedef enum { 52 emPVD_LEVEL0 = SYSCFG_PDETCSR_PLS_1V7, 53 emPVD_LEVEL1 = SYSCFG_PDETCSR_PLS_2V0, 54 emPVD_LEVEL2 = SYSCFG_PDETCSR_PLS_2V3, 55 emPVD_LEVEL3 = SYSCFG_PDETCSR_PLS_2V6, 56 emPVD_LEVEL4 = SYSCFG_PDETCSR_PLS_2V9, 57 emPVD_LEVEL5 = SYSCFG_PDETCSR_PLS_3V2, 58 emPVD_LEVEL6 = SYSCFG_PDETCSR_PLS_3V5, 59 emPVD_LEVEL7 = SYSCFG_PDETCSR_PLS_3V8, 60 emPVD_LEVEL8 = SYSCFG_PDETCSR_PLS_4V1, 61 emPVD_LEVEL9 = SYSCFG_PDETCSR_PLS_4V4, 62 emPVD_LEVEL10 = SYSCFG_PDETCSR_PLS_4V7 63 } emPVD_Level_Typedef; 64 #define PWR_PVDLevel_1V7 SYSCFG_PDETCSR_PLS_1V7 65 #define PWR_PVDLevel_2V0 SYSCFG_PDETCSR_PLS_2V0 66 #define PWR_PVDLevel_2V3 SYSCFG_PDETCSR_PLS_2V3 67 #define PWR_PVDLevel_2V6 SYSCFG_PDETCSR_PLS_2V6 68 #define PWR_PVDLevel_2V9 SYSCFG_PDETCSR_PLS_2V9 69 #define PWR_PVDLevel_3V2 SYSCFG_PDETCSR_PLS_3V2 70 #define PWR_PVDLevel_3V5 SYSCFG_PDETCSR_PLS_3V5 71 #define PWR_PVDLevel_3V8 SYSCFG_PDETCSR_PLS_3V8 72 #define PWR_PVDLevel_4V1 SYSCFG_PDETCSR_PLS_4V1 73 #define PWR_PVDLevel_4V4 SYSCFG_PDETCSR_PLS_4V4 74 #define PWR_PVDLevel_4V7 SYSCFG_PDETCSR_PLS_4V7 75 /// @brief Regulator_state_is_STOP_mode 76 typedef enum { 77 PWR_Regulator_ON = 0x00000000, 78 PWR_Regulator_LowPower = 0x00000001 79 80 } emPWR_Reg_Stop_mode_Typedef; 81 82 /// @brief STOP_mode_entry 83 typedef enum { 84 PWR_STOPEntry_WFI = 0x00000001, 85 PWR_STOPEntry_WFE = 0x00000002 86 87 } emPWR_STOP_ModeEn_Typedef; 88 89 /// @brief Low Power Mode 90 typedef enum { 91 LP_STOP_MODE = 0, 92 LP_SLEEP_MODE = 1, 93 LP_STANDBY_MODE = 2 94 } emPWR_LP_Mode_Typedef; 95 96 /// @brief Wait_for_mode 97 typedef enum { 98 LP_WFI, 99 LP_WFE 100 } emPWR_Wait_Mode_Typedef; 101 //typedef enum { 102 // PWR_FLAG_WU = PWR_CSR_WUF, 103 // PWR_FLAG_SB = PWR_CSR_SBF, 104 105 // PWR_FLAG_PVDO = PWR_CSR_PVDO 106 107 108 //} emPWR_PWR_Flag_Typedef; 109 110 111 /// @} 112 113 /////////////////////////////////////////////////////////////////////////////// 114 /// @defgroup PWR_Exported_Variables 115 /// @{ 116 117 #ifdef _HAL_PWR_C_ 118 119 #define GLOBAL 120 #else 121 #define GLOBAL extern 122 #endif 123 124 #undef GLOBAL 125 126 /// @} 127 128 //////////////////////////////////////////////////////////////////////////////// 129 /// @defgroup PWR_Exported_Functions 130 /// @{ 131 132 void PWR_DeInit(void); 133 134 void PWR_BackupAccessCmd(FunctionalState state); 135 136 void PWR_PVDCmd(FunctionalState state); 137 void PWR_PVDLevelConfig(emPVD_Level_Typedef pvd_level); 138 void PWR_WakeUpPinCmd(FunctionalState state); 139 void PWR_EnterSTOPMode(emPWR_Reg_Stop_mode_Typedef regulator, emPWR_STOP_ModeEn_Typedef stop_entry); 140 void PWR_EnterSTANDBYMode(void); 141 142 143 void PWR_ClearFlag(u32 flag); 144 FlagStatus PWR_GetFlagStatus(u32 flag); 145 FlagStatus PWR_GetPVDOFlagStatus(u32 flag); 146 void exPWR_EnterLowPowerMode(emPWR_LP_Mode_Typedef lp_mode, emPWR_Wait_Mode_Typedef wait_mode); 147 148 /// @} 149 150 /// @} 151 152 /// @} 153 154 //////////////////////////////////////////////////////////////////////////////// 155 #endif // __HAL_PWR_H 156 //////////////////////////////////////////////////////////////////////////////// 157