The official Mbed 2 C/C++ SDK provides the software platform and libraries to build your applications.

Dependents:   hello SerialTestv11 SerialTestv12 Sierpinski ... more

mbed 2

This is the mbed 2 library. If you'd like to learn about Mbed OS please see the mbed-os docs.

Committer:
AnnaBridge
Date:
Wed Feb 20 20:53:29 2019 +0000
Revision:
172:65be27845400
mbed library release version 165

Who changed what in which revision?

UserRevisionLine numberNew contents of line
AnnaBridge 172:65be27845400 1 /**
AnnaBridge 172:65be27845400 2 ******************************************************************************
AnnaBridge 172:65be27845400 3 * @file stm32l4xx_hal_pwr_ex.h
AnnaBridge 172:65be27845400 4 * @author MCD Application Team
AnnaBridge 172:65be27845400 5 * @brief Header file of PWR HAL Extended module.
AnnaBridge 172:65be27845400 6 ******************************************************************************
AnnaBridge 172:65be27845400 7 * @attention
AnnaBridge 172:65be27845400 8 *
AnnaBridge 172:65be27845400 9 * <h2><center>&copy; COPYRIGHT(c) 2017 STMicroelectronics</center></h2>
AnnaBridge 172:65be27845400 10 *
AnnaBridge 172:65be27845400 11 * Redistribution and use in source and binary forms, with or without modification,
AnnaBridge 172:65be27845400 12 * are permitted provided that the following conditions are met:
AnnaBridge 172:65be27845400 13 * 1. Redistributions of source code must retain the above copyright notice,
AnnaBridge 172:65be27845400 14 * this list of conditions and the following disclaimer.
AnnaBridge 172:65be27845400 15 * 2. Redistributions in binary form must reproduce the above copyright notice,
AnnaBridge 172:65be27845400 16 * this list of conditions and the following disclaimer in the documentation
AnnaBridge 172:65be27845400 17 * and/or other materials provided with the distribution.
AnnaBridge 172:65be27845400 18 * 3. Neither the name of STMicroelectronics nor the names of its contributors
AnnaBridge 172:65be27845400 19 * may be used to endorse or promote products derived from this software
AnnaBridge 172:65be27845400 20 * without specific prior written permission.
AnnaBridge 172:65be27845400 21 *
AnnaBridge 172:65be27845400 22 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
AnnaBridge 172:65be27845400 23 * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
AnnaBridge 172:65be27845400 24 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
AnnaBridge 172:65be27845400 25 * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
AnnaBridge 172:65be27845400 26 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
AnnaBridge 172:65be27845400 27 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
AnnaBridge 172:65be27845400 28 * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
AnnaBridge 172:65be27845400 29 * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
AnnaBridge 172:65be27845400 30 * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
AnnaBridge 172:65be27845400 31 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
AnnaBridge 172:65be27845400 32 *
AnnaBridge 172:65be27845400 33 ******************************************************************************
AnnaBridge 172:65be27845400 34 */
AnnaBridge 172:65be27845400 35
AnnaBridge 172:65be27845400 36 /* Define to prevent recursive inclusion -------------------------------------*/
AnnaBridge 172:65be27845400 37 #ifndef __STM32L4xx_HAL_PWR_EX_H
AnnaBridge 172:65be27845400 38 #define __STM32L4xx_HAL_PWR_EX_H
AnnaBridge 172:65be27845400 39
AnnaBridge 172:65be27845400 40 #ifdef __cplusplus
AnnaBridge 172:65be27845400 41 extern "C" {
AnnaBridge 172:65be27845400 42 #endif
AnnaBridge 172:65be27845400 43
AnnaBridge 172:65be27845400 44 /* Includes ------------------------------------------------------------------*/
AnnaBridge 172:65be27845400 45 #include "stm32l4xx_hal_def.h"
AnnaBridge 172:65be27845400 46
AnnaBridge 172:65be27845400 47 /** @addtogroup STM32L4xx_HAL_Driver
AnnaBridge 172:65be27845400 48 * @{
AnnaBridge 172:65be27845400 49 */
AnnaBridge 172:65be27845400 50
AnnaBridge 172:65be27845400 51 /** @addtogroup PWREx
AnnaBridge 172:65be27845400 52 * @{
AnnaBridge 172:65be27845400 53 */
AnnaBridge 172:65be27845400 54
AnnaBridge 172:65be27845400 55
AnnaBridge 172:65be27845400 56 /* Exported types ------------------------------------------------------------*/
AnnaBridge 172:65be27845400 57
AnnaBridge 172:65be27845400 58 /** @defgroup PWREx_Exported_Types PWR Extended Exported Types
AnnaBridge 172:65be27845400 59 * @{
AnnaBridge 172:65be27845400 60 */
AnnaBridge 172:65be27845400 61
AnnaBridge 172:65be27845400 62
AnnaBridge 172:65be27845400 63 /**
AnnaBridge 172:65be27845400 64 * @brief PWR PVM configuration structure definition
AnnaBridge 172:65be27845400 65 */
AnnaBridge 172:65be27845400 66 typedef struct
AnnaBridge 172:65be27845400 67 {
AnnaBridge 172:65be27845400 68 uint32_t PVMType; /*!< PVMType: Specifies which voltage is monitored and against which threshold.
AnnaBridge 172:65be27845400 69 This parameter can be a value of @ref PWREx_PVM_Type.
AnnaBridge 172:65be27845400 70 @arg @ref PWR_PVM_1 Peripheral Voltage Monitoring 1 enable: VDDUSB versus 1.2 V (applicable when USB feature is supported).
AnnaBridge 172:65be27845400 71 @if STM32L486xx
AnnaBridge 172:65be27845400 72 @arg @ref PWR_PVM_2 Peripheral Voltage Monitoring 2 enable: VDDIO2 versus 0.9 V (applicable when VDDIO2 is present on device).
AnnaBridge 172:65be27845400 73 @endif
AnnaBridge 172:65be27845400 74 @arg @ref PWR_PVM_3 Peripheral Voltage Monitoring 3 enable: VDDA versus 1.62 V.
AnnaBridge 172:65be27845400 75 @arg @ref PWR_PVM_4 Peripheral Voltage Monitoring 4 enable: VDDA versus 2.2 V. */
AnnaBridge 172:65be27845400 76
AnnaBridge 172:65be27845400 77 uint32_t Mode; /*!< Mode: Specifies the operating mode for the selected pins.
AnnaBridge 172:65be27845400 78 This parameter can be a value of @ref PWREx_PVM_Mode. */
AnnaBridge 172:65be27845400 79 }PWR_PVMTypeDef;
AnnaBridge 172:65be27845400 80
AnnaBridge 172:65be27845400 81 /**
AnnaBridge 172:65be27845400 82 * @}
AnnaBridge 172:65be27845400 83 */
AnnaBridge 172:65be27845400 84
AnnaBridge 172:65be27845400 85 /* Exported constants --------------------------------------------------------*/
AnnaBridge 172:65be27845400 86
AnnaBridge 172:65be27845400 87 /** @defgroup PWREx_Exported_Constants PWR Extended Exported Constants
AnnaBridge 172:65be27845400 88 * @{
AnnaBridge 172:65be27845400 89 */
AnnaBridge 172:65be27845400 90
AnnaBridge 172:65be27845400 91 /** @defgroup PWREx_WUP_Polarity Shift to apply to retrieve polarity information from PWR_WAKEUP_PINy_xxx constants
AnnaBridge 172:65be27845400 92 * @{
AnnaBridge 172:65be27845400 93 */
AnnaBridge 172:65be27845400 94 #define PWR_WUP_POLARITY_SHIFT 0x05 /*!< Internal constant used to retrieve wakeup pin polariry */
AnnaBridge 172:65be27845400 95 /**
AnnaBridge 172:65be27845400 96 * @}
AnnaBridge 172:65be27845400 97 */
AnnaBridge 172:65be27845400 98
AnnaBridge 172:65be27845400 99
AnnaBridge 172:65be27845400 100 /** @defgroup PWREx_WakeUp_Pins PWR wake-up pins
AnnaBridge 172:65be27845400 101 * @{
AnnaBridge 172:65be27845400 102 */
AnnaBridge 172:65be27845400 103 #define PWR_WAKEUP_PIN1 PWR_CR3_EWUP1 /*!< Wakeup pin 1 (with high level polarity) */
AnnaBridge 172:65be27845400 104 #define PWR_WAKEUP_PIN2 PWR_CR3_EWUP2 /*!< Wakeup pin 2 (with high level polarity) */
AnnaBridge 172:65be27845400 105 #define PWR_WAKEUP_PIN3 PWR_CR3_EWUP3 /*!< Wakeup pin 3 (with high level polarity) */
AnnaBridge 172:65be27845400 106 #define PWR_WAKEUP_PIN4 PWR_CR3_EWUP4 /*!< Wakeup pin 4 (with high level polarity) */
AnnaBridge 172:65be27845400 107 #define PWR_WAKEUP_PIN5 PWR_CR3_EWUP5 /*!< Wakeup pin 5 (with high level polarity) */
AnnaBridge 172:65be27845400 108 #define PWR_WAKEUP_PIN1_HIGH PWR_CR3_EWUP1 /*!< Wakeup pin 1 (with high level polarity) */
AnnaBridge 172:65be27845400 109 #define PWR_WAKEUP_PIN2_HIGH PWR_CR3_EWUP2 /*!< Wakeup pin 2 (with high level polarity) */
AnnaBridge 172:65be27845400 110 #define PWR_WAKEUP_PIN3_HIGH PWR_CR3_EWUP3 /*!< Wakeup pin 3 (with high level polarity) */
AnnaBridge 172:65be27845400 111 #define PWR_WAKEUP_PIN4_HIGH PWR_CR3_EWUP4 /*!< Wakeup pin 4 (with high level polarity) */
AnnaBridge 172:65be27845400 112 #define PWR_WAKEUP_PIN5_HIGH PWR_CR3_EWUP5 /*!< Wakeup pin 5 (with high level polarity) */
AnnaBridge 172:65be27845400 113 #define PWR_WAKEUP_PIN1_LOW (uint32_t)((PWR_CR4_WP1<<PWR_WUP_POLARITY_SHIFT) | PWR_CR3_EWUP1) /*!< Wakeup pin 1 (with low level polarity) */
AnnaBridge 172:65be27845400 114 #define PWR_WAKEUP_PIN2_LOW (uint32_t)((PWR_CR4_WP2<<PWR_WUP_POLARITY_SHIFT) | PWR_CR3_EWUP2) /*!< Wakeup pin 2 (with low level polarity) */
AnnaBridge 172:65be27845400 115 #define PWR_WAKEUP_PIN3_LOW (uint32_t)((PWR_CR4_WP3<<PWR_WUP_POLARITY_SHIFT) | PWR_CR3_EWUP3) /*!< Wakeup pin 3 (with low level polarity) */
AnnaBridge 172:65be27845400 116 #define PWR_WAKEUP_PIN4_LOW (uint32_t)((PWR_CR4_WP4<<PWR_WUP_POLARITY_SHIFT) | PWR_CR3_EWUP4) /*!< Wakeup pin 4 (with low level polarity) */
AnnaBridge 172:65be27845400 117 #define PWR_WAKEUP_PIN5_LOW (uint32_t)((PWR_CR4_WP5<<PWR_WUP_POLARITY_SHIFT) | PWR_CR3_EWUP5) /*!< Wakeup pin 5 (with low level polarity) */
AnnaBridge 172:65be27845400 118 /**
AnnaBridge 172:65be27845400 119 * @}
AnnaBridge 172:65be27845400 120 */
AnnaBridge 172:65be27845400 121
AnnaBridge 172:65be27845400 122 /** @defgroup PWREx_PVM_Type Peripheral Voltage Monitoring type
AnnaBridge 172:65be27845400 123 * @{
AnnaBridge 172:65be27845400 124 */
AnnaBridge 172:65be27845400 125 #if defined(PWR_CR2_PVME1)
AnnaBridge 172:65be27845400 126 #define PWR_PVM_1 PWR_CR2_PVME1 /*!< Peripheral Voltage Monitoring 1 enable: VDDUSB versus 1.2 V (applicable when USB feature is supported) */
AnnaBridge 172:65be27845400 127 #endif /* PWR_CR2_PVME1 */
AnnaBridge 172:65be27845400 128 #if defined(PWR_CR2_PVME2)
AnnaBridge 172:65be27845400 129 #define PWR_PVM_2 PWR_CR2_PVME2 /*!< Peripheral Voltage Monitoring 2 enable: VDDIO2 versus 0.9 V (applicable when VDDIO2 is present on device) */
AnnaBridge 172:65be27845400 130 #endif /* PWR_CR2_PVME2 */
AnnaBridge 172:65be27845400 131 #define PWR_PVM_3 PWR_CR2_PVME3 /*!< Peripheral Voltage Monitoring 3 enable: VDDA versus 1.62 V */
AnnaBridge 172:65be27845400 132 #define PWR_PVM_4 PWR_CR2_PVME4 /*!< Peripheral Voltage Monitoring 4 enable: VDDA versus 2.2 V */
AnnaBridge 172:65be27845400 133 /**
AnnaBridge 172:65be27845400 134 * @}
AnnaBridge 172:65be27845400 135 */
AnnaBridge 172:65be27845400 136
AnnaBridge 172:65be27845400 137 /** @defgroup PWREx_PVM_Mode PWR PVM interrupt and event mode
AnnaBridge 172:65be27845400 138 * @{
AnnaBridge 172:65be27845400 139 */
AnnaBridge 172:65be27845400 140 #define PWR_PVM_MODE_NORMAL ((uint32_t)0x00000000) /*!< basic mode is used */
AnnaBridge 172:65be27845400 141 #define PWR_PVM_MODE_IT_RISING ((uint32_t)0x00010001) /*!< External Interrupt Mode with Rising edge trigger detection */
AnnaBridge 172:65be27845400 142 #define PWR_PVM_MODE_IT_FALLING ((uint32_t)0x00010002) /*!< External Interrupt Mode with Falling edge trigger detection */
AnnaBridge 172:65be27845400 143 #define PWR_PVM_MODE_IT_RISING_FALLING ((uint32_t)0x00010003) /*!< External Interrupt Mode with Rising/Falling edge trigger detection */
AnnaBridge 172:65be27845400 144 #define PWR_PVM_MODE_EVENT_RISING ((uint32_t)0x00020001) /*!< Event Mode with Rising edge trigger detection */
AnnaBridge 172:65be27845400 145 #define PWR_PVM_MODE_EVENT_FALLING ((uint32_t)0x00020002) /*!< Event Mode with Falling edge trigger detection */
AnnaBridge 172:65be27845400 146 #define PWR_PVM_MODE_EVENT_RISING_FALLING ((uint32_t)0x00020003) /*!< Event Mode with Rising/Falling edge trigger detection */
AnnaBridge 172:65be27845400 147 /**
AnnaBridge 172:65be27845400 148 * @}
AnnaBridge 172:65be27845400 149 */
AnnaBridge 172:65be27845400 150
AnnaBridge 172:65be27845400 151
AnnaBridge 172:65be27845400 152
AnnaBridge 172:65be27845400 153 /** @defgroup PWREx_Regulator_Voltage_Scale PWR Regulator voltage scale
AnnaBridge 172:65be27845400 154 * @{
AnnaBridge 172:65be27845400 155 */
AnnaBridge 172:65be27845400 156 #if defined(PWR_CR5_R1MODE)
AnnaBridge 172:65be27845400 157 #define PWR_REGULATOR_VOLTAGE_SCALE1_BOOST ((uint32_t)0x00000000) /*!< Voltage scaling range 1 boost mode */
AnnaBridge 172:65be27845400 158 #endif
AnnaBridge 172:65be27845400 159 #define PWR_REGULATOR_VOLTAGE_SCALE1 PWR_CR1_VOS_0 /*!< Voltage scaling range 1 normal mode */
AnnaBridge 172:65be27845400 160 #define PWR_REGULATOR_VOLTAGE_SCALE2 PWR_CR1_VOS_1 /*!< Voltage scaling range 2 */
AnnaBridge 172:65be27845400 161 /**
AnnaBridge 172:65be27845400 162 * @}
AnnaBridge 172:65be27845400 163 */
AnnaBridge 172:65be27845400 164
AnnaBridge 172:65be27845400 165
AnnaBridge 172:65be27845400 166 /** @defgroup PWREx_VBAT_Battery_Charging_Selection PWR battery charging resistor selection
AnnaBridge 172:65be27845400 167 * @{
AnnaBridge 172:65be27845400 168 */
AnnaBridge 172:65be27845400 169 #define PWR_BATTERY_CHARGING_RESISTOR_5 ((uint32_t)0x00000000) /*!< VBAT charging through a 5 kOhms resistor */
AnnaBridge 172:65be27845400 170 #define PWR_BATTERY_CHARGING_RESISTOR_1_5 PWR_CR4_VBRS /*!< VBAT charging through a 1.5 kOhms resistor */
AnnaBridge 172:65be27845400 171 /**
AnnaBridge 172:65be27845400 172 * @}
AnnaBridge 172:65be27845400 173 */
AnnaBridge 172:65be27845400 174
AnnaBridge 172:65be27845400 175 /** @defgroup PWREx_VBAT_Battery_Charging PWR battery charging
AnnaBridge 172:65be27845400 176 * @{
AnnaBridge 172:65be27845400 177 */
AnnaBridge 172:65be27845400 178 #define PWR_BATTERY_CHARGING_DISABLE ((uint32_t)0x00000000)
AnnaBridge 172:65be27845400 179 #define PWR_BATTERY_CHARGING_ENABLE PWR_CR4_VBE
AnnaBridge 172:65be27845400 180 /**
AnnaBridge 172:65be27845400 181 * @}
AnnaBridge 172:65be27845400 182 */
AnnaBridge 172:65be27845400 183
AnnaBridge 172:65be27845400 184 /** @defgroup PWREx_GPIO_Bit_Number GPIO bit number for I/O setting in standby/shutdown mode
AnnaBridge 172:65be27845400 185 * @{
AnnaBridge 172:65be27845400 186 */
AnnaBridge 172:65be27845400 187 #define PWR_GPIO_BIT_0 PWR_PUCRA_PA0 /*!< GPIO port I/O pin 0 */
AnnaBridge 172:65be27845400 188 #define PWR_GPIO_BIT_1 PWR_PUCRA_PA1 /*!< GPIO port I/O pin 1 */
AnnaBridge 172:65be27845400 189 #define PWR_GPIO_BIT_2 PWR_PUCRA_PA2 /*!< GPIO port I/O pin 2 */
AnnaBridge 172:65be27845400 190 #define PWR_GPIO_BIT_3 PWR_PUCRA_PA3 /*!< GPIO port I/O pin 3 */
AnnaBridge 172:65be27845400 191 #define PWR_GPIO_BIT_4 PWR_PUCRA_PA4 /*!< GPIO port I/O pin 4 */
AnnaBridge 172:65be27845400 192 #define PWR_GPIO_BIT_5 PWR_PUCRA_PA5 /*!< GPIO port I/O pin 5 */
AnnaBridge 172:65be27845400 193 #define PWR_GPIO_BIT_6 PWR_PUCRA_PA6 /*!< GPIO port I/O pin 6 */
AnnaBridge 172:65be27845400 194 #define PWR_GPIO_BIT_7 PWR_PUCRA_PA7 /*!< GPIO port I/O pin 7 */
AnnaBridge 172:65be27845400 195 #define PWR_GPIO_BIT_8 PWR_PUCRA_PA8 /*!< GPIO port I/O pin 8 */
AnnaBridge 172:65be27845400 196 #define PWR_GPIO_BIT_9 PWR_PUCRA_PA9 /*!< GPIO port I/O pin 9 */
AnnaBridge 172:65be27845400 197 #define PWR_GPIO_BIT_10 PWR_PUCRA_PA10 /*!< GPIO port I/O pin 10 */
AnnaBridge 172:65be27845400 198 #define PWR_GPIO_BIT_11 PWR_PUCRA_PA11 /*!< GPIO port I/O pin 11 */
AnnaBridge 172:65be27845400 199 #define PWR_GPIO_BIT_12 PWR_PUCRA_PA12 /*!< GPIO port I/O pin 12 */
AnnaBridge 172:65be27845400 200 #define PWR_GPIO_BIT_13 PWR_PUCRA_PA13 /*!< GPIO port I/O pin 13 */
AnnaBridge 172:65be27845400 201 #define PWR_GPIO_BIT_14 PWR_PDCRA_PA14 /*!< GPIO port I/O pin 14 */
AnnaBridge 172:65be27845400 202 #define PWR_GPIO_BIT_15 PWR_PUCRA_PA15 /*!< GPIO port I/O pin 15 */
AnnaBridge 172:65be27845400 203 /**
AnnaBridge 172:65be27845400 204 * @}
AnnaBridge 172:65be27845400 205 */
AnnaBridge 172:65be27845400 206
AnnaBridge 172:65be27845400 207 /** @defgroup PWREx_GPIO GPIO port
AnnaBridge 172:65be27845400 208 * @{
AnnaBridge 172:65be27845400 209 */
AnnaBridge 172:65be27845400 210 #define PWR_GPIO_A 0x00000000 /*!< GPIO port A */
AnnaBridge 172:65be27845400 211 #define PWR_GPIO_B 0x00000001 /*!< GPIO port B */
AnnaBridge 172:65be27845400 212 #define PWR_GPIO_C 0x00000002 /*!< GPIO port C */
AnnaBridge 172:65be27845400 213 #if defined(GPIOD_BASE)
AnnaBridge 172:65be27845400 214 #define PWR_GPIO_D 0x00000003 /*!< GPIO port D */
AnnaBridge 172:65be27845400 215 #endif
AnnaBridge 172:65be27845400 216 #if defined(GPIOE_BASE)
AnnaBridge 172:65be27845400 217 #define PWR_GPIO_E 0x00000004 /*!< GPIO port E */
AnnaBridge 172:65be27845400 218 #endif
AnnaBridge 172:65be27845400 219 #if defined(GPIOF_BASE)
AnnaBridge 172:65be27845400 220 #define PWR_GPIO_F 0x00000005 /*!< GPIO port F */
AnnaBridge 172:65be27845400 221 #endif
AnnaBridge 172:65be27845400 222 #if defined(GPIOG_BASE)
AnnaBridge 172:65be27845400 223 #define PWR_GPIO_G 0x00000006 /*!< GPIO port G */
AnnaBridge 172:65be27845400 224 #endif
AnnaBridge 172:65be27845400 225 #define PWR_GPIO_H 0x00000007 /*!< GPIO port H */
AnnaBridge 172:65be27845400 226 #if defined(GPIOI_BASE)
AnnaBridge 172:65be27845400 227 #define PWR_GPIO_I 0x00000008 /*!< GPIO port I */
AnnaBridge 172:65be27845400 228 #endif
AnnaBridge 172:65be27845400 229 /**
AnnaBridge 172:65be27845400 230 * @}
AnnaBridge 172:65be27845400 231 */
AnnaBridge 172:65be27845400 232
AnnaBridge 172:65be27845400 233 /** @defgroup PWREx_PVM_EXTI_LINE PWR PVM external interrupts lines
AnnaBridge 172:65be27845400 234 * @{
AnnaBridge 172:65be27845400 235 */
AnnaBridge 172:65be27845400 236 #if defined(PWR_CR2_PVME1)
AnnaBridge 172:65be27845400 237 #define PWR_EXTI_LINE_PVM1 ((uint32_t)0x00000008) /*!< External interrupt line 35 Connected to the PVM1 EXTI Line */
AnnaBridge 172:65be27845400 238 #endif /* PWR_CR2_PVME1 */
AnnaBridge 172:65be27845400 239 #if defined(PWR_CR2_PVME2)
AnnaBridge 172:65be27845400 240 #define PWR_EXTI_LINE_PVM2 ((uint32_t)0x00000010) /*!< External interrupt line 36 Connected to the PVM2 EXTI Line */
AnnaBridge 172:65be27845400 241 #endif /* PWR_CR2_PVME2 */
AnnaBridge 172:65be27845400 242 #define PWR_EXTI_LINE_PVM3 ((uint32_t)0x00000020) /*!< External interrupt line 37 Connected to the PVM3 EXTI Line */
AnnaBridge 172:65be27845400 243 #define PWR_EXTI_LINE_PVM4 ((uint32_t)0x00000040) /*!< External interrupt line 38 Connected to the PVM4 EXTI Line */
AnnaBridge 172:65be27845400 244 /**
AnnaBridge 172:65be27845400 245 * @}
AnnaBridge 172:65be27845400 246 */
AnnaBridge 172:65be27845400 247
AnnaBridge 172:65be27845400 248 /** @defgroup PWREx_PVM_EVENT_LINE PWR PVM event lines
AnnaBridge 172:65be27845400 249 * @{
AnnaBridge 172:65be27845400 250 */
AnnaBridge 172:65be27845400 251 #if defined(PWR_CR2_PVME1)
AnnaBridge 172:65be27845400 252 #define PWR_EVENT_LINE_PVM1 ((uint32_t)0x00000008) /*!< Event line 35 Connected to the PVM1 EXTI Line */
AnnaBridge 172:65be27845400 253 #endif /* PWR_CR2_PVME1 */
AnnaBridge 172:65be27845400 254 #if defined(PWR_CR2_PVME2)
AnnaBridge 172:65be27845400 255 #define PWR_EVENT_LINE_PVM2 ((uint32_t)0x00000010) /*!< Event line 36 Connected to the PVM2 EXTI Line */
AnnaBridge 172:65be27845400 256 #endif /* PWR_CR2_PVME2 */
AnnaBridge 172:65be27845400 257 #define PWR_EVENT_LINE_PVM3 ((uint32_t)0x00000020) /*!< Event line 37 Connected to the PVM3 EXTI Line */
AnnaBridge 172:65be27845400 258 #define PWR_EVENT_LINE_PVM4 ((uint32_t)0x00000040) /*!< Event line 38 Connected to the PVM4 EXTI Line */
AnnaBridge 172:65be27845400 259 /**
AnnaBridge 172:65be27845400 260 * @}
AnnaBridge 172:65be27845400 261 */
AnnaBridge 172:65be27845400 262
AnnaBridge 172:65be27845400 263 /** @defgroup PWREx_Flag PWR Status Flags
AnnaBridge 172:65be27845400 264 * Elements values convention: 0000 0000 0XXY YYYYb
AnnaBridge 172:65be27845400 265 * - Y YYYY : Flag position in the XX register (5 bits)
AnnaBridge 172:65be27845400 266 * - XX : Status register (2 bits)
AnnaBridge 172:65be27845400 267 * - 01: SR1 register
AnnaBridge 172:65be27845400 268 * - 10: SR2 register
AnnaBridge 172:65be27845400 269 * The only exception is PWR_FLAG_WU, encompassing all
AnnaBridge 172:65be27845400 270 * wake-up flags and set to PWR_SR1_WUF.
AnnaBridge 172:65be27845400 271 * @{
AnnaBridge 172:65be27845400 272 */
AnnaBridge 172:65be27845400 273 #define PWR_FLAG_WUF1 ((uint32_t)0x0020) /*!< Wakeup event on wakeup pin 1 */
AnnaBridge 172:65be27845400 274 #define PWR_FLAG_WUF2 ((uint32_t)0x0021) /*!< Wakeup event on wakeup pin 2 */
AnnaBridge 172:65be27845400 275 #define PWR_FLAG_WUF3 ((uint32_t)0x0022) /*!< Wakeup event on wakeup pin 3 */
AnnaBridge 172:65be27845400 276 #define PWR_FLAG_WUF4 ((uint32_t)0x0023) /*!< Wakeup event on wakeup pin 4 */
AnnaBridge 172:65be27845400 277 #define PWR_FLAG_WUF5 ((uint32_t)0x0024) /*!< Wakeup event on wakeup pin 5 */
AnnaBridge 172:65be27845400 278 #define PWR_FLAG_WU PWR_SR1_WUF /*!< Encompass wakeup event on all wakeup pins */
AnnaBridge 172:65be27845400 279 #define PWR_FLAG_SB ((uint32_t)0x0028) /*!< Standby flag */
AnnaBridge 172:65be27845400 280 #define PWR_FLAG_WUFI ((uint32_t)0x002F) /*!< Wakeup on internal wakeup line */
AnnaBridge 172:65be27845400 281
AnnaBridge 172:65be27845400 282 #define PWR_FLAG_REGLPS ((uint32_t)0x0048) /*!< Low-power regulator start flag */
AnnaBridge 172:65be27845400 283 #define PWR_FLAG_REGLPF ((uint32_t)0x0049) /*!< Low-power regulator flag */
AnnaBridge 172:65be27845400 284 #define PWR_FLAG_VOSF ((uint32_t)0x004A) /*!< Voltage scaling flag */
AnnaBridge 172:65be27845400 285 #define PWR_FLAG_PVDO ((uint32_t)0x004B) /*!< Power Voltage Detector output flag */
AnnaBridge 172:65be27845400 286 #if defined(PWR_CR2_PVME1)
AnnaBridge 172:65be27845400 287 #define PWR_FLAG_PVMO1 ((uint32_t)0x004C) /*!< Power Voltage Monitoring 1 output flag */
AnnaBridge 172:65be27845400 288 #endif /* PWR_CR2_PVME1 */
AnnaBridge 172:65be27845400 289 #if defined(PWR_CR2_PVME2)
AnnaBridge 172:65be27845400 290 #define PWR_FLAG_PVMO2 ((uint32_t)0x004D) /*!< Power Voltage Monitoring 2 output flag */
AnnaBridge 172:65be27845400 291 #endif /* PWR_CR2_PVME2 */
AnnaBridge 172:65be27845400 292 #define PWR_FLAG_PVMO3 ((uint32_t)0x004E) /*!< Power Voltage Monitoring 3 output flag */
AnnaBridge 172:65be27845400 293 #define PWR_FLAG_PVMO4 ((uint32_t)0x004F) /*!< Power Voltage Monitoring 4 output flag */
AnnaBridge 172:65be27845400 294 /**
AnnaBridge 172:65be27845400 295 * @}
AnnaBridge 172:65be27845400 296 */
AnnaBridge 172:65be27845400 297
AnnaBridge 172:65be27845400 298 /**
AnnaBridge 172:65be27845400 299 * @}
AnnaBridge 172:65be27845400 300 */
AnnaBridge 172:65be27845400 301
AnnaBridge 172:65be27845400 302 /* Exported macros -----------------------------------------------------------*/
AnnaBridge 172:65be27845400 303 /** @defgroup PWREx_Exported_Macros PWR Extended Exported Macros
AnnaBridge 172:65be27845400 304 * @{
AnnaBridge 172:65be27845400 305 */
AnnaBridge 172:65be27845400 306
AnnaBridge 172:65be27845400 307 #if defined(PWR_CR2_PVME1)
AnnaBridge 172:65be27845400 308 /**
AnnaBridge 172:65be27845400 309 * @brief Enable the PVM1 Extended Interrupt Line.
AnnaBridge 172:65be27845400 310 * @retval None
AnnaBridge 172:65be27845400 311 */
AnnaBridge 172:65be27845400 312 #define __HAL_PWR_PVM1_EXTI_ENABLE_IT() SET_BIT(EXTI->IMR2, PWR_EXTI_LINE_PVM1)
AnnaBridge 172:65be27845400 313
AnnaBridge 172:65be27845400 314 /**
AnnaBridge 172:65be27845400 315 * @brief Disable the PVM1 Extended Interrupt Line.
AnnaBridge 172:65be27845400 316 * @retval None
AnnaBridge 172:65be27845400 317 */
AnnaBridge 172:65be27845400 318 #define __HAL_PWR_PVM1_EXTI_DISABLE_IT() CLEAR_BIT(EXTI->IMR2, PWR_EXTI_LINE_PVM1)
AnnaBridge 172:65be27845400 319
AnnaBridge 172:65be27845400 320 /**
AnnaBridge 172:65be27845400 321 * @brief Enable the PVM1 Event Line.
AnnaBridge 172:65be27845400 322 * @retval None
AnnaBridge 172:65be27845400 323 */
AnnaBridge 172:65be27845400 324 #define __HAL_PWR_PVM1_EXTI_ENABLE_EVENT() SET_BIT(EXTI->EMR2, PWR_EVENT_LINE_PVM1)
AnnaBridge 172:65be27845400 325
AnnaBridge 172:65be27845400 326 /**
AnnaBridge 172:65be27845400 327 * @brief Disable the PVM1 Event Line.
AnnaBridge 172:65be27845400 328 * @retval None
AnnaBridge 172:65be27845400 329 */
AnnaBridge 172:65be27845400 330 #define __HAL_PWR_PVM1_EXTI_DISABLE_EVENT() CLEAR_BIT(EXTI->EMR2, PWR_EVENT_LINE_PVM1)
AnnaBridge 172:65be27845400 331
AnnaBridge 172:65be27845400 332 /**
AnnaBridge 172:65be27845400 333 * @brief Enable the PVM1 Extended Interrupt Rising Trigger.
AnnaBridge 172:65be27845400 334 * @retval None
AnnaBridge 172:65be27845400 335 */
AnnaBridge 172:65be27845400 336 #define __HAL_PWR_PVM1_EXTI_ENABLE_RISING_EDGE() SET_BIT(EXTI->RTSR2, PWR_EXTI_LINE_PVM1)
AnnaBridge 172:65be27845400 337
AnnaBridge 172:65be27845400 338 /**
AnnaBridge 172:65be27845400 339 * @brief Disable the PVM1 Extended Interrupt Rising Trigger.
AnnaBridge 172:65be27845400 340 * @retval None
AnnaBridge 172:65be27845400 341 */
AnnaBridge 172:65be27845400 342 #define __HAL_PWR_PVM1_EXTI_DISABLE_RISING_EDGE() CLEAR_BIT(EXTI->RTSR2, PWR_EXTI_LINE_PVM1)
AnnaBridge 172:65be27845400 343
AnnaBridge 172:65be27845400 344 /**
AnnaBridge 172:65be27845400 345 * @brief Enable the PVM1 Extended Interrupt Falling Trigger.
AnnaBridge 172:65be27845400 346 * @retval None
AnnaBridge 172:65be27845400 347 */
AnnaBridge 172:65be27845400 348 #define __HAL_PWR_PVM1_EXTI_ENABLE_FALLING_EDGE() SET_BIT(EXTI->FTSR2, PWR_EXTI_LINE_PVM1)
AnnaBridge 172:65be27845400 349
AnnaBridge 172:65be27845400 350
AnnaBridge 172:65be27845400 351 /**
AnnaBridge 172:65be27845400 352 * @brief Disable the PVM1 Extended Interrupt Falling Trigger.
AnnaBridge 172:65be27845400 353 * @retval None
AnnaBridge 172:65be27845400 354 */
AnnaBridge 172:65be27845400 355 #define __HAL_PWR_PVM1_EXTI_DISABLE_FALLING_EDGE() CLEAR_BIT(EXTI->FTSR2, PWR_EXTI_LINE_PVM1)
AnnaBridge 172:65be27845400 356
AnnaBridge 172:65be27845400 357
AnnaBridge 172:65be27845400 358 /**
AnnaBridge 172:65be27845400 359 * @brief PVM1 EXTI line configuration: set rising & falling edge trigger.
AnnaBridge 172:65be27845400 360 * @retval None
AnnaBridge 172:65be27845400 361 */
AnnaBridge 172:65be27845400 362 #define __HAL_PWR_PVM1_EXTI_ENABLE_RISING_FALLING_EDGE() \
AnnaBridge 172:65be27845400 363 do { \
AnnaBridge 172:65be27845400 364 __HAL_PWR_PVM1_EXTI_ENABLE_RISING_EDGE(); \
AnnaBridge 172:65be27845400 365 __HAL_PWR_PVM1_EXTI_ENABLE_FALLING_EDGE(); \
AnnaBridge 172:65be27845400 366 } while(0)
AnnaBridge 172:65be27845400 367
AnnaBridge 172:65be27845400 368 /**
AnnaBridge 172:65be27845400 369 * @brief Disable the PVM1 Extended Interrupt Rising & Falling Trigger.
AnnaBridge 172:65be27845400 370 * @retval None
AnnaBridge 172:65be27845400 371 */
AnnaBridge 172:65be27845400 372 #define __HAL_PWR_PVM1_EXTI_DISABLE_RISING_FALLING_EDGE() \
AnnaBridge 172:65be27845400 373 do { \
AnnaBridge 172:65be27845400 374 __HAL_PWR_PVM1_EXTI_DISABLE_RISING_EDGE(); \
AnnaBridge 172:65be27845400 375 __HAL_PWR_PVM1_EXTI_DISABLE_FALLING_EDGE(); \
AnnaBridge 172:65be27845400 376 } while(0)
AnnaBridge 172:65be27845400 377
AnnaBridge 172:65be27845400 378 /**
AnnaBridge 172:65be27845400 379 * @brief Generate a Software interrupt on selected EXTI line.
AnnaBridge 172:65be27845400 380 * @retval None
AnnaBridge 172:65be27845400 381 */
AnnaBridge 172:65be27845400 382 #define __HAL_PWR_PVM1_EXTI_GENERATE_SWIT() SET_BIT(EXTI->SWIER2, PWR_EXTI_LINE_PVM1)
AnnaBridge 172:65be27845400 383
AnnaBridge 172:65be27845400 384 /**
AnnaBridge 172:65be27845400 385 * @brief Check whether the specified PVM1 EXTI interrupt flag is set or not.
AnnaBridge 172:65be27845400 386 * @retval EXTI PVM1 Line Status.
AnnaBridge 172:65be27845400 387 */
AnnaBridge 172:65be27845400 388 #define __HAL_PWR_PVM1_EXTI_GET_FLAG() (EXTI->PR2 & PWR_EXTI_LINE_PVM1)
AnnaBridge 172:65be27845400 389
AnnaBridge 172:65be27845400 390 /**
AnnaBridge 172:65be27845400 391 * @brief Clear the PVM1 EXTI flag.
AnnaBridge 172:65be27845400 392 * @retval None
AnnaBridge 172:65be27845400 393 */
AnnaBridge 172:65be27845400 394 #define __HAL_PWR_PVM1_EXTI_CLEAR_FLAG() WRITE_REG(EXTI->PR2, PWR_EXTI_LINE_PVM1)
AnnaBridge 172:65be27845400 395
AnnaBridge 172:65be27845400 396 #endif /* PWR_CR2_PVME1 */
AnnaBridge 172:65be27845400 397
AnnaBridge 172:65be27845400 398
AnnaBridge 172:65be27845400 399 #if defined(PWR_CR2_PVME2)
AnnaBridge 172:65be27845400 400 /**
AnnaBridge 172:65be27845400 401 * @brief Enable the PVM2 Extended Interrupt Line.
AnnaBridge 172:65be27845400 402 * @retval None
AnnaBridge 172:65be27845400 403 */
AnnaBridge 172:65be27845400 404 #define __HAL_PWR_PVM2_EXTI_ENABLE_IT() SET_BIT(EXTI->IMR2, PWR_EXTI_LINE_PVM2)
AnnaBridge 172:65be27845400 405
AnnaBridge 172:65be27845400 406 /**
AnnaBridge 172:65be27845400 407 * @brief Disable the PVM2 Extended Interrupt Line.
AnnaBridge 172:65be27845400 408 * @retval None
AnnaBridge 172:65be27845400 409 */
AnnaBridge 172:65be27845400 410 #define __HAL_PWR_PVM2_EXTI_DISABLE_IT() CLEAR_BIT(EXTI->IMR2, PWR_EXTI_LINE_PVM2)
AnnaBridge 172:65be27845400 411
AnnaBridge 172:65be27845400 412 /**
AnnaBridge 172:65be27845400 413 * @brief Enable the PVM2 Event Line.
AnnaBridge 172:65be27845400 414 * @retval None
AnnaBridge 172:65be27845400 415 */
AnnaBridge 172:65be27845400 416 #define __HAL_PWR_PVM2_EXTI_ENABLE_EVENT() SET_BIT(EXTI->EMR2, PWR_EVENT_LINE_PVM2)
AnnaBridge 172:65be27845400 417
AnnaBridge 172:65be27845400 418 /**
AnnaBridge 172:65be27845400 419 * @brief Disable the PVM2 Event Line.
AnnaBridge 172:65be27845400 420 * @retval None
AnnaBridge 172:65be27845400 421 */
AnnaBridge 172:65be27845400 422 #define __HAL_PWR_PVM2_EXTI_DISABLE_EVENT() CLEAR_BIT(EXTI->EMR2, PWR_EVENT_LINE_PVM2)
AnnaBridge 172:65be27845400 423
AnnaBridge 172:65be27845400 424 /**
AnnaBridge 172:65be27845400 425 * @brief Enable the PVM2 Extended Interrupt Rising Trigger.
AnnaBridge 172:65be27845400 426 * @retval None
AnnaBridge 172:65be27845400 427 */
AnnaBridge 172:65be27845400 428 #define __HAL_PWR_PVM2_EXTI_ENABLE_RISING_EDGE() SET_BIT(EXTI->RTSR2, PWR_EXTI_LINE_PVM2)
AnnaBridge 172:65be27845400 429
AnnaBridge 172:65be27845400 430 /**
AnnaBridge 172:65be27845400 431 * @brief Disable the PVM2 Extended Interrupt Rising Trigger.
AnnaBridge 172:65be27845400 432 * @retval None
AnnaBridge 172:65be27845400 433 */
AnnaBridge 172:65be27845400 434 #define __HAL_PWR_PVM2_EXTI_DISABLE_RISING_EDGE() CLEAR_BIT(EXTI->RTSR2, PWR_EXTI_LINE_PVM2)
AnnaBridge 172:65be27845400 435
AnnaBridge 172:65be27845400 436 /**
AnnaBridge 172:65be27845400 437 * @brief Enable the PVM2 Extended Interrupt Falling Trigger.
AnnaBridge 172:65be27845400 438 * @retval None
AnnaBridge 172:65be27845400 439 */
AnnaBridge 172:65be27845400 440 #define __HAL_PWR_PVM2_EXTI_ENABLE_FALLING_EDGE() SET_BIT(EXTI->FTSR2, PWR_EXTI_LINE_PVM2)
AnnaBridge 172:65be27845400 441
AnnaBridge 172:65be27845400 442
AnnaBridge 172:65be27845400 443 /**
AnnaBridge 172:65be27845400 444 * @brief Disable the PVM2 Extended Interrupt Falling Trigger.
AnnaBridge 172:65be27845400 445 * @retval None
AnnaBridge 172:65be27845400 446 */
AnnaBridge 172:65be27845400 447 #define __HAL_PWR_PVM2_EXTI_DISABLE_FALLING_EDGE() CLEAR_BIT(EXTI->FTSR2, PWR_EXTI_LINE_PVM2)
AnnaBridge 172:65be27845400 448
AnnaBridge 172:65be27845400 449
AnnaBridge 172:65be27845400 450 /**
AnnaBridge 172:65be27845400 451 * @brief PVM2 EXTI line configuration: set rising & falling edge trigger.
AnnaBridge 172:65be27845400 452 * @retval None
AnnaBridge 172:65be27845400 453 */
AnnaBridge 172:65be27845400 454 #define __HAL_PWR_PVM2_EXTI_ENABLE_RISING_FALLING_EDGE() \
AnnaBridge 172:65be27845400 455 do { \
AnnaBridge 172:65be27845400 456 __HAL_PWR_PVM2_EXTI_ENABLE_RISING_EDGE(); \
AnnaBridge 172:65be27845400 457 __HAL_PWR_PVM2_EXTI_ENABLE_FALLING_EDGE(); \
AnnaBridge 172:65be27845400 458 } while(0)
AnnaBridge 172:65be27845400 459
AnnaBridge 172:65be27845400 460 /**
AnnaBridge 172:65be27845400 461 * @brief Disable the PVM2 Extended Interrupt Rising & Falling Trigger.
AnnaBridge 172:65be27845400 462 * @retval None
AnnaBridge 172:65be27845400 463 */
AnnaBridge 172:65be27845400 464 #define __HAL_PWR_PVM2_EXTI_DISABLE_RISING_FALLING_EDGE() \
AnnaBridge 172:65be27845400 465 do { \
AnnaBridge 172:65be27845400 466 __HAL_PWR_PVM2_EXTI_DISABLE_RISING_EDGE(); \
AnnaBridge 172:65be27845400 467 __HAL_PWR_PVM2_EXTI_DISABLE_FALLING_EDGE(); \
AnnaBridge 172:65be27845400 468 } while(0)
AnnaBridge 172:65be27845400 469
AnnaBridge 172:65be27845400 470 /**
AnnaBridge 172:65be27845400 471 * @brief Generate a Software interrupt on selected EXTI line.
AnnaBridge 172:65be27845400 472 * @retval None
AnnaBridge 172:65be27845400 473 */
AnnaBridge 172:65be27845400 474 #define __HAL_PWR_PVM2_EXTI_GENERATE_SWIT() SET_BIT(EXTI->SWIER2, PWR_EXTI_LINE_PVM2)
AnnaBridge 172:65be27845400 475
AnnaBridge 172:65be27845400 476 /**
AnnaBridge 172:65be27845400 477 * @brief Check whether the specified PVM2 EXTI interrupt flag is set or not.
AnnaBridge 172:65be27845400 478 * @retval EXTI PVM2 Line Status.
AnnaBridge 172:65be27845400 479 */
AnnaBridge 172:65be27845400 480 #define __HAL_PWR_PVM2_EXTI_GET_FLAG() (EXTI->PR2 & PWR_EXTI_LINE_PVM2)
AnnaBridge 172:65be27845400 481
AnnaBridge 172:65be27845400 482 /**
AnnaBridge 172:65be27845400 483 * @brief Clear the PVM2 EXTI flag.
AnnaBridge 172:65be27845400 484 * @retval None
AnnaBridge 172:65be27845400 485 */
AnnaBridge 172:65be27845400 486 #define __HAL_PWR_PVM2_EXTI_CLEAR_FLAG() WRITE_REG(EXTI->PR2, PWR_EXTI_LINE_PVM2)
AnnaBridge 172:65be27845400 487
AnnaBridge 172:65be27845400 488 #endif /* PWR_CR2_PVME2 */
AnnaBridge 172:65be27845400 489
AnnaBridge 172:65be27845400 490
AnnaBridge 172:65be27845400 491 /**
AnnaBridge 172:65be27845400 492 * @brief Enable the PVM3 Extended Interrupt Line.
AnnaBridge 172:65be27845400 493 * @retval None
AnnaBridge 172:65be27845400 494 */
AnnaBridge 172:65be27845400 495 #define __HAL_PWR_PVM3_EXTI_ENABLE_IT() SET_BIT(EXTI->IMR2, PWR_EXTI_LINE_PVM3)
AnnaBridge 172:65be27845400 496
AnnaBridge 172:65be27845400 497 /**
AnnaBridge 172:65be27845400 498 * @brief Disable the PVM3 Extended Interrupt Line.
AnnaBridge 172:65be27845400 499 * @retval None
AnnaBridge 172:65be27845400 500 */
AnnaBridge 172:65be27845400 501 #define __HAL_PWR_PVM3_EXTI_DISABLE_IT() CLEAR_BIT(EXTI->IMR2, PWR_EXTI_LINE_PVM3)
AnnaBridge 172:65be27845400 502
AnnaBridge 172:65be27845400 503 /**
AnnaBridge 172:65be27845400 504 * @brief Enable the PVM3 Event Line.
AnnaBridge 172:65be27845400 505 * @retval None
AnnaBridge 172:65be27845400 506 */
AnnaBridge 172:65be27845400 507 #define __HAL_PWR_PVM3_EXTI_ENABLE_EVENT() SET_BIT(EXTI->EMR2, PWR_EVENT_LINE_PVM3)
AnnaBridge 172:65be27845400 508
AnnaBridge 172:65be27845400 509 /**
AnnaBridge 172:65be27845400 510 * @brief Disable the PVM3 Event Line.
AnnaBridge 172:65be27845400 511 * @retval None
AnnaBridge 172:65be27845400 512 */
AnnaBridge 172:65be27845400 513 #define __HAL_PWR_PVM3_EXTI_DISABLE_EVENT() CLEAR_BIT(EXTI->EMR2, PWR_EVENT_LINE_PVM3)
AnnaBridge 172:65be27845400 514
AnnaBridge 172:65be27845400 515 /**
AnnaBridge 172:65be27845400 516 * @brief Enable the PVM3 Extended Interrupt Rising Trigger.
AnnaBridge 172:65be27845400 517 * @retval None
AnnaBridge 172:65be27845400 518 */
AnnaBridge 172:65be27845400 519 #define __HAL_PWR_PVM3_EXTI_ENABLE_RISING_EDGE() SET_BIT(EXTI->RTSR2, PWR_EXTI_LINE_PVM3)
AnnaBridge 172:65be27845400 520
AnnaBridge 172:65be27845400 521 /**
AnnaBridge 172:65be27845400 522 * @brief Disable the PVM3 Extended Interrupt Rising Trigger.
AnnaBridge 172:65be27845400 523 * @retval None
AnnaBridge 172:65be27845400 524 */
AnnaBridge 172:65be27845400 525 #define __HAL_PWR_PVM3_EXTI_DISABLE_RISING_EDGE() CLEAR_BIT(EXTI->RTSR2, PWR_EXTI_LINE_PVM3)
AnnaBridge 172:65be27845400 526
AnnaBridge 172:65be27845400 527 /**
AnnaBridge 172:65be27845400 528 * @brief Enable the PVM3 Extended Interrupt Falling Trigger.
AnnaBridge 172:65be27845400 529 * @retval None
AnnaBridge 172:65be27845400 530 */
AnnaBridge 172:65be27845400 531 #define __HAL_PWR_PVM3_EXTI_ENABLE_FALLING_EDGE() SET_BIT(EXTI->FTSR2, PWR_EXTI_LINE_PVM3)
AnnaBridge 172:65be27845400 532
AnnaBridge 172:65be27845400 533
AnnaBridge 172:65be27845400 534 /**
AnnaBridge 172:65be27845400 535 * @brief Disable the PVM3 Extended Interrupt Falling Trigger.
AnnaBridge 172:65be27845400 536 * @retval None
AnnaBridge 172:65be27845400 537 */
AnnaBridge 172:65be27845400 538 #define __HAL_PWR_PVM3_EXTI_DISABLE_FALLING_EDGE() CLEAR_BIT(EXTI->FTSR2, PWR_EXTI_LINE_PVM3)
AnnaBridge 172:65be27845400 539
AnnaBridge 172:65be27845400 540
AnnaBridge 172:65be27845400 541 /**
AnnaBridge 172:65be27845400 542 * @brief PVM3 EXTI line configuration: set rising & falling edge trigger.
AnnaBridge 172:65be27845400 543 * @retval None
AnnaBridge 172:65be27845400 544 */
AnnaBridge 172:65be27845400 545 #define __HAL_PWR_PVM3_EXTI_ENABLE_RISING_FALLING_EDGE() \
AnnaBridge 172:65be27845400 546 do { \
AnnaBridge 172:65be27845400 547 __HAL_PWR_PVM3_EXTI_ENABLE_RISING_EDGE(); \
AnnaBridge 172:65be27845400 548 __HAL_PWR_PVM3_EXTI_ENABLE_FALLING_EDGE(); \
AnnaBridge 172:65be27845400 549 } while(0)
AnnaBridge 172:65be27845400 550
AnnaBridge 172:65be27845400 551 /**
AnnaBridge 172:65be27845400 552 * @brief Disable the PVM3 Extended Interrupt Rising & Falling Trigger.
AnnaBridge 172:65be27845400 553 * @retval None
AnnaBridge 172:65be27845400 554 */
AnnaBridge 172:65be27845400 555 #define __HAL_PWR_PVM3_EXTI_DISABLE_RISING_FALLING_EDGE() \
AnnaBridge 172:65be27845400 556 do { \
AnnaBridge 172:65be27845400 557 __HAL_PWR_PVM3_EXTI_DISABLE_RISING_EDGE(); \
AnnaBridge 172:65be27845400 558 __HAL_PWR_PVM3_EXTI_DISABLE_FALLING_EDGE(); \
AnnaBridge 172:65be27845400 559 } while(0)
AnnaBridge 172:65be27845400 560
AnnaBridge 172:65be27845400 561 /**
AnnaBridge 172:65be27845400 562 * @brief Generate a Software interrupt on selected EXTI line.
AnnaBridge 172:65be27845400 563 * @retval None
AnnaBridge 172:65be27845400 564 */
AnnaBridge 172:65be27845400 565 #define __HAL_PWR_PVM3_EXTI_GENERATE_SWIT() SET_BIT(EXTI->SWIER2, PWR_EXTI_LINE_PVM3)
AnnaBridge 172:65be27845400 566
AnnaBridge 172:65be27845400 567 /**
AnnaBridge 172:65be27845400 568 * @brief Check whether the specified PVM3 EXTI interrupt flag is set or not.
AnnaBridge 172:65be27845400 569 * @retval EXTI PVM3 Line Status.
AnnaBridge 172:65be27845400 570 */
AnnaBridge 172:65be27845400 571 #define __HAL_PWR_PVM3_EXTI_GET_FLAG() (EXTI->PR2 & PWR_EXTI_LINE_PVM3)
AnnaBridge 172:65be27845400 572
AnnaBridge 172:65be27845400 573 /**
AnnaBridge 172:65be27845400 574 * @brief Clear the PVM3 EXTI flag.
AnnaBridge 172:65be27845400 575 * @retval None
AnnaBridge 172:65be27845400 576 */
AnnaBridge 172:65be27845400 577 #define __HAL_PWR_PVM3_EXTI_CLEAR_FLAG() WRITE_REG(EXTI->PR2, PWR_EXTI_LINE_PVM3)
AnnaBridge 172:65be27845400 578
AnnaBridge 172:65be27845400 579
AnnaBridge 172:65be27845400 580
AnnaBridge 172:65be27845400 581
AnnaBridge 172:65be27845400 582 /**
AnnaBridge 172:65be27845400 583 * @brief Enable the PVM4 Extended Interrupt Line.
AnnaBridge 172:65be27845400 584 * @retval None
AnnaBridge 172:65be27845400 585 */
AnnaBridge 172:65be27845400 586 #define __HAL_PWR_PVM4_EXTI_ENABLE_IT() SET_BIT(EXTI->IMR2, PWR_EXTI_LINE_PVM4)
AnnaBridge 172:65be27845400 587
AnnaBridge 172:65be27845400 588 /**
AnnaBridge 172:65be27845400 589 * @brief Disable the PVM4 Extended Interrupt Line.
AnnaBridge 172:65be27845400 590 * @retval None
AnnaBridge 172:65be27845400 591 */
AnnaBridge 172:65be27845400 592 #define __HAL_PWR_PVM4_EXTI_DISABLE_IT() CLEAR_BIT(EXTI->IMR2, PWR_EXTI_LINE_PVM4)
AnnaBridge 172:65be27845400 593
AnnaBridge 172:65be27845400 594 /**
AnnaBridge 172:65be27845400 595 * @brief Enable the PVM4 Event Line.
AnnaBridge 172:65be27845400 596 * @retval None
AnnaBridge 172:65be27845400 597 */
AnnaBridge 172:65be27845400 598 #define __HAL_PWR_PVM4_EXTI_ENABLE_EVENT() SET_BIT(EXTI->EMR2, PWR_EVENT_LINE_PVM4)
AnnaBridge 172:65be27845400 599
AnnaBridge 172:65be27845400 600 /**
AnnaBridge 172:65be27845400 601 * @brief Disable the PVM4 Event Line.
AnnaBridge 172:65be27845400 602 * @retval None
AnnaBridge 172:65be27845400 603 */
AnnaBridge 172:65be27845400 604 #define __HAL_PWR_PVM4_EXTI_DISABLE_EVENT() CLEAR_BIT(EXTI->EMR2, PWR_EVENT_LINE_PVM4)
AnnaBridge 172:65be27845400 605
AnnaBridge 172:65be27845400 606 /**
AnnaBridge 172:65be27845400 607 * @brief Enable the PVM4 Extended Interrupt Rising Trigger.
AnnaBridge 172:65be27845400 608 * @retval None
AnnaBridge 172:65be27845400 609 */
AnnaBridge 172:65be27845400 610 #define __HAL_PWR_PVM4_EXTI_ENABLE_RISING_EDGE() SET_BIT(EXTI->RTSR2, PWR_EXTI_LINE_PVM4)
AnnaBridge 172:65be27845400 611
AnnaBridge 172:65be27845400 612 /**
AnnaBridge 172:65be27845400 613 * @brief Disable the PVM4 Extended Interrupt Rising Trigger.
AnnaBridge 172:65be27845400 614 * @retval None
AnnaBridge 172:65be27845400 615 */
AnnaBridge 172:65be27845400 616 #define __HAL_PWR_PVM4_EXTI_DISABLE_RISING_EDGE() CLEAR_BIT(EXTI->RTSR2, PWR_EXTI_LINE_PVM4)
AnnaBridge 172:65be27845400 617
AnnaBridge 172:65be27845400 618 /**
AnnaBridge 172:65be27845400 619 * @brief Enable the PVM4 Extended Interrupt Falling Trigger.
AnnaBridge 172:65be27845400 620 * @retval None
AnnaBridge 172:65be27845400 621 */
AnnaBridge 172:65be27845400 622 #define __HAL_PWR_PVM4_EXTI_ENABLE_FALLING_EDGE() SET_BIT(EXTI->FTSR2, PWR_EXTI_LINE_PVM4)
AnnaBridge 172:65be27845400 623
AnnaBridge 172:65be27845400 624
AnnaBridge 172:65be27845400 625 /**
AnnaBridge 172:65be27845400 626 * @brief Disable the PVM4 Extended Interrupt Falling Trigger.
AnnaBridge 172:65be27845400 627 * @retval None
AnnaBridge 172:65be27845400 628 */
AnnaBridge 172:65be27845400 629 #define __HAL_PWR_PVM4_EXTI_DISABLE_FALLING_EDGE() CLEAR_BIT(EXTI->FTSR2, PWR_EXTI_LINE_PVM4)
AnnaBridge 172:65be27845400 630
AnnaBridge 172:65be27845400 631
AnnaBridge 172:65be27845400 632 /**
AnnaBridge 172:65be27845400 633 * @brief PVM4 EXTI line configuration: set rising & falling edge trigger.
AnnaBridge 172:65be27845400 634 * @retval None
AnnaBridge 172:65be27845400 635 */
AnnaBridge 172:65be27845400 636 #define __HAL_PWR_PVM4_EXTI_ENABLE_RISING_FALLING_EDGE() \
AnnaBridge 172:65be27845400 637 do { \
AnnaBridge 172:65be27845400 638 __HAL_PWR_PVM4_EXTI_ENABLE_RISING_EDGE(); \
AnnaBridge 172:65be27845400 639 __HAL_PWR_PVM4_EXTI_ENABLE_FALLING_EDGE(); \
AnnaBridge 172:65be27845400 640 } while(0)
AnnaBridge 172:65be27845400 641
AnnaBridge 172:65be27845400 642 /**
AnnaBridge 172:65be27845400 643 * @brief Disable the PVM4 Extended Interrupt Rising & Falling Trigger.
AnnaBridge 172:65be27845400 644 * @retval None
AnnaBridge 172:65be27845400 645 */
AnnaBridge 172:65be27845400 646 #define __HAL_PWR_PVM4_EXTI_DISABLE_RISING_FALLING_EDGE() \
AnnaBridge 172:65be27845400 647 do { \
AnnaBridge 172:65be27845400 648 __HAL_PWR_PVM4_EXTI_DISABLE_RISING_EDGE(); \
AnnaBridge 172:65be27845400 649 __HAL_PWR_PVM4_EXTI_DISABLE_FALLING_EDGE(); \
AnnaBridge 172:65be27845400 650 } while(0)
AnnaBridge 172:65be27845400 651
AnnaBridge 172:65be27845400 652 /**
AnnaBridge 172:65be27845400 653 * @brief Generate a Software interrupt on selected EXTI line.
AnnaBridge 172:65be27845400 654 * @retval None
AnnaBridge 172:65be27845400 655 */
AnnaBridge 172:65be27845400 656 #define __HAL_PWR_PVM4_EXTI_GENERATE_SWIT() SET_BIT(EXTI->SWIER2, PWR_EXTI_LINE_PVM4)
AnnaBridge 172:65be27845400 657
AnnaBridge 172:65be27845400 658 /**
AnnaBridge 172:65be27845400 659 * @brief Check whether or not the specified PVM4 EXTI interrupt flag is set.
AnnaBridge 172:65be27845400 660 * @retval EXTI PVM4 Line Status.
AnnaBridge 172:65be27845400 661 */
AnnaBridge 172:65be27845400 662 #define __HAL_PWR_PVM4_EXTI_GET_FLAG() (EXTI->PR2 & PWR_EXTI_LINE_PVM4)
AnnaBridge 172:65be27845400 663
AnnaBridge 172:65be27845400 664 /**
AnnaBridge 172:65be27845400 665 * @brief Clear the PVM4 EXTI flag.
AnnaBridge 172:65be27845400 666 * @retval None
AnnaBridge 172:65be27845400 667 */
AnnaBridge 172:65be27845400 668 #define __HAL_PWR_PVM4_EXTI_CLEAR_FLAG() WRITE_REG(EXTI->PR2, PWR_EXTI_LINE_PVM4)
AnnaBridge 172:65be27845400 669
AnnaBridge 172:65be27845400 670
AnnaBridge 172:65be27845400 671 /**
AnnaBridge 172:65be27845400 672 * @brief Configure the main internal regulator output voltage.
AnnaBridge 172:65be27845400 673 * @param __REGULATOR__: specifies the regulator output voltage to achieve
AnnaBridge 172:65be27845400 674 * a tradeoff between performance and power consumption.
AnnaBridge 172:65be27845400 675 * This parameter can be one of the following values:
AnnaBridge 172:65be27845400 676 * @arg @ref PWR_REGULATOR_VOLTAGE_SCALE1 Regulator voltage output range 1 mode,
AnnaBridge 172:65be27845400 677 * typical output voltage at 1.2 V,
AnnaBridge 172:65be27845400 678 * system frequency up to 80 MHz.
AnnaBridge 172:65be27845400 679 * @arg @ref PWR_REGULATOR_VOLTAGE_SCALE2 Regulator voltage output range 2 mode,
AnnaBridge 172:65be27845400 680 * typical output voltage at 1.0 V,
AnnaBridge 172:65be27845400 681 * system frequency up to 26 MHz.
AnnaBridge 172:65be27845400 682 * @note This macro is similar to HAL_PWREx_ControlVoltageScaling() API but doesn't check
AnnaBridge 172:65be27845400 683 * whether or not VOSF flag is cleared when moving from range 2 to range 1. User
AnnaBridge 172:65be27845400 684 * may resort to __HAL_PWR_GET_FLAG() macro to check VOSF bit resetting.
AnnaBridge 172:65be27845400 685 * @retval None
AnnaBridge 172:65be27845400 686 */
AnnaBridge 172:65be27845400 687 #define __HAL_PWR_VOLTAGESCALING_CONFIG(__REGULATOR__) do { \
AnnaBridge 172:65be27845400 688 __IO uint32_t tmpreg; \
AnnaBridge 172:65be27845400 689 MODIFY_REG(PWR->CR1, PWR_CR1_VOS, (__REGULATOR__)); \
AnnaBridge 172:65be27845400 690 /* Delay after an RCC peripheral clock enabling */ \
AnnaBridge 172:65be27845400 691 tmpreg = READ_BIT(PWR->CR1, PWR_CR1_VOS); \
AnnaBridge 172:65be27845400 692 UNUSED(tmpreg); \
AnnaBridge 172:65be27845400 693 } while(0)
AnnaBridge 172:65be27845400 694
AnnaBridge 172:65be27845400 695 /**
AnnaBridge 172:65be27845400 696 * @}
AnnaBridge 172:65be27845400 697 */
AnnaBridge 172:65be27845400 698
AnnaBridge 172:65be27845400 699 /* Private macros --------------------------------------------------------*/
AnnaBridge 172:65be27845400 700 /** @addtogroup PWREx_Private_Macros PWR Extended Private Macros
AnnaBridge 172:65be27845400 701 * @{
AnnaBridge 172:65be27845400 702 */
AnnaBridge 172:65be27845400 703
AnnaBridge 172:65be27845400 704 #define IS_PWR_WAKEUP_PIN(PIN) (((PIN) == PWR_WAKEUP_PIN1) || \
AnnaBridge 172:65be27845400 705 ((PIN) == PWR_WAKEUP_PIN2) || \
AnnaBridge 172:65be27845400 706 ((PIN) == PWR_WAKEUP_PIN3) || \
AnnaBridge 172:65be27845400 707 ((PIN) == PWR_WAKEUP_PIN4) || \
AnnaBridge 172:65be27845400 708 ((PIN) == PWR_WAKEUP_PIN5) || \
AnnaBridge 172:65be27845400 709 ((PIN) == PWR_WAKEUP_PIN1_HIGH) || \
AnnaBridge 172:65be27845400 710 ((PIN) == PWR_WAKEUP_PIN2_HIGH) || \
AnnaBridge 172:65be27845400 711 ((PIN) == PWR_WAKEUP_PIN3_HIGH) || \
AnnaBridge 172:65be27845400 712 ((PIN) == PWR_WAKEUP_PIN4_HIGH) || \
AnnaBridge 172:65be27845400 713 ((PIN) == PWR_WAKEUP_PIN5_HIGH) || \
AnnaBridge 172:65be27845400 714 ((PIN) == PWR_WAKEUP_PIN1_LOW) || \
AnnaBridge 172:65be27845400 715 ((PIN) == PWR_WAKEUP_PIN2_LOW) || \
AnnaBridge 172:65be27845400 716 ((PIN) == PWR_WAKEUP_PIN3_LOW) || \
AnnaBridge 172:65be27845400 717 ((PIN) == PWR_WAKEUP_PIN4_LOW) || \
AnnaBridge 172:65be27845400 718 ((PIN) == PWR_WAKEUP_PIN5_LOW))
AnnaBridge 172:65be27845400 719
AnnaBridge 172:65be27845400 720 #if defined (STM32L475xx) || defined (STM32L476xx) || defined (STM32L485xx) || defined (STM32L486xx) || \
AnnaBridge 172:65be27845400 721 defined (STM32L496xx) || defined (STM32L4A6xx) || \
AnnaBridge 172:65be27845400 722 defined (STM32L4R5xx) || defined (STM32L4R7xx) || defined (STM32L4R9xx) || defined (STM32L4S5xx) || defined (STM32L4S7xx) || defined (STM32L4S9xx)
AnnaBridge 172:65be27845400 723 #define IS_PWR_PVM_TYPE(TYPE) (((TYPE) == PWR_PVM_1) ||\
AnnaBridge 172:65be27845400 724 ((TYPE) == PWR_PVM_2) ||\
AnnaBridge 172:65be27845400 725 ((TYPE) == PWR_PVM_3) ||\
AnnaBridge 172:65be27845400 726 ((TYPE) == PWR_PVM_4))
AnnaBridge 172:65be27845400 727 #elif defined (STM32L471xx)
AnnaBridge 172:65be27845400 728 #define IS_PWR_PVM_TYPE(TYPE) (((TYPE) == PWR_PVM_2) ||\
AnnaBridge 172:65be27845400 729 ((TYPE) == PWR_PVM_3) ||\
AnnaBridge 172:65be27845400 730 ((TYPE) == PWR_PVM_4))
AnnaBridge 172:65be27845400 731 #endif
AnnaBridge 172:65be27845400 732
AnnaBridge 172:65be27845400 733 #if defined (STM32L433xx) || defined (STM32L443xx) || defined (STM32L452xx) || defined (STM32L462xx)
AnnaBridge 172:65be27845400 734 #define IS_PWR_PVM_TYPE(TYPE) (((TYPE) == PWR_PVM_1) ||\
AnnaBridge 172:65be27845400 735 ((TYPE) == PWR_PVM_3) ||\
AnnaBridge 172:65be27845400 736 ((TYPE) == PWR_PVM_4))
AnnaBridge 172:65be27845400 737 #elif defined (STM32L431xx) || defined (STM32L432xx) || defined (STM32L442xx) || defined (STM32L451xx)
AnnaBridge 172:65be27845400 738 #define IS_PWR_PVM_TYPE(TYPE) (((TYPE) == PWR_PVM_3) ||\
AnnaBridge 172:65be27845400 739 ((TYPE) == PWR_PVM_4))
AnnaBridge 172:65be27845400 740 #endif
AnnaBridge 172:65be27845400 741
AnnaBridge 172:65be27845400 742 #define IS_PWR_PVM_MODE(MODE) (((MODE) == PWR_PVM_MODE_NORMAL) ||\
AnnaBridge 172:65be27845400 743 ((MODE) == PWR_PVM_MODE_IT_RISING) ||\
AnnaBridge 172:65be27845400 744 ((MODE) == PWR_PVM_MODE_IT_FALLING) ||\
AnnaBridge 172:65be27845400 745 ((MODE) == PWR_PVM_MODE_IT_RISING_FALLING) ||\
AnnaBridge 172:65be27845400 746 ((MODE) == PWR_PVM_MODE_EVENT_RISING) ||\
AnnaBridge 172:65be27845400 747 ((MODE) == PWR_PVM_MODE_EVENT_FALLING) ||\
AnnaBridge 172:65be27845400 748 ((MODE) == PWR_PVM_MODE_EVENT_RISING_FALLING))
AnnaBridge 172:65be27845400 749
AnnaBridge 172:65be27845400 750 #if defined(PWR_CR5_R1MODE)
AnnaBridge 172:65be27845400 751 #define IS_PWR_VOLTAGE_SCALING_RANGE(RANGE) (((RANGE) == PWR_REGULATOR_VOLTAGE_SCALE1_BOOST) || \
AnnaBridge 172:65be27845400 752 ((RANGE) == PWR_REGULATOR_VOLTAGE_SCALE1) || \
AnnaBridge 172:65be27845400 753 ((RANGE) == PWR_REGULATOR_VOLTAGE_SCALE2))
AnnaBridge 172:65be27845400 754 #else
AnnaBridge 172:65be27845400 755 #define IS_PWR_VOLTAGE_SCALING_RANGE(RANGE) (((RANGE) == PWR_REGULATOR_VOLTAGE_SCALE1) || \
AnnaBridge 172:65be27845400 756 ((RANGE) == PWR_REGULATOR_VOLTAGE_SCALE2))
AnnaBridge 172:65be27845400 757 #endif
AnnaBridge 172:65be27845400 758
AnnaBridge 172:65be27845400 759
AnnaBridge 172:65be27845400 760 #define IS_PWR_BATTERY_RESISTOR_SELECT(RESISTOR) (((RESISTOR) == PWR_BATTERY_CHARGING_RESISTOR_5) ||\
AnnaBridge 172:65be27845400 761 ((RESISTOR) == PWR_BATTERY_CHARGING_RESISTOR_1_5))
AnnaBridge 172:65be27845400 762
AnnaBridge 172:65be27845400 763 #define IS_PWR_BATTERY_CHARGING(CHARGING) (((CHARGING) == PWR_BATTERY_CHARGING_DISABLE) ||\
AnnaBridge 172:65be27845400 764 ((CHARGING) == PWR_BATTERY_CHARGING_ENABLE))
AnnaBridge 172:65be27845400 765
AnnaBridge 172:65be27845400 766 #define IS_PWR_GPIO_BIT_NUMBER(BIT_NUMBER) (((BIT_NUMBER) & GPIO_PIN_MASK) != (uint32_t)0x00)
AnnaBridge 172:65be27845400 767
AnnaBridge 172:65be27845400 768
AnnaBridge 172:65be27845400 769 #if defined (STM32L431xx) || defined (STM32L433xx) || defined (STM32L443xx) || \
AnnaBridge 172:65be27845400 770 defined (STM32L451xx) || defined (STM32L452xx) || defined (STM32L462xx)
AnnaBridge 172:65be27845400 771 #define IS_PWR_GPIO(GPIO) (((GPIO) == PWR_GPIO_A) ||\
AnnaBridge 172:65be27845400 772 ((GPIO) == PWR_GPIO_B) ||\
AnnaBridge 172:65be27845400 773 ((GPIO) == PWR_GPIO_C) ||\
AnnaBridge 172:65be27845400 774 ((GPIO) == PWR_GPIO_D) ||\
AnnaBridge 172:65be27845400 775 ((GPIO) == PWR_GPIO_E) ||\
AnnaBridge 172:65be27845400 776 ((GPIO) == PWR_GPIO_H))
AnnaBridge 172:65be27845400 777 #elif defined (STM32L432xx) || defined (STM32L442xx)
AnnaBridge 172:65be27845400 778 #define IS_PWR_GPIO(GPIO) (((GPIO) == PWR_GPIO_A) ||\
AnnaBridge 172:65be27845400 779 ((GPIO) == PWR_GPIO_B) ||\
AnnaBridge 172:65be27845400 780 ((GPIO) == PWR_GPIO_C) ||\
AnnaBridge 172:65be27845400 781 ((GPIO) == PWR_GPIO_H))
AnnaBridge 172:65be27845400 782 #elif defined (STM32L471xx) || defined (STM32L475xx) || defined (STM32L476xx) || defined (STM32L485xx) || defined (STM32L486xx)
AnnaBridge 172:65be27845400 783 #define IS_PWR_GPIO(GPIO) (((GPIO) == PWR_GPIO_A) ||\
AnnaBridge 172:65be27845400 784 ((GPIO) == PWR_GPIO_B) ||\
AnnaBridge 172:65be27845400 785 ((GPIO) == PWR_GPIO_C) ||\
AnnaBridge 172:65be27845400 786 ((GPIO) == PWR_GPIO_D) ||\
AnnaBridge 172:65be27845400 787 ((GPIO) == PWR_GPIO_E) ||\
AnnaBridge 172:65be27845400 788 ((GPIO) == PWR_GPIO_F) ||\
AnnaBridge 172:65be27845400 789 ((GPIO) == PWR_GPIO_G) ||\
AnnaBridge 172:65be27845400 790 ((GPIO) == PWR_GPIO_H))
AnnaBridge 172:65be27845400 791 #elif defined (STM32L496xx) || defined (STM32L4A6xx) || \
AnnaBridge 172:65be27845400 792 defined (STM32L4R5xx) || defined (STM32L4R7xx) || defined (STM32L4R9xx) || defined (STM32L4S5xx) || defined (STM32L4S7xx) || defined (STM32L4S9xx)
AnnaBridge 172:65be27845400 793 #define IS_PWR_GPIO(GPIO) (((GPIO) == PWR_GPIO_A) ||\
AnnaBridge 172:65be27845400 794 ((GPIO) == PWR_GPIO_B) ||\
AnnaBridge 172:65be27845400 795 ((GPIO) == PWR_GPIO_C) ||\
AnnaBridge 172:65be27845400 796 ((GPIO) == PWR_GPIO_D) ||\
AnnaBridge 172:65be27845400 797 ((GPIO) == PWR_GPIO_E) ||\
AnnaBridge 172:65be27845400 798 ((GPIO) == PWR_GPIO_F) ||\
AnnaBridge 172:65be27845400 799 ((GPIO) == PWR_GPIO_G) ||\
AnnaBridge 172:65be27845400 800 ((GPIO) == PWR_GPIO_H) ||\
AnnaBridge 172:65be27845400 801 ((GPIO) == PWR_GPIO_I))
AnnaBridge 172:65be27845400 802 #endif
AnnaBridge 172:65be27845400 803
AnnaBridge 172:65be27845400 804
AnnaBridge 172:65be27845400 805 /**
AnnaBridge 172:65be27845400 806 * @}
AnnaBridge 172:65be27845400 807 */
AnnaBridge 172:65be27845400 808
AnnaBridge 172:65be27845400 809
AnnaBridge 172:65be27845400 810 /** @addtogroup PWREx_Exported_Functions PWR Extended Exported Functions
AnnaBridge 172:65be27845400 811 * @{
AnnaBridge 172:65be27845400 812 */
AnnaBridge 172:65be27845400 813
AnnaBridge 172:65be27845400 814 /** @addtogroup PWREx_Exported_Functions_Group1 Extended Peripheral Control functions
AnnaBridge 172:65be27845400 815 * @{
AnnaBridge 172:65be27845400 816 */
AnnaBridge 172:65be27845400 817
AnnaBridge 172:65be27845400 818
AnnaBridge 172:65be27845400 819 /* Peripheral Control functions **********************************************/
AnnaBridge 172:65be27845400 820 uint32_t HAL_PWREx_GetVoltageRange(void);
AnnaBridge 172:65be27845400 821 HAL_StatusTypeDef HAL_PWREx_ControlVoltageScaling(uint32_t VoltageScaling);
AnnaBridge 172:65be27845400 822 void HAL_PWREx_EnableBatteryCharging(uint32_t ResistorSelection);
AnnaBridge 172:65be27845400 823 void HAL_PWREx_DisableBatteryCharging(void);
AnnaBridge 172:65be27845400 824 #if defined(PWR_CR2_USV)
AnnaBridge 172:65be27845400 825 void HAL_PWREx_EnableVddUSB(void);
AnnaBridge 172:65be27845400 826 void HAL_PWREx_DisableVddUSB(void);
AnnaBridge 172:65be27845400 827 #endif /* PWR_CR2_USV */
AnnaBridge 172:65be27845400 828 #if defined(PWR_CR2_IOSV)
AnnaBridge 172:65be27845400 829 void HAL_PWREx_EnableVddIO2(void);
AnnaBridge 172:65be27845400 830 void HAL_PWREx_DisableVddIO2(void);
AnnaBridge 172:65be27845400 831 #endif /* PWR_CR2_IOSV */
AnnaBridge 172:65be27845400 832 void HAL_PWREx_EnableInternalWakeUpLine(void);
AnnaBridge 172:65be27845400 833 void HAL_PWREx_DisableInternalWakeUpLine(void);
AnnaBridge 172:65be27845400 834 HAL_StatusTypeDef HAL_PWREx_EnableGPIOPullUp(uint32_t GPIO, uint32_t GPIONumber);
AnnaBridge 172:65be27845400 835 HAL_StatusTypeDef HAL_PWREx_DisableGPIOPullUp(uint32_t GPIO, uint32_t GPIONumber);
AnnaBridge 172:65be27845400 836 HAL_StatusTypeDef HAL_PWREx_EnableGPIOPullDown(uint32_t GPIO, uint32_t GPIONumber);
AnnaBridge 172:65be27845400 837 HAL_StatusTypeDef HAL_PWREx_DisableGPIOPullDown(uint32_t GPIO, uint32_t GPIONumber);
AnnaBridge 172:65be27845400 838 void HAL_PWREx_EnablePullUpPullDownConfig(void);
AnnaBridge 172:65be27845400 839 void HAL_PWREx_DisablePullUpPullDownConfig(void);
AnnaBridge 172:65be27845400 840 void HAL_PWREx_EnableSRAM2ContentRetention(void);
AnnaBridge 172:65be27845400 841 void HAL_PWREx_DisableSRAM2ContentRetention(void);
AnnaBridge 172:65be27845400 842 #if defined(PWR_CR1_RRSTP)
AnnaBridge 172:65be27845400 843 void HAL_PWREx_EnableSRAM3ContentRetention(void);
AnnaBridge 172:65be27845400 844 void HAL_PWREx_DisableSRAM3ContentRetention(void);
AnnaBridge 172:65be27845400 845 #endif /* PWR_CR1_RRSTP */
AnnaBridge 172:65be27845400 846 #if defined(PWR_CR3_DSIPDEN)
AnnaBridge 172:65be27845400 847 void HAL_PWREx_EnableDSIPinsPDActivation(void);
AnnaBridge 172:65be27845400 848 void HAL_PWREx_DisableDSIPinsPDActivation(void);
AnnaBridge 172:65be27845400 849 #endif /* PWR_CR3_DSIPDEN */
AnnaBridge 172:65be27845400 850 #if defined(PWR_CR2_PVME1)
AnnaBridge 172:65be27845400 851 void HAL_PWREx_EnablePVM1(void);
AnnaBridge 172:65be27845400 852 void HAL_PWREx_DisablePVM1(void);
AnnaBridge 172:65be27845400 853 #endif /* PWR_CR2_PVME1 */
AnnaBridge 172:65be27845400 854 #if defined(PWR_CR2_PVME2)
AnnaBridge 172:65be27845400 855 void HAL_PWREx_EnablePVM2(void);
AnnaBridge 172:65be27845400 856 void HAL_PWREx_DisablePVM2(void);
AnnaBridge 172:65be27845400 857 #endif /* PWR_CR2_PVME2 */
AnnaBridge 172:65be27845400 858 void HAL_PWREx_EnablePVM3(void);
AnnaBridge 172:65be27845400 859 void HAL_PWREx_DisablePVM3(void);
AnnaBridge 172:65be27845400 860 void HAL_PWREx_EnablePVM4(void);
AnnaBridge 172:65be27845400 861 void HAL_PWREx_DisablePVM4(void);
AnnaBridge 172:65be27845400 862 HAL_StatusTypeDef HAL_PWREx_ConfigPVM(PWR_PVMTypeDef *sConfigPVM);
AnnaBridge 172:65be27845400 863
AnnaBridge 172:65be27845400 864
AnnaBridge 172:65be27845400 865 /* Low Power modes configuration functions ************************************/
AnnaBridge 172:65be27845400 866 void HAL_PWREx_EnableLowPowerRunMode(void);
AnnaBridge 172:65be27845400 867 HAL_StatusTypeDef HAL_PWREx_DisableLowPowerRunMode(void);
AnnaBridge 172:65be27845400 868 void HAL_PWREx_EnterSTOP0Mode(uint8_t STOPEntry);
AnnaBridge 172:65be27845400 869 void HAL_PWREx_EnterSTOP1Mode(uint8_t STOPEntry);
AnnaBridge 172:65be27845400 870 void HAL_PWREx_EnterSTOP2Mode(uint8_t STOPEntry);
AnnaBridge 172:65be27845400 871 void HAL_PWREx_EnterSHUTDOWNMode(void);
AnnaBridge 172:65be27845400 872
AnnaBridge 172:65be27845400 873 void HAL_PWREx_PVD_PVM_IRQHandler(void);
AnnaBridge 172:65be27845400 874 #if defined(PWR_CR2_PVME1)
AnnaBridge 172:65be27845400 875 void HAL_PWREx_PVM1Callback(void);
AnnaBridge 172:65be27845400 876 #endif /* PWR_CR2_PVME1 */
AnnaBridge 172:65be27845400 877 #if defined(PWR_CR2_PVME2)
AnnaBridge 172:65be27845400 878 void HAL_PWREx_PVM2Callback(void);
AnnaBridge 172:65be27845400 879 #endif /* PWR_CR2_PVME2 */
AnnaBridge 172:65be27845400 880 void HAL_PWREx_PVM3Callback(void);
AnnaBridge 172:65be27845400 881 void HAL_PWREx_PVM4Callback(void);
AnnaBridge 172:65be27845400 882
AnnaBridge 172:65be27845400 883 /**
AnnaBridge 172:65be27845400 884 * @}
AnnaBridge 172:65be27845400 885 */
AnnaBridge 172:65be27845400 886
AnnaBridge 172:65be27845400 887 /**
AnnaBridge 172:65be27845400 888 * @}
AnnaBridge 172:65be27845400 889 */
AnnaBridge 172:65be27845400 890
AnnaBridge 172:65be27845400 891 /**
AnnaBridge 172:65be27845400 892 * @}
AnnaBridge 172:65be27845400 893 */
AnnaBridge 172:65be27845400 894
AnnaBridge 172:65be27845400 895 /**
AnnaBridge 172:65be27845400 896 * @}
AnnaBridge 172:65be27845400 897 */
AnnaBridge 172:65be27845400 898
AnnaBridge 172:65be27845400 899 #ifdef __cplusplus
AnnaBridge 172:65be27845400 900 }
AnnaBridge 172:65be27845400 901 #endif
AnnaBridge 172:65be27845400 902
AnnaBridge 172:65be27845400 903
AnnaBridge 172:65be27845400 904 #endif /* __STM32L4xx_HAL_PWR_EX_H */
AnnaBridge 172:65be27845400 905
AnnaBridge 172:65be27845400 906 /************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/