]> git.sur5r.net Git - freertos/blob - FreeRTOS/Demo/CORTEX_MPU_STM32L4_Discovery_GCC_IAR_Keil/ST_Code/Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal.h
Rename STM32Cube to GCC for STM32L4 Discovery projects as GCC is
[freertos] / FreeRTOS / Demo / CORTEX_MPU_STM32L4_Discovery_GCC_IAR_Keil / ST_Code / Drivers / STM32L4xx_HAL_Driver / Inc / stm32l4xx_hal.h
1 /**\r
2   ******************************************************************************\r
3   * @file    stm32l4xx_hal.h\r
4   * @author  MCD Application Team\r
5   * @brief   This file contains all the functions prototypes for the HAL\r
6   *          module driver.\r
7   ******************************************************************************\r
8   * @attention\r
9   *\r
10   * <h2><center>&copy; Copyright (c) 2017 STMicroelectronics.\r
11   * All rights reserved.</center></h2>\r
12   *\r
13   * This software component is licensed by ST under BSD 3-Clause license,\r
14   * the "License"; You may not use this file except in compliance with the\r
15   * License. You may obtain a copy of the License at:\r
16   *                        opensource.org/licenses/BSD-3-Clause\r
17   *\r
18   ******************************************************************************\r
19   */\r
20 \r
21 /* Define to prevent recursive inclusion -------------------------------------*/\r
22 #ifndef STM32L4xx_HAL_H\r
23 #define STM32L4xx_HAL_H\r
24 \r
25 #ifdef __cplusplus\r
26  extern "C" {\r
27 #endif\r
28 \r
29 /* Includes ------------------------------------------------------------------*/\r
30 #include "stm32l4xx_hal_conf.h"\r
31 \r
32 /** @addtogroup STM32L4xx_HAL_Driver\r
33   * @{\r
34   */\r
35 \r
36 /** @addtogroup HAL\r
37   * @{\r
38   */\r
39 \r
40 /* Exported types ------------------------------------------------------------*/\r
41 /* Exported constants --------------------------------------------------------*/\r
42 \r
43 /** @defgroup HAL_Exported_Constants HAL Exported Constants\r
44   * @{\r
45   */\r
46 \r
47 /** @defgroup HAL_TICK_FREQ Tick Frequency\r
48   * @{\r
49   */\r
50 #define  HAL_TICK_FREQ_10HZ         100U\r
51 #define  HAL_TICK_FREQ_100HZ        10U\r
52 #define  HAL_TICK_FREQ_1KHZ         1U\r
53 #define  HAL_TICK_FREQ_DEFAULT      HAL_TICK_FREQ_1KHZ\r
54 \r
55 /**\r
56   * @}\r
57   */\r
58 \r
59 /**\r
60   * @}\r
61   */\r
62 \r
63 /** @defgroup SYSCFG_Exported_Constants SYSCFG Exported Constants\r
64   * @{\r
65   */\r
66 \r
67 /** @defgroup SYSCFG_BootMode Boot Mode\r
68   * @{\r
69   */\r
70 #define SYSCFG_BOOT_MAINFLASH          0U\r
71 #define SYSCFG_BOOT_SYSTEMFLASH        SYSCFG_MEMRMP_MEM_MODE_0\r
72 \r
73 #if defined (STM32L471xx) || defined (STM32L475xx) || defined (STM32L476xx) || defined (STM32L485xx) || defined (STM32L486xx) || \\r
74     defined (STM32L496xx) || defined (STM32L4A6xx) || \\r
75     defined (STM32L4R5xx) || defined (STM32L4R7xx) || defined (STM32L4R9xx) || defined (STM32L4S5xx) || defined (STM32L4S7xx) || defined (STM32L4S9xx)\r
76 #define SYSCFG_BOOT_FMC                SYSCFG_MEMRMP_MEM_MODE_1\r
77 #endif /* STM32L471xx || STM32L475xx || STM32L476xx || STM32L485xx || STM32L486xx || */\r
78        /* STM32L496xx || STM32L4A6xx || */\r
79        /* STM32L4R5xx || STM32L4R7xx || STM32L4R9xx || STM32L4S5xx || STM32L4S7xx || STM32L4S9xx */\r
80 \r
81 #define SYSCFG_BOOT_SRAM               (SYSCFG_MEMRMP_MEM_MODE_1 | SYSCFG_MEMRMP_MEM_MODE_0)\r
82 \r
83 #if defined (STM32L4R5xx) || defined (STM32L4R7xx) || defined (STM32L4R9xx) || defined (STM32L4S5xx) || defined (STM32L4S7xx) || defined (STM32L4S9xx)\r
84 #define SYSCFG_BOOT_OCTOPSPI1          (SYSCFG_MEMRMP_MEM_MODE_2)\r
85 #define SYSCFG_BOOT_OCTOPSPI2          (SYSCFG_MEMRMP_MEM_MODE_2 | SYSCFG_MEMRMP_MEM_MODE_0)\r
86 #else\r
87 #define SYSCFG_BOOT_QUADSPI            (SYSCFG_MEMRMP_MEM_MODE_2 | SYSCFG_MEMRMP_MEM_MODE_1)\r
88 #endif /* STM32L4R5xx || STM32L4R7xx || STM32L4R9xx || STM32L4S5xx || STM32L4S7xx || STM32L4S9xx */\r
89 \r
90 /**\r
91   * @}\r
92   */\r
93 \r
94 /** @defgroup SYSCFG_FPU_Interrupts FPU Interrupts\r
95   * @{\r
96   */\r
97 #define SYSCFG_IT_FPU_IOC              SYSCFG_CFGR1_FPU_IE_0  /*!< Floating Point Unit Invalid operation Interrupt */\r
98 #define SYSCFG_IT_FPU_DZC              SYSCFG_CFGR1_FPU_IE_1  /*!< Floating Point Unit Divide-by-zero Interrupt */\r
99 #define SYSCFG_IT_FPU_UFC              SYSCFG_CFGR1_FPU_IE_2  /*!< Floating Point Unit Underflow Interrupt */\r
100 #define SYSCFG_IT_FPU_OFC              SYSCFG_CFGR1_FPU_IE_3  /*!< Floating Point Unit Overflow Interrupt */\r
101 #define SYSCFG_IT_FPU_IDC              SYSCFG_CFGR1_FPU_IE_4  /*!< Floating Point Unit Input denormal Interrupt */\r
102 #define SYSCFG_IT_FPU_IXC              SYSCFG_CFGR1_FPU_IE_5  /*!< Floating Point Unit Inexact Interrupt */\r
103 \r
104 /**\r
105   * @}\r
106   */\r
107 \r
108 /** @defgroup SYSCFG_SRAM2WRP SRAM2 Page Write protection (0 to 31)\r
109   * @{\r
110   */\r
111 #define SYSCFG_SRAM2WRP_PAGE0          SYSCFG_SWPR_PAGE0 /*!< SRAM2 Write protection page 0 */\r
112 #define SYSCFG_SRAM2WRP_PAGE1          SYSCFG_SWPR_PAGE1 /*!< SRAM2 Write protection page 1 */\r
113 #define SYSCFG_SRAM2WRP_PAGE2          SYSCFG_SWPR_PAGE2 /*!< SRAM2 Write protection page 2 */\r
114 #define SYSCFG_SRAM2WRP_PAGE3          SYSCFG_SWPR_PAGE3 /*!< SRAM2 Write protection page 3 */\r
115 #define SYSCFG_SRAM2WRP_PAGE4          SYSCFG_SWPR_PAGE4 /*!< SRAM2 Write protection page 4 */\r
116 #define SYSCFG_SRAM2WRP_PAGE5          SYSCFG_SWPR_PAGE5 /*!< SRAM2 Write protection page 5 */\r
117 #define SYSCFG_SRAM2WRP_PAGE6          SYSCFG_SWPR_PAGE6 /*!< SRAM2 Write protection page 6 */\r
118 #define SYSCFG_SRAM2WRP_PAGE7          SYSCFG_SWPR_PAGE7 /*!< SRAM2 Write protection page 7 */\r
119 #define SYSCFG_SRAM2WRP_PAGE8          SYSCFG_SWPR_PAGE8 /*!< SRAM2 Write protection page 8 */\r
120 #define SYSCFG_SRAM2WRP_PAGE9          SYSCFG_SWPR_PAGE9 /*!< SRAM2 Write protection page 9 */\r
121 #define SYSCFG_SRAM2WRP_PAGE10         SYSCFG_SWPR_PAGE10 /*!< SRAM2 Write protection page 10 */\r
122 #define SYSCFG_SRAM2WRP_PAGE11         SYSCFG_SWPR_PAGE11 /*!< SRAM2 Write protection page 11 */\r
123 #define SYSCFG_SRAM2WRP_PAGE12         SYSCFG_SWPR_PAGE12 /*!< SRAM2 Write protection page 12 */\r
124 #define SYSCFG_SRAM2WRP_PAGE13         SYSCFG_SWPR_PAGE13 /*!< SRAM2 Write protection page 13 */\r
125 #define SYSCFG_SRAM2WRP_PAGE14         SYSCFG_SWPR_PAGE14 /*!< SRAM2 Write protection page 14 */\r
126 #define SYSCFG_SRAM2WRP_PAGE15         SYSCFG_SWPR_PAGE15 /*!< SRAM2 Write protection page 15 */\r
127 #if defined(SYSCFG_SWPR_PAGE31)\r
128 #define SYSCFG_SRAM2WRP_PAGE16         SYSCFG_SWPR_PAGE16 /*!< SRAM2 Write protection page 16 */\r
129 #define SYSCFG_SRAM2WRP_PAGE17         SYSCFG_SWPR_PAGE17 /*!< SRAM2 Write protection page 17 */\r
130 #define SYSCFG_SRAM2WRP_PAGE18         SYSCFG_SWPR_PAGE18 /*!< SRAM2 Write protection page 18 */\r
131 #define SYSCFG_SRAM2WRP_PAGE19         SYSCFG_SWPR_PAGE19 /*!< SRAM2 Write protection page 19 */\r
132 #define SYSCFG_SRAM2WRP_PAGE20         SYSCFG_SWPR_PAGE20 /*!< SRAM2 Write protection page 20 */\r
133 #define SYSCFG_SRAM2WRP_PAGE21         SYSCFG_SWPR_PAGE21 /*!< SRAM2 Write protection page 21 */\r
134 #define SYSCFG_SRAM2WRP_PAGE22         SYSCFG_SWPR_PAGE22 /*!< SRAM2 Write protection page 22 */\r
135 #define SYSCFG_SRAM2WRP_PAGE23         SYSCFG_SWPR_PAGE23 /*!< SRAM2 Write protection page 23 */\r
136 #define SYSCFG_SRAM2WRP_PAGE24         SYSCFG_SWPR_PAGE24 /*!< SRAM2 Write protection page 24 */\r
137 #define SYSCFG_SRAM2WRP_PAGE25         SYSCFG_SWPR_PAGE25 /*!< SRAM2 Write protection page 25 */\r
138 #define SYSCFG_SRAM2WRP_PAGE26         SYSCFG_SWPR_PAGE26 /*!< SRAM2 Write protection page 26 */\r
139 #define SYSCFG_SRAM2WRP_PAGE27         SYSCFG_SWPR_PAGE27 /*!< SRAM2 Write protection page 27 */\r
140 #define SYSCFG_SRAM2WRP_PAGE28         SYSCFG_SWPR_PAGE28 /*!< SRAM2 Write protection page 28 */\r
141 #define SYSCFG_SRAM2WRP_PAGE29         SYSCFG_SWPR_PAGE29 /*!< SRAM2 Write protection page 29 */\r
142 #define SYSCFG_SRAM2WRP_PAGE30         SYSCFG_SWPR_PAGE30 /*!< SRAM2 Write protection page 30 */\r
143 #define SYSCFG_SRAM2WRP_PAGE31         SYSCFG_SWPR_PAGE31 /*!< SRAM2 Write protection page 31 */\r
144 #endif /* SYSCFG_SWPR_PAGE31 */\r
145 \r
146 /**\r
147   * @}\r
148   */\r
149 \r
150 #if defined(SYSCFG_SWPR2_PAGE63)\r
151 /** @defgroup SYSCFG_SRAM2WRP_32_63 SRAM2 Page Write protection (32 to 63)\r
152   * @{\r
153   */\r
154 #define SYSCFG_SRAM2WRP_PAGE32         SYSCFG_SWPR2_PAGE32 /*!< SRAM2 Write protection page 32 */\r
155 #define SYSCFG_SRAM2WRP_PAGE33         SYSCFG_SWPR2_PAGE33 /*!< SRAM2 Write protection page 33 */\r
156 #define SYSCFG_SRAM2WRP_PAGE34         SYSCFG_SWPR2_PAGE34 /*!< SRAM2 Write protection page 34 */\r
157 #define SYSCFG_SRAM2WRP_PAGE35         SYSCFG_SWPR2_PAGE35 /*!< SRAM2 Write protection page 35 */\r
158 #define SYSCFG_SRAM2WRP_PAGE36         SYSCFG_SWPR2_PAGE36 /*!< SRAM2 Write protection page 36 */\r
159 #define SYSCFG_SRAM2WRP_PAGE37         SYSCFG_SWPR2_PAGE37 /*!< SRAM2 Write protection page 37 */\r
160 #define SYSCFG_SRAM2WRP_PAGE38         SYSCFG_SWPR2_PAGE38 /*!< SRAM2 Write protection page 38 */\r
161 #define SYSCFG_SRAM2WRP_PAGE39         SYSCFG_SWPR2_PAGE39 /*!< SRAM2 Write protection page 39 */\r
162 #define SYSCFG_SRAM2WRP_PAGE40         SYSCFG_SWPR2_PAGE40 /*!< SRAM2 Write protection page 40 */\r
163 #define SYSCFG_SRAM2WRP_PAGE41         SYSCFG_SWPR2_PAGE41 /*!< SRAM2 Write protection page 41 */\r
164 #define SYSCFG_SRAM2WRP_PAGE42         SYSCFG_SWPR2_PAGE42 /*!< SRAM2 Write protection page 42 */\r
165 #define SYSCFG_SRAM2WRP_PAGE43         SYSCFG_SWPR2_PAGE43 /*!< SRAM2 Write protection page 43 */\r
166 #define SYSCFG_SRAM2WRP_PAGE44         SYSCFG_SWPR2_PAGE44 /*!< SRAM2 Write protection page 44 */\r
167 #define SYSCFG_SRAM2WRP_PAGE45         SYSCFG_SWPR2_PAGE45 /*!< SRAM2 Write protection page 45 */\r
168 #define SYSCFG_SRAM2WRP_PAGE46         SYSCFG_SWPR2_PAGE46 /*!< SRAM2 Write protection page 46 */\r
169 #define SYSCFG_SRAM2WRP_PAGE47         SYSCFG_SWPR2_PAGE47 /*!< SRAM2 Write protection page 47 */\r
170 #define SYSCFG_SRAM2WRP_PAGE48         SYSCFG_SWPR2_PAGE48 /*!< SRAM2 Write protection page 48 */\r
171 #define SYSCFG_SRAM2WRP_PAGE49         SYSCFG_SWPR2_PAGE49 /*!< SRAM2 Write protection page 49 */\r
172 #define SYSCFG_SRAM2WRP_PAGE50         SYSCFG_SWPR2_PAGE50 /*!< SRAM2 Write protection page 50 */\r
173 #define SYSCFG_SRAM2WRP_PAGE51         SYSCFG_SWPR2_PAGE51 /*!< SRAM2 Write protection page 51 */\r
174 #define SYSCFG_SRAM2WRP_PAGE52         SYSCFG_SWPR2_PAGE52 /*!< SRAM2 Write protection page 52 */\r
175 #define SYSCFG_SRAM2WRP_PAGE53         SYSCFG_SWPR2_PAGE53 /*!< SRAM2 Write protection page 53 */\r
176 #define SYSCFG_SRAM2WRP_PAGE54         SYSCFG_SWPR2_PAGE54 /*!< SRAM2 Write protection page 54 */\r
177 #define SYSCFG_SRAM2WRP_PAGE55         SYSCFG_SWPR2_PAGE55 /*!< SRAM2 Write protection page 55 */\r
178 #define SYSCFG_SRAM2WRP_PAGE56         SYSCFG_SWPR2_PAGE56 /*!< SRAM2 Write protection page 56 */\r
179 #define SYSCFG_SRAM2WRP_PAGE57         SYSCFG_SWPR2_PAGE57 /*!< SRAM2 Write protection page 57 */\r
180 #define SYSCFG_SRAM2WRP_PAGE58         SYSCFG_SWPR2_PAGE58 /*!< SRAM2 Write protection page 58 */\r
181 #define SYSCFG_SRAM2WRP_PAGE59         SYSCFG_SWPR2_PAGE59 /*!< SRAM2 Write protection page 59 */\r
182 #define SYSCFG_SRAM2WRP_PAGE60         SYSCFG_SWPR2_PAGE60 /*!< SRAM2 Write protection page 60 */\r
183 #define SYSCFG_SRAM2WRP_PAGE61         SYSCFG_SWPR2_PAGE61 /*!< SRAM2 Write protection page 61 */\r
184 #define SYSCFG_SRAM2WRP_PAGE62         SYSCFG_SWPR2_PAGE62 /*!< SRAM2 Write protection page 62 */\r
185 #define SYSCFG_SRAM2WRP_PAGE63         SYSCFG_SWPR2_PAGE63 /*!< SRAM2 Write protection page 63 */\r
186 \r
187 /**\r
188   * @}\r
189   */\r
190 #endif /* SYSCFG_SWPR2_PAGE63 */\r
191 \r
192 #if defined(VREFBUF)\r
193 /** @defgroup SYSCFG_VREFBUF_VoltageScale VREFBUF Voltage Scale\r
194   * @{\r
195   */\r
196 #define SYSCFG_VREFBUF_VOLTAGE_SCALE0  0U               /*!< Voltage reference scale 0 (VREF_OUT1) */\r
197 #define SYSCFG_VREFBUF_VOLTAGE_SCALE1  VREFBUF_CSR_VRS  /*!< Voltage reference scale 1 (VREF_OUT2) */\r
198 \r
199 /**\r
200   * @}\r
201   */\r
202 \r
203 /** @defgroup SYSCFG_VREFBUF_HighImpedance VREFBUF High Impedance\r
204   * @{\r
205   */\r
206 #define SYSCFG_VREFBUF_HIGH_IMPEDANCE_DISABLE  0U               /*!< VREF_plus pin is internally connected to Voltage reference buffer output */\r
207 #define SYSCFG_VREFBUF_HIGH_IMPEDANCE_ENABLE   VREFBUF_CSR_HIZ  /*!< VREF_plus pin is high impedance */\r
208 \r
209 /**\r
210   * @}\r
211   */\r
212 #endif /* VREFBUF */\r
213 \r
214 /** @defgroup SYSCFG_flags_definition Flags\r
215   * @{\r
216   */\r
217 \r
218 #define SYSCFG_FLAG_SRAM2_PE            SYSCFG_CFGR2_SPF       /*!< SRAM2 parity error */\r
219 #define SYSCFG_FLAG_SRAM2_BUSY          SYSCFG_SCSR_SRAM2BSY   /*!< SRAM2 busy by erase operation */\r
220 \r
221 /**\r
222   * @}\r
223   */\r
224 \r
225 /** @defgroup SYSCFG_FastModePlus_GPIO Fast-mode Plus on GPIO\r
226   * @{\r
227   */\r
228 \r
229 /** @brief  Fast-mode Plus driving capability on a specific GPIO\r
230   */\r
231 #define SYSCFG_FASTMODEPLUS_PB6        SYSCFG_CFGR1_I2C_PB6_FMP  /*!< Enable Fast-mode Plus on PB6 */\r
232 #define SYSCFG_FASTMODEPLUS_PB7        SYSCFG_CFGR1_I2C_PB7_FMP  /*!< Enable Fast-mode Plus on PB7 */\r
233 #if defined(SYSCFG_CFGR1_I2C_PB8_FMP)\r
234 #define SYSCFG_FASTMODEPLUS_PB8        SYSCFG_CFGR1_I2C_PB8_FMP  /*!< Enable Fast-mode Plus on PB8 */\r
235 #endif /* SYSCFG_CFGR1_I2C_PB8_FMP */\r
236 #if defined(SYSCFG_CFGR1_I2C_PB9_FMP)\r
237 #define SYSCFG_FASTMODEPLUS_PB9        SYSCFG_CFGR1_I2C_PB9_FMP  /*!< Enable Fast-mode Plus on PB9 */\r
238 #endif /* SYSCFG_CFGR1_I2C_PB9_FMP */\r
239 \r
240 /**\r
241  * @}\r
242  */\r
243 \r
244 /**\r
245   * @}\r
246   */\r
247 \r
248 /* Exported macros -----------------------------------------------------------*/\r
249 \r
250 /** @defgroup DBGMCU_Exported_Macros DBGMCU Exported Macros\r
251   * @{\r
252   */\r
253 \r
254 /** @brief  Freeze/Unfreeze Peripherals in Debug mode\r
255   */\r
256 #if defined(DBGMCU_APB1FZR1_DBG_TIM2_STOP)\r
257 #define __HAL_DBGMCU_FREEZE_TIM2()           SET_BIT(DBGMCU->APB1FZR1, DBGMCU_APB1FZR1_DBG_TIM2_STOP)\r
258 #define __HAL_DBGMCU_UNFREEZE_TIM2()         CLEAR_BIT(DBGMCU->APB1FZR1, DBGMCU_APB1FZR1_DBG_TIM2_STOP)\r
259 #endif\r
260 \r
261 #if defined(DBGMCU_APB1FZR1_DBG_TIM3_STOP)\r
262 #define __HAL_DBGMCU_FREEZE_TIM3()           SET_BIT(DBGMCU->APB1FZR1, DBGMCU_APB1FZR1_DBG_TIM3_STOP)\r
263 #define __HAL_DBGMCU_UNFREEZE_TIM3()         CLEAR_BIT(DBGMCU->APB1FZR1, DBGMCU_APB1FZR1_DBG_TIM3_STOP)\r
264 #endif\r
265 \r
266 #if defined(DBGMCU_APB1FZR1_DBG_TIM4_STOP)\r
267 #define __HAL_DBGMCU_FREEZE_TIM4()           SET_BIT(DBGMCU->APB1FZR1, DBGMCU_APB1FZR1_DBG_TIM4_STOP)\r
268 #define __HAL_DBGMCU_UNFREEZE_TIM4()         CLEAR_BIT(DBGMCU->APB1FZR1, DBGMCU_APB1FZR1_DBG_TIM4_STOP)\r
269 #endif\r
270 \r
271 #if defined(DBGMCU_APB1FZR1_DBG_TIM5_STOP)\r
272 #define __HAL_DBGMCU_FREEZE_TIM5()           SET_BIT(DBGMCU->APB1FZR1, DBGMCU_APB1FZR1_DBG_TIM5_STOP)\r
273 #define __HAL_DBGMCU_UNFREEZE_TIM5()         CLEAR_BIT(DBGMCU->APB1FZR1, DBGMCU_APB1FZR1_DBG_TIM5_STOP)\r
274 #endif\r
275 \r
276 #if defined(DBGMCU_APB1FZR1_DBG_TIM6_STOP)\r
277 #define __HAL_DBGMCU_FREEZE_TIM6()           SET_BIT(DBGMCU->APB1FZR1, DBGMCU_APB1FZR1_DBG_TIM6_STOP)\r
278 #define __HAL_DBGMCU_UNFREEZE_TIM6()         CLEAR_BIT(DBGMCU->APB1FZR1, DBGMCU_APB1FZR1_DBG_TIM6_STOP)\r
279 #endif\r
280 \r
281 #if defined(DBGMCU_APB1FZR1_DBG_TIM7_STOP)\r
282 #define __HAL_DBGMCU_FREEZE_TIM7()           SET_BIT(DBGMCU->APB1FZR1, DBGMCU_APB1FZR1_DBG_TIM7_STOP)\r
283 #define __HAL_DBGMCU_UNFREEZE_TIM7()         CLEAR_BIT(DBGMCU->APB1FZR1, DBGMCU_APB1FZR1_DBG_TIM7_STOP)\r
284 #endif\r
285 \r
286 #if defined(DBGMCU_APB1FZR1_DBG_RTC_STOP)\r
287 #define __HAL_DBGMCU_FREEZE_RTC()            SET_BIT(DBGMCU->APB1FZR1, DBGMCU_APB1FZR1_DBG_RTC_STOP)\r
288 #define __HAL_DBGMCU_UNFREEZE_RTC()          CLEAR_BIT(DBGMCU->APB1FZR1, DBGMCU_APB1FZR1_DBG_RTC_STOP)\r
289 #endif\r
290 \r
291 #if defined(DBGMCU_APB1FZR1_DBG_WWDG_STOP)\r
292 #define __HAL_DBGMCU_FREEZE_WWDG()           SET_BIT(DBGMCU->APB1FZR1, DBGMCU_APB1FZR1_DBG_WWDG_STOP)\r
293 #define __HAL_DBGMCU_UNFREEZE_WWDG()         CLEAR_BIT(DBGMCU->APB1FZR1, DBGMCU_APB1FZR1_DBG_WWDG_STOP)\r
294 #endif\r
295 \r
296 #if defined(DBGMCU_APB1FZR1_DBG_IWDG_STOP)\r
297 #define __HAL_DBGMCU_FREEZE_IWDG()           SET_BIT(DBGMCU->APB1FZR1, DBGMCU_APB1FZR1_DBG_IWDG_STOP)\r
298 #define __HAL_DBGMCU_UNFREEZE_IWDG()         CLEAR_BIT(DBGMCU->APB1FZR1, DBGMCU_APB1FZR1_DBG_IWDG_STOP)\r
299 #endif\r
300 \r
301 #if defined(DBGMCU_APB1FZR1_DBG_I2C1_STOP)\r
302 #define __HAL_DBGMCU_FREEZE_I2C1_TIMEOUT()   SET_BIT(DBGMCU->APB1FZR1, DBGMCU_APB1FZR1_DBG_I2C1_STOP)\r
303 #define __HAL_DBGMCU_UNFREEZE_I2C1_TIMEOUT() CLEAR_BIT(DBGMCU->APB1FZR1, DBGMCU_APB1FZR1_DBG_I2C1_STOP)\r
304 #endif\r
305 \r
306 #if defined(DBGMCU_APB1FZR1_DBG_I2C2_STOP)\r
307 #define __HAL_DBGMCU_FREEZE_I2C2_TIMEOUT()   SET_BIT(DBGMCU->APB1FZR1, DBGMCU_APB1FZR1_DBG_I2C2_STOP)\r
308 #define __HAL_DBGMCU_UNFREEZE_I2C2_TIMEOUT() CLEAR_BIT(DBGMCU->APB1FZR1, DBGMCU_APB1FZR1_DBG_I2C2_STOP)\r
309 #endif\r
310 \r
311 #if defined(DBGMCU_APB1FZR1_DBG_I2C3_STOP)\r
312 #define __HAL_DBGMCU_FREEZE_I2C3_TIMEOUT()   SET_BIT(DBGMCU->APB1FZR1, DBGMCU_APB1FZR1_DBG_I2C3_STOP)\r
313 #define __HAL_DBGMCU_UNFREEZE_I2C3_TIMEOUT() CLEAR_BIT(DBGMCU->APB1FZR1, DBGMCU_APB1FZR1_DBG_I2C3_STOP)\r
314 #endif\r
315 \r
316 #if defined(DBGMCU_APB1FZR2_DBG_I2C4_STOP)\r
317 #define __HAL_DBGMCU_FREEZE_I2C4_TIMEOUT()   SET_BIT(DBGMCU->APB1FZR2, DBGMCU_APB1FZR2_DBG_I2C4_STOP)\r
318 #define __HAL_DBGMCU_UNFREEZE_I2C4_TIMEOUT() CLEAR_BIT(DBGMCU->APB1FZR2, DBGMCU_APB1FZR2_DBG_I2C4_STOP)\r
319 #endif\r
320 \r
321 #if defined(DBGMCU_APB1FZR1_DBG_CAN_STOP)\r
322 #define __HAL_DBGMCU_FREEZE_CAN1()           SET_BIT(DBGMCU->APB1FZR1, DBGMCU_APB1FZR1_DBG_CAN_STOP)\r
323 #define __HAL_DBGMCU_UNFREEZE_CAN1()         CLEAR_BIT(DBGMCU->APB1FZR1, DBGMCU_APB1FZR1_DBG_CAN_STOP)\r
324 #endif\r
325 \r
326 #if defined(DBGMCU_APB1FZR1_DBG_CAN2_STOP)\r
327 #define __HAL_DBGMCU_FREEZE_CAN2()           SET_BIT(DBGMCU->APB1FZR1, DBGMCU_APB1FZR1_DBG_CAN2_STOP)\r
328 #define __HAL_DBGMCU_UNFREEZE_CAN2()         CLEAR_BIT(DBGMCU->APB1FZR1, DBGMCU_APB1FZR1_DBG_CAN2_STOP)\r
329 #endif\r
330 \r
331 #if defined(DBGMCU_APB1FZR1_DBG_LPTIM1_STOP)\r
332 #define __HAL_DBGMCU_FREEZE_LPTIM1()         SET_BIT(DBGMCU->APB1FZR1, DBGMCU_APB1FZR1_DBG_LPTIM1_STOP)\r
333 #define __HAL_DBGMCU_UNFREEZE_LPTIM1()       CLEAR_BIT(DBGMCU->APB1FZR1, DBGMCU_APB1FZR1_DBG_LPTIM1_STOP)\r
334 #endif\r
335 \r
336 #if defined(DBGMCU_APB1FZR2_DBG_LPTIM2_STOP)\r
337 #define __HAL_DBGMCU_FREEZE_LPTIM2()         SET_BIT(DBGMCU->APB1FZR2, DBGMCU_APB1FZR2_DBG_LPTIM2_STOP)\r
338 #define __HAL_DBGMCU_UNFREEZE_LPTIM2()       CLEAR_BIT(DBGMCU->APB1FZR2, DBGMCU_APB1FZR2_DBG_LPTIM2_STOP)\r
339 #endif\r
340 \r
341 #if defined(DBGMCU_APB2FZ_DBG_TIM1_STOP)\r
342 #define __HAL_DBGMCU_FREEZE_TIM1()           SET_BIT(DBGMCU->APB2FZ, DBGMCU_APB2FZ_DBG_TIM1_STOP)\r
343 #define __HAL_DBGMCU_UNFREEZE_TIM1()         CLEAR_BIT(DBGMCU->APB2FZ, DBGMCU_APB2FZ_DBG_TIM1_STOP)\r
344 #endif\r
345 \r
346 #if defined(DBGMCU_APB2FZ_DBG_TIM8_STOP)\r
347 #define __HAL_DBGMCU_FREEZE_TIM8()           SET_BIT(DBGMCU->APB2FZ, DBGMCU_APB2FZ_DBG_TIM8_STOP)\r
348 #define __HAL_DBGMCU_UNFREEZE_TIM8()         CLEAR_BIT(DBGMCU->APB2FZ, DBGMCU_APB2FZ_DBG_TIM8_STOP)\r
349 #endif\r
350 \r
351 #if defined(DBGMCU_APB2FZ_DBG_TIM15_STOP)\r
352 #define __HAL_DBGMCU_FREEZE_TIM15()          SET_BIT(DBGMCU->APB2FZ, DBGMCU_APB2FZ_DBG_TIM15_STOP)\r
353 #define __HAL_DBGMCU_UNFREEZE_TIM15()        CLEAR_BIT(DBGMCU->APB2FZ, DBGMCU_APB2FZ_DBG_TIM15_STOP)\r
354 #endif\r
355 \r
356 #if defined(DBGMCU_APB2FZ_DBG_TIM16_STOP)\r
357 #define __HAL_DBGMCU_FREEZE_TIM16()          SET_BIT(DBGMCU->APB2FZ, DBGMCU_APB2FZ_DBG_TIM16_STOP)\r
358 #define __HAL_DBGMCU_UNFREEZE_TIM16()        CLEAR_BIT(DBGMCU->APB2FZ, DBGMCU_APB2FZ_DBG_TIM16_STOP)\r
359 #endif\r
360 \r
361 #if defined(DBGMCU_APB2FZ_DBG_TIM17_STOP)\r
362 #define __HAL_DBGMCU_FREEZE_TIM17()          SET_BIT(DBGMCU->APB2FZ, DBGMCU_APB2FZ_DBG_TIM17_STOP)\r
363 #define __HAL_DBGMCU_UNFREEZE_TIM17()        CLEAR_BIT(DBGMCU->APB2FZ, DBGMCU_APB2FZ_DBG_TIM17_STOP)\r
364 #endif\r
365 \r
366 /**\r
367   * @}\r
368   */\r
369 \r
370 /** @defgroup SYSCFG_Exported_Macros SYSCFG Exported Macros\r
371   * @{\r
372   */\r
373 \r
374 /** @brief  Main Flash memory mapped at 0x00000000.\r
375   */\r
376 #define __HAL_SYSCFG_REMAPMEMORY_FLASH()       CLEAR_BIT(SYSCFG->MEMRMP, SYSCFG_MEMRMP_MEM_MODE)\r
377 \r
378 /** @brief  System Flash memory mapped at 0x00000000.\r
379   */\r
380 #define __HAL_SYSCFG_REMAPMEMORY_SYSTEMFLASH() MODIFY_REG(SYSCFG->MEMRMP, SYSCFG_MEMRMP_MEM_MODE, SYSCFG_MEMRMP_MEM_MODE_0)\r
381 \r
382 /** @brief  Embedded SRAM mapped at 0x00000000.\r
383   */\r
384 #define __HAL_SYSCFG_REMAPMEMORY_SRAM()        MODIFY_REG(SYSCFG->MEMRMP, SYSCFG_MEMRMP_MEM_MODE, (SYSCFG_MEMRMP_MEM_MODE_1|SYSCFG_MEMRMP_MEM_MODE_0))\r
385 \r
386 #if defined (STM32L471xx) || defined (STM32L475xx) || defined (STM32L476xx) || defined (STM32L485xx) || defined (STM32L486xx) || \\r
387     defined (STM32L496xx) || defined (STM32L4A6xx) || \\r
388     defined (STM32L4R5xx) || defined (STM32L4R7xx) || defined (STM32L4R9xx) || defined (STM32L4S5xx) || defined (STM32L4S7xx) || defined (STM32L4S9xx)\r
389 \r
390 /** @brief  FMC Bank1 (NOR/PSRAM 1 and 2) mapped at 0x00000000.\r
391   */\r
392 #define __HAL_SYSCFG_REMAPMEMORY_FMC()         MODIFY_REG(SYSCFG->MEMRMP, SYSCFG_MEMRMP_MEM_MODE, SYSCFG_MEMRMP_MEM_MODE_1)\r
393 \r
394 #endif /* STM32L471xx || STM32L475xx || STM32L476xx || STM32L485xx || STM32L486xx || */\r
395        /* STM32L496xx || STM32L4A6xx || */\r
396        /* STM32L4R5xx || STM32L4R7xx || STM32L4R9xx || STM32L4S5xx || STM32L4S7xx || STM32L4S9xx */\r
397 \r
398 #if defined (STM32L4R5xx) || defined (STM32L4R7xx) || defined (STM32L4R9xx) || defined (STM32L4S5xx) || defined (STM32L4S7xx) || defined (STM32L4S9xx)\r
399 \r
400 /** @brief  OCTOSPI mapped at 0x00000000.\r
401   */\r
402 #define __HAL_SYSCFG_REMAPMEMORY_OCTOSPI1()    MODIFY_REG(SYSCFG->MEMRMP, SYSCFG_MEMRMP_MEM_MODE, (SYSCFG_MEMRMP_MEM_MODE_2))\r
403 #define __HAL_SYSCFG_REMAPMEMORY_OCTOSPI2()    MODIFY_REG(SYSCFG->MEMRMP, SYSCFG_MEMRMP_MEM_MODE, (SYSCFG_MEMRMP_MEM_MODE_2|SYSCFG_MEMRMP_MEM_MODE_0))\r
404 \r
405 #else\r
406 \r
407 /** @brief  QUADSPI mapped at 0x00000000.\r
408   */\r
409 #define __HAL_SYSCFG_REMAPMEMORY_QUADSPI()     MODIFY_REG(SYSCFG->MEMRMP, SYSCFG_MEMRMP_MEM_MODE, (SYSCFG_MEMRMP_MEM_MODE_2|SYSCFG_MEMRMP_MEM_MODE_1))\r
410 \r
411 #endif /* STM32L4R5xx || STM32L4R7xx || STM32L4R9xx || STM32L4S5xx || STM32L4S7xx || STM32L4S9xx */\r
412 \r
413 /**\r
414   * @brief  Return the boot mode as configured by user.\r
415   * @retval The boot mode as configured by user. The returned value can be one\r
416   *         of the following values:\r
417   *           @arg @ref SYSCFG_BOOT_MAINFLASH\r
418   *           @arg @ref SYSCFG_BOOT_SYSTEMFLASH\r
419   @if STM32L486xx\r
420   *           @arg @ref SYSCFG_BOOT_FMC\r
421   @endif\r
422   *           @arg @ref SYSCFG_BOOT_SRAM\r
423   *           @arg @ref SYSCFG_BOOT_QUADSPI\r
424   */\r
425 #define __HAL_SYSCFG_GET_BOOT_MODE()           READ_BIT(SYSCFG->MEMRMP, SYSCFG_MEMRMP_MEM_MODE)\r
426 \r
427 /** @brief  SRAM2 page 0 to 31 write protection enable macro\r
428   * @param  __SRAM2WRP__  This parameter can be a combination of values of @ref SYSCFG_SRAM2WRP\r
429   * @note   Write protection can only be disabled by a system reset\r
430   */\r
431 #define __HAL_SYSCFG_SRAM2_WRP_1_31_ENABLE(__SRAM2WRP__)    do {assert_param(IS_SYSCFG_SRAM2WRP_PAGE((__SRAM2WRP__)));\\r
432                                                                 SET_BIT(SYSCFG->SWPR, (__SRAM2WRP__));\\r
433                                                             }while(0)\r
434 \r
435 #if defined(SYSCFG_SWPR2_PAGE63)\r
436 /** @brief  SRAM2 page 32 to 63 write protection enable macro\r
437   * @param  __SRAM2WRP__  This parameter can be a combination of values of @ref SYSCFG_SRAM2WRP_32_63\r
438   * @note   Write protection can only be disabled by a system reset\r
439   */\r
440 #define __HAL_SYSCFG_SRAM2_WRP_32_63_ENABLE(__SRAM2WRP__)   do {assert_param(IS_SYSCFG_SRAM2WRP_PAGE((__SRAM2WRP__)));\\r
441                                                                 SET_BIT(SYSCFG->SWPR2, (__SRAM2WRP__));\\r
442                                                             }while(0)\r
443 #endif /* SYSCFG_SWPR2_PAGE63 */\r
444 \r
445 /** @brief  SRAM2 page write protection unlock prior to erase\r
446   * @note   Writing a wrong key reactivates the write protection\r
447   */\r
448 #define __HAL_SYSCFG_SRAM2_WRP_UNLOCK()      do {SYSCFG->SKR = 0xCA;\\r
449                                                  SYSCFG->SKR = 0x53;\\r
450                                                 }while(0)\r
451 \r
452 /** @brief  SRAM2 erase\r
453   * @note   __SYSCFG_GET_FLAG(SYSCFG_FLAG_SRAM2_BUSY) may be used to check end of erase\r
454   */\r
455 #define __HAL_SYSCFG_SRAM2_ERASE()           SET_BIT(SYSCFG->SCSR, SYSCFG_SCSR_SRAM2ER)\r
456 \r
457 /** @brief  Floating Point Unit interrupt enable/disable macros\r
458   * @param __INTERRUPT__  This parameter can be a value of @ref SYSCFG_FPU_Interrupts\r
459   */\r
460 #define __HAL_SYSCFG_FPU_INTERRUPT_ENABLE(__INTERRUPT__)    do {assert_param(IS_SYSCFG_FPU_INTERRUPT((__INTERRUPT__)));\\r
461                                                                 SET_BIT(SYSCFG->CFGR1, (__INTERRUPT__));\\r
462                                                             }while(0)\r
463 \r
464 #define __HAL_SYSCFG_FPU_INTERRUPT_DISABLE(__INTERRUPT__)   do {assert_param(IS_SYSCFG_FPU_INTERRUPT((__INTERRUPT__)));\\r
465                                                                 CLEAR_BIT(SYSCFG->CFGR1, (__INTERRUPT__));\\r
466                                                             }while(0)\r
467 \r
468 /** @brief  SYSCFG Break ECC lock.\r
469   *         Enable and lock the connection of Flash ECC error connection to TIM1/8/15/16/17 Break input.\r
470   * @note   The selected configuration is locked and can be unlocked only by system reset.\r
471   */\r
472 #define __HAL_SYSCFG_BREAK_ECC_LOCK()        SET_BIT(SYSCFG->CFGR2, SYSCFG_CFGR2_ECCL)\r
473 \r
474 /** @brief  SYSCFG Break Cortex-M4 Lockup lock.\r
475   *         Enable and lock the connection of Cortex-M4 LOCKUP (Hardfault) output to TIM1/8/15/16/17 Break input.\r
476   * @note   The selected configuration is locked and can be unlocked only by system reset.\r
477   */\r
478 #define __HAL_SYSCFG_BREAK_LOCKUP_LOCK()     SET_BIT(SYSCFG->CFGR2, SYSCFG_CFGR2_CLL)\r
479 \r
480 /** @brief  SYSCFG Break PVD lock.\r
481   *         Enable and lock the PVD connection to Timer1/8/15/16/17 Break input, as well as the PVDE and PLS[2:0] in the PWR_CR2 register.\r
482   * @note   The selected configuration is locked and can be unlocked only by system reset.\r
483   */\r
484 #define __HAL_SYSCFG_BREAK_PVD_LOCK()        SET_BIT(SYSCFG->CFGR2, SYSCFG_CFGR2_PVDL)\r
485 \r
486 /** @brief  SYSCFG Break SRAM2 parity lock.\r
487   *         Enable and lock the SRAM2 parity error signal connection to TIM1/8/15/16/17 Break input.\r
488   * @note   The selected configuration is locked and can be unlocked by system reset.\r
489   */\r
490 #define __HAL_SYSCFG_BREAK_SRAM2PARITY_LOCK()  SET_BIT(SYSCFG->CFGR2, SYSCFG_CFGR2_SPL)\r
491 \r
492 /** @brief  Check SYSCFG flag is set or not.\r
493   * @param  __FLAG__  specifies the flag to check.\r
494   *         This parameter can be one of the following values:\r
495   *            @arg @ref SYSCFG_FLAG_SRAM2_PE   SRAM2 Parity Error Flag\r
496   *            @arg @ref SYSCFG_FLAG_SRAM2_BUSY SRAM2 Erase Ongoing\r
497   * @retval The new state of __FLAG__ (TRUE or FALSE).\r
498   */\r
499 #define __HAL_SYSCFG_GET_FLAG(__FLAG__)      ((((((__FLAG__) == SYSCFG_SCSR_SRAM2BSY)? SYSCFG->SCSR : SYSCFG->CFGR2) & (__FLAG__))!= 0U) ? 1U : 0U)\r
500 \r
501 /** @brief  Set the SPF bit to clear the SRAM Parity Error Flag.\r
502   */\r
503 #define __HAL_SYSCFG_CLEAR_FLAG()            SET_BIT(SYSCFG->CFGR2, SYSCFG_CFGR2_SPF)\r
504 \r
505 /** @brief  Fast-mode Plus driving capability enable/disable macros\r
506   * @param __FASTMODEPLUS__  This parameter can be a value of :\r
507   *     @arg @ref SYSCFG_FASTMODEPLUS_PB6 Fast-mode Plus driving capability activation on PB6\r
508   *     @arg @ref SYSCFG_FASTMODEPLUS_PB7 Fast-mode Plus driving capability activation on PB7\r
509   *     @arg @ref SYSCFG_FASTMODEPLUS_PB8 Fast-mode Plus driving capability activation on PB8\r
510   *     @arg @ref SYSCFG_FASTMODEPLUS_PB9 Fast-mode Plus driving capability activation on PB9\r
511   */\r
512 #define __HAL_SYSCFG_FASTMODEPLUS_ENABLE(__FASTMODEPLUS__)  do {assert_param(IS_SYSCFG_FASTMODEPLUS((__FASTMODEPLUS__)));\\r
513                                                                 SET_BIT(SYSCFG->CFGR1, (__FASTMODEPLUS__));\\r
514                                                                }while(0)\r
515 \r
516 #define __HAL_SYSCFG_FASTMODEPLUS_DISABLE(__FASTMODEPLUS__) do {assert_param(IS_SYSCFG_FASTMODEPLUS((__FASTMODEPLUS__)));\\r
517                                                                 CLEAR_BIT(SYSCFG->CFGR1, (__FASTMODEPLUS__));\\r
518                                                                }while(0)\r
519 \r
520 /**\r
521   * @}\r
522   */\r
523 \r
524 /* Private macros ------------------------------------------------------------*/\r
525 /** @defgroup HAL_Private_Macros HAL Private Macros\r
526   * @{\r
527   */\r
528 \r
529 #define IS_TICKFREQ(__FREQ__) (((__FREQ__) == HAL_TICK_FREQ_10HZ)  || \\r
530                                ((__FREQ__) == HAL_TICK_FREQ_100HZ) || \\r
531                                ((__FREQ__) == HAL_TICK_FREQ_1KHZ))\r
532 \r
533 /**\r
534   * @}\r
535   */\r
536 \r
537 /** @defgroup SYSCFG_Private_Macros SYSCFG Private Macros\r
538   * @{\r
539   */\r
540 \r
541 #define IS_SYSCFG_FPU_INTERRUPT(__INTERRUPT__) ((((__INTERRUPT__) & SYSCFG_IT_FPU_IOC) == SYSCFG_IT_FPU_IOC) || \\r
542                                                 (((__INTERRUPT__) & SYSCFG_IT_FPU_DZC) == SYSCFG_IT_FPU_DZC) || \\r
543                                                 (((__INTERRUPT__) & SYSCFG_IT_FPU_UFC) == SYSCFG_IT_FPU_UFC) || \\r
544                                                 (((__INTERRUPT__) & SYSCFG_IT_FPU_OFC) == SYSCFG_IT_FPU_OFC) || \\r
545                                                 (((__INTERRUPT__) & SYSCFG_IT_FPU_IDC) == SYSCFG_IT_FPU_IDC) || \\r
546                                                 (((__INTERRUPT__) & SYSCFG_IT_FPU_IXC) == SYSCFG_IT_FPU_IXC))\r
547 \r
548 #define IS_SYSCFG_BREAK_CONFIG(__CONFIG__) (((__CONFIG__) == SYSCFG_BREAK_ECC)           || \\r
549                                             ((__CONFIG__) == SYSCFG_BREAK_PVD)           || \\r
550                                             ((__CONFIG__) == SYSCFG_BREAK_SRAM2_PARITY)  || \\r
551                                             ((__CONFIG__) == SYSCFG_BREAK_LOCKUP))\r
552 \r
553 #define IS_SYSCFG_SRAM2WRP_PAGE(__PAGE__)   (((__PAGE__) > 0U) && ((__PAGE__) <= 0xFFFFFFFFUL))\r
554 \r
555 #if defined(VREFBUF)\r
556 #define IS_SYSCFG_VREFBUF_VOLTAGE_SCALE(__SCALE__)  (((__SCALE__) == SYSCFG_VREFBUF_VOLTAGE_SCALE0) || \\r
557                                                      ((__SCALE__) == SYSCFG_VREFBUF_VOLTAGE_SCALE1))\r
558 \r
559 #define IS_SYSCFG_VREFBUF_HIGH_IMPEDANCE(__VALUE__)  (((__VALUE__) == SYSCFG_VREFBUF_HIGH_IMPEDANCE_DISABLE) || \\r
560                                                       ((__VALUE__) == SYSCFG_VREFBUF_HIGH_IMPEDANCE_ENABLE))\r
561 \r
562 #define IS_SYSCFG_VREFBUF_TRIMMING(__VALUE__)  (((__VALUE__) > 0U) && ((__VALUE__) <= VREFBUF_CCR_TRIM))\r
563 #endif /* VREFBUF */\r
564 \r
565 #if defined(SYSCFG_FASTMODEPLUS_PB8) && defined(SYSCFG_FASTMODEPLUS_PB9)\r
566 #define IS_SYSCFG_FASTMODEPLUS(__PIN__) ((((__PIN__) & SYSCFG_FASTMODEPLUS_PB6) == SYSCFG_FASTMODEPLUS_PB6) || \\r
567                                          (((__PIN__) & SYSCFG_FASTMODEPLUS_PB7) == SYSCFG_FASTMODEPLUS_PB7) || \\r
568                                          (((__PIN__) & SYSCFG_FASTMODEPLUS_PB8) == SYSCFG_FASTMODEPLUS_PB8) || \\r
569                                          (((__PIN__) & SYSCFG_FASTMODEPLUS_PB9) == SYSCFG_FASTMODEPLUS_PB9))\r
570 #elif defined(SYSCFG_FASTMODEPLUS_PB8)\r
571 #define IS_SYSCFG_FASTMODEPLUS(__PIN__) ((((__PIN__) & SYSCFG_FASTMODEPLUS_PB6) == SYSCFG_FASTMODEPLUS_PB6) || \\r
572                                          (((__PIN__) & SYSCFG_FASTMODEPLUS_PB7) == SYSCFG_FASTMODEPLUS_PB7) || \\r
573                                          (((__PIN__) & SYSCFG_FASTMODEPLUS_PB8) == SYSCFG_FASTMODEPLUS_PB8))\r
574 #elif defined(SYSCFG_FASTMODEPLUS_PB9)\r
575 #define IS_SYSCFG_FASTMODEPLUS(__PIN__) ((((__PIN__) & SYSCFG_FASTMODEPLUS_PB6) == SYSCFG_FASTMODEPLUS_PB6) || \\r
576                                          (((__PIN__) & SYSCFG_FASTMODEPLUS_PB7) == SYSCFG_FASTMODEPLUS_PB7) || \\r
577                                          (((__PIN__) & SYSCFG_FASTMODEPLUS_PB9) == SYSCFG_FASTMODEPLUS_PB9))\r
578 #else\r
579 #define IS_SYSCFG_FASTMODEPLUS(__PIN__) ((((__PIN__) & SYSCFG_FASTMODEPLUS_PB6) == SYSCFG_FASTMODEPLUS_PB6) || \\r
580                                          (((__PIN__) & SYSCFG_FASTMODEPLUS_PB7) == SYSCFG_FASTMODEPLUS_PB7))\r
581 #endif\r
582 /**\r
583   * @}\r
584   */\r
585 \r
586 /* Exported variables --------------------------------------------------------*/\r
587 \r
588 /** @addtogroup HAL_Exported_Variables\r
589   * @{\r
590   */\r
591 extern __IO uint32_t uwTick;\r
592 extern uint32_t uwTickPrio;\r
593 extern uint32_t uwTickFreq;\r
594 /**\r
595   * @}\r
596   */\r
597 \r
598 /* Exported functions --------------------------------------------------------*/\r
599 \r
600 /** @addtogroup HAL_Exported_Functions\r
601   * @{\r
602   */\r
603 \r
604 /** @addtogroup HAL_Exported_Functions_Group1\r
605   * @{\r
606   */\r
607 \r
608 /* Initialization and de-initialization functions  ******************************/\r
609 HAL_StatusTypeDef HAL_Init(void);\r
610 HAL_StatusTypeDef HAL_DeInit(void);\r
611 void              HAL_MspInit(void);\r
612 void              HAL_MspDeInit(void);\r
613 HAL_StatusTypeDef HAL_InitTick (uint32_t TickPriority);\r
614 \r
615 /**\r
616   * @}\r
617   */\r
618 \r
619 /** @addtogroup HAL_Exported_Functions_Group2\r
620   * @{\r
621   */\r
622 \r
623 /* Peripheral Control functions  ************************************************/\r
624 void               HAL_IncTick(void);\r
625 void               HAL_Delay(uint32_t Delay);\r
626 uint32_t           HAL_GetTick(void);\r
627 uint32_t           HAL_GetTickPrio(void);\r
628 HAL_StatusTypeDef  HAL_SetTickFreq(uint32_t Freq);\r
629 uint32_t           HAL_GetTickFreq(void);\r
630 void               HAL_SuspendTick(void);\r
631 void               HAL_ResumeTick(void);\r
632 uint32_t           HAL_GetHalVersion(void);\r
633 uint32_t           HAL_GetREVID(void);\r
634 uint32_t           HAL_GetDEVID(void);\r
635 uint32_t           HAL_GetUIDw0(void);\r
636 uint32_t           HAL_GetUIDw1(void);\r
637 uint32_t           HAL_GetUIDw2(void);\r
638 \r
639 /**\r
640   * @}\r
641   */\r
642 \r
643 /** @addtogroup HAL_Exported_Functions_Group3\r
644   * @{\r
645   */\r
646 \r
647 /* DBGMCU Peripheral Control functions  *****************************************/\r
648 void              HAL_DBGMCU_EnableDBGSleepMode(void);\r
649 void              HAL_DBGMCU_DisableDBGSleepMode(void);\r
650 void              HAL_DBGMCU_EnableDBGStopMode(void);\r
651 void              HAL_DBGMCU_DisableDBGStopMode(void);\r
652 void              HAL_DBGMCU_EnableDBGStandbyMode(void);\r
653 void              HAL_DBGMCU_DisableDBGStandbyMode(void);\r
654 \r
655 /**\r
656   * @}\r
657   */\r
658 \r
659 /** @addtogroup HAL_Exported_Functions_Group4\r
660   * @{\r
661   */\r
662 \r
663 /* SYSCFG Control functions  ****************************************************/\r
664 void              HAL_SYSCFG_SRAM2Erase(void);\r
665 void              HAL_SYSCFG_EnableMemorySwappingBank(void);\r
666 void              HAL_SYSCFG_DisableMemorySwappingBank(void);\r
667 \r
668 #if defined(VREFBUF)\r
669 void              HAL_SYSCFG_VREFBUF_VoltageScalingConfig(uint32_t VoltageScaling);\r
670 void              HAL_SYSCFG_VREFBUF_HighImpedanceConfig(uint32_t Mode);\r
671 void              HAL_SYSCFG_VREFBUF_TrimmingConfig(uint32_t TrimmingValue);\r
672 HAL_StatusTypeDef HAL_SYSCFG_EnableVREFBUF(void);\r
673 void              HAL_SYSCFG_DisableVREFBUF(void);\r
674 #endif /* VREFBUF */\r
675 \r
676 void              HAL_SYSCFG_EnableIOAnalogSwitchBooster(void);\r
677 void              HAL_SYSCFG_DisableIOAnalogSwitchBooster(void);\r
678 \r
679 /**\r
680   * @}\r
681   */\r
682 \r
683 /**\r
684   * @}\r
685   */\r
686 \r
687 /**\r
688   * @}\r
689   */\r
690 \r
691 /**\r
692   * @}\r
693   */\r
694 \r
695 #ifdef __cplusplus\r
696 }\r
697 #endif\r
698 \r
699 #endif /* STM32L4xx_HAL_H */\r
700 \r
701 /************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/\r