1 /**
2   ******************************************************************************
3   * @file    stm32wbxx_hal.h
4   * @author  MCD Application Team
5   * @brief   This file contains all the functions prototypes for the HAL
6   *          module driver.
7   ******************************************************************************
8   * @attention
9   *
10   * Copyright (c) 2019 STMicroelectronics.
11   * All rights reserved.
12   *
13   * This software is licensed under terms that can be found in the LICENSE file
14   * in the root directory of this software component.
15   * If no LICENSE file comes with this software, it is provided AS-IS.
16   *
17   ******************************************************************************
18   */
19 
20 /* Define to prevent recursive inclusion -------------------------------------*/
21 #ifndef STM32WBxx_HAL_H
22 #define STM32WBxx_HAL_H
23 
24 #ifdef __cplusplus
25 extern "C" {
26 #endif
27 
28 /* Includes ------------------------------------------------------------------*/
29 #include "stm32wbxx_hal_conf.h"
30 #include "stm32wbxx_ll_system.h"
31 
32 /** @addtogroup STM32WBxx_HAL_Driver
33   * @{
34   */
35 
36 /** @defgroup HAL HAL
37   * @{
38   */
39 
40 /** @defgroup HAL_TICK_FREQ Tick Frequency
41   * @{
42   */
43 typedef enum
44 {
45   HAL_TICK_FREQ_10HZ         = 100U,
46   HAL_TICK_FREQ_100HZ        = 10U,
47   HAL_TICK_FREQ_1KHZ         = 1U,
48   HAL_TICK_FREQ_DEFAULT      = HAL_TICK_FREQ_1KHZ
49 } HAL_TickFreqTypeDef;
50 
51 /**
52   * @}
53   */
54 
55 /* Exported constants --------------------------------------------------------*/
56 /** @defgroup HAL_Exported_Constants HAL Exported Constants
57   * @{
58   */
59 
60 /** @defgroup SYSCFG_Exported_Constants SYSCFG Exported Constants
61   * @{
62   */
63 
64 /** @defgroup SYSCFG_BootMode BOOT Mode
65   * @{
66   */
67 #define SYSCFG_BOOT_MAINFLASH           LL_SYSCFG_REMAP_FLASH           /*!< Main Flash memory mapped at 0x00000000   */
68 #define SYSCFG_BOOT_SYSTEMFLASH         LL_SYSCFG_REMAP_SYSTEMFLASH     /*!< System Flash memory mapped at 0x00000000 */
69 #define SYSCFG_BOOT_SRAM                LL_SYSCFG_REMAP_SRAM            /*!< SRAM1 mapped at 0x00000000               */
70 #if defined(LL_SYSCFG_REMAP_QUADSPI)
71 #define SYSCFG_BOOT_QUADSPI             LL_SYSCFG_REMAP_QUADSPI         /*!< QUADSPI memory mapped at 0x00000000      */
72 #endif /* LL_SYSCFG_REMAP_QUADSPI */
73 /**
74   * @}
75   */
76 
77 /** @defgroup SYSCFG_FPU_Interrupts FPU Interrupts
78   * @{
79   */
80 #define SYSCFG_IT_FPU_IOC               SYSCFG_CFGR1_FPU_IE_0           /*!< Floating Point Unit Invalid operation Interrupt */
81 #define SYSCFG_IT_FPU_DZC               SYSCFG_CFGR1_FPU_IE_1           /*!< Floating Point Unit Divide-by-zero Interrupt    */
82 #define SYSCFG_IT_FPU_UFC               SYSCFG_CFGR1_FPU_IE_2           /*!< Floating Point Unit Underflow Interrupt         */
83 #define SYSCFG_IT_FPU_OFC               SYSCFG_CFGR1_FPU_IE_3           /*!< Floating Point Unit Overflow Interrupt          */
84 #define SYSCFG_IT_FPU_IDC               SYSCFG_CFGR1_FPU_IE_4           /*!< Floating Point Unit Input denormal Interrupt    */
85 #define SYSCFG_IT_FPU_IXC               SYSCFG_CFGR1_FPU_IE_5           /*!< Floating Point Unit Inexact Interrupt           */
86 
87 /**
88   * @}
89   */
90 
91 /** @defgroup SYSCFG_SRAM2WRP SRAM2 Page Write protection (0 to 31)
92   * @{
93   */
94 #define SYSCFG_SRAM2WRP_PAGE0           LL_SYSCFG_SRAM2WRP_PAGE0        /*!< SRAM2A Write protection page 0  */
95 #define SYSCFG_SRAM2WRP_PAGE1           LL_SYSCFG_SRAM2WRP_PAGE1        /*!< SRAM2A Write protection page 1  */
96 #define SYSCFG_SRAM2WRP_PAGE2           LL_SYSCFG_SRAM2WRP_PAGE2        /*!< SRAM2A Write protection page 2  */
97 #define SYSCFG_SRAM2WRP_PAGE3           LL_SYSCFG_SRAM2WRP_PAGE3        /*!< SRAM2A Write protection page 3  */
98 #define SYSCFG_SRAM2WRP_PAGE4           LL_SYSCFG_SRAM2WRP_PAGE4        /*!< SRAM2A Write protection page 4  */
99 #define SYSCFG_SRAM2WRP_PAGE5           LL_SYSCFG_SRAM2WRP_PAGE5        /*!< SRAM2A Write protection page 5  */
100 #define SYSCFG_SRAM2WRP_PAGE6           LL_SYSCFG_SRAM2WRP_PAGE6        /*!< SRAM2A Write protection page 6  */
101 #define SYSCFG_SRAM2WRP_PAGE7           LL_SYSCFG_SRAM2WRP_PAGE7        /*!< SRAM2A Write protection page 7  */
102 #define SYSCFG_SRAM2WRP_PAGE8           LL_SYSCFG_SRAM2WRP_PAGE8        /*!< SRAM2A Write protection page 8  */
103 #define SYSCFG_SRAM2WRP_PAGE9           LL_SYSCFG_SRAM2WRP_PAGE9        /*!< SRAM2A Write protection page 9  */
104 #define SYSCFG_SRAM2WRP_PAGE10          LL_SYSCFG_SRAM2WRP_PAGE10       /*!< SRAM2A Write protection page 10 */
105 #define SYSCFG_SRAM2WRP_PAGE11          LL_SYSCFG_SRAM2WRP_PAGE11       /*!< SRAM2A Write protection page 11 */
106 #define SYSCFG_SRAM2WRP_PAGE12          LL_SYSCFG_SRAM2WRP_PAGE12       /*!< SRAM2A Write protection page 12 */
107 #define SYSCFG_SRAM2WRP_PAGE13          LL_SYSCFG_SRAM2WRP_PAGE13       /*!< SRAM2A Write protection page 13 */
108 #define SYSCFG_SRAM2WRP_PAGE14          LL_SYSCFG_SRAM2WRP_PAGE14       /*!< SRAM2A Write protection page 14 */
109 #define SYSCFG_SRAM2WRP_PAGE15          LL_SYSCFG_SRAM2WRP_PAGE15       /*!< SRAM2A Write protection page 15 */
110 #define SYSCFG_SRAM2WRP_PAGE16          LL_SYSCFG_SRAM2WRP_PAGE16       /*!< SRAM2A Write protection page 16 */
111 #define SYSCFG_SRAM2WRP_PAGE17          LL_SYSCFG_SRAM2WRP_PAGE17       /*!< SRAM2A Write protection page 17 */
112 #define SYSCFG_SRAM2WRP_PAGE18          LL_SYSCFG_SRAM2WRP_PAGE18       /*!< SRAM2A Write protection page 18 */
113 #define SYSCFG_SRAM2WRP_PAGE19          LL_SYSCFG_SRAM2WRP_PAGE19       /*!< SRAM2A Write protection page 19 */
114 #define SYSCFG_SRAM2WRP_PAGE20          LL_SYSCFG_SRAM2WRP_PAGE20       /*!< SRAM2A Write protection page 20 */
115 #define SYSCFG_SRAM2WRP_PAGE21          LL_SYSCFG_SRAM2WRP_PAGE21       /*!< SRAM2A Write protection page 21 */
116 #define SYSCFG_SRAM2WRP_PAGE22          LL_SYSCFG_SRAM2WRP_PAGE22       /*!< SRAM2A Write protection page 22 */
117 #define SYSCFG_SRAM2WRP_PAGE23          LL_SYSCFG_SRAM2WRP_PAGE23       /*!< SRAM2A Write protection page 23 */
118 #define SYSCFG_SRAM2WRP_PAGE24          LL_SYSCFG_SRAM2WRP_PAGE24       /*!< SRAM2A Write protection page 24 */
119 #define SYSCFG_SRAM2WRP_PAGE25          LL_SYSCFG_SRAM2WRP_PAGE25       /*!< SRAM2A Write protection page 25 */
120 #define SYSCFG_SRAM2WRP_PAGE26          LL_SYSCFG_SRAM2WRP_PAGE26       /*!< SRAM2A Write protection page 26 */
121 #define SYSCFG_SRAM2WRP_PAGE27          LL_SYSCFG_SRAM2WRP_PAGE27       /*!< SRAM2A Write protection page 27 */
122 #define SYSCFG_SRAM2WRP_PAGE28          LL_SYSCFG_SRAM2WRP_PAGE28       /*!< SRAM2A Write protection page 28 */
123 #define SYSCFG_SRAM2WRP_PAGE29          LL_SYSCFG_SRAM2WRP_PAGE29       /*!< SRAM2A Write protection page 29 */
124 #define SYSCFG_SRAM2WRP_PAGE30          LL_SYSCFG_SRAM2WRP_PAGE30       /*!< SRAM2A Write protection page 30 */
125 #define SYSCFG_SRAM2WRP_PAGE31          LL_SYSCFG_SRAM2WRP_PAGE31       /*!< SRAM2A Write protection page 31 */
126 
127 /**
128   * @}
129   */
130 
131 /** @defgroup SYSCFG_SRAM2WRP_32_63 SRAM2 Page Write protection (32 to 63)
132   * @{
133   */
134 #define SYSCFG_SRAM2WRP_PAGE32          LL_SYSCFG_SRAM2WRP_PAGE32       /*!< SRAM2B Write protection page 32 */
135 #define SYSCFG_SRAM2WRP_PAGE33          LL_SYSCFG_SRAM2WRP_PAGE33       /*!< SRAM2B Write protection page 33 */
136 #define SYSCFG_SRAM2WRP_PAGE34          LL_SYSCFG_SRAM2WRP_PAGE34       /*!< SRAM2B Write protection page 34 */
137 #define SYSCFG_SRAM2WRP_PAGE35          LL_SYSCFG_SRAM2WRP_PAGE35       /*!< SRAM2B Write protection page 35 */
138 #if defined(LL_SYSCFG_SRAM2WRP_PAGE36)
139 #define SYSCFG_SRAM2WRP_PAGE36          LL_SYSCFG_SRAM2WRP_PAGE36       /*!< SRAM2B Write protection page 36 */
140 #define SYSCFG_SRAM2WRP_PAGE37          LL_SYSCFG_SRAM2WRP_PAGE37       /*!< SRAM2B Write protection page 37 */
141 #define SYSCFG_SRAM2WRP_PAGE38          LL_SYSCFG_SRAM2WRP_PAGE38       /*!< SRAM2B Write protection page 38 */
142 #define SYSCFG_SRAM2WRP_PAGE39          LL_SYSCFG_SRAM2WRP_PAGE39       /*!< SRAM2B Write protection page 39 */
143 #define SYSCFG_SRAM2WRP_PAGE40          LL_SYSCFG_SRAM2WRP_PAGE40       /*!< SRAM2B Write protection page 40 */
144 #define SYSCFG_SRAM2WRP_PAGE41          LL_SYSCFG_SRAM2WRP_PAGE41       /*!< SRAM2B Write protection page 41 */
145 #define SYSCFG_SRAM2WRP_PAGE42          LL_SYSCFG_SRAM2WRP_PAGE42       /*!< SRAM2B Write protection page 42 */
146 #define SYSCFG_SRAM2WRP_PAGE43          LL_SYSCFG_SRAM2WRP_PAGE43       /*!< SRAM2B Write protection page 43 */
147 #define SYSCFG_SRAM2WRP_PAGE44          LL_SYSCFG_SRAM2WRP_PAGE44       /*!< SRAM2B Write protection page 44 */
148 #define SYSCFG_SRAM2WRP_PAGE45          LL_SYSCFG_SRAM2WRP_PAGE45       /*!< SRAM2B Write protection page 45 */
149 #define SYSCFG_SRAM2WRP_PAGE46          LL_SYSCFG_SRAM2WRP_PAGE46       /*!< SRAM2B Write protection page 46 */
150 #define SYSCFG_SRAM2WRP_PAGE47          LL_SYSCFG_SRAM2WRP_PAGE47       /*!< SRAM2B Write protection page 47 */
151 #define SYSCFG_SRAM2WRP_PAGE48          LL_SYSCFG_SRAM2WRP_PAGE48       /*!< SRAM2B Write protection page 48 */
152 #define SYSCFG_SRAM2WRP_PAGE49          LL_SYSCFG_SRAM2WRP_PAGE49       /*!< SRAM2B Write protection page 49 */
153 #define SYSCFG_SRAM2WRP_PAGE50          LL_SYSCFG_SRAM2WRP_PAGE50       /*!< SRAM2B Write protection page 50 */
154 #define SYSCFG_SRAM2WRP_PAGE51          LL_SYSCFG_SRAM2WRP_PAGE51       /*!< SRAM2B Write protection page 51 */
155 #define SYSCFG_SRAM2WRP_PAGE52          LL_SYSCFG_SRAM2WRP_PAGE52       /*!< SRAM2B Write protection page 52 */
156 #define SYSCFG_SRAM2WRP_PAGE53          LL_SYSCFG_SRAM2WRP_PAGE53       /*!< SRAM2B Write protection page 53 */
157 #define SYSCFG_SRAM2WRP_PAGE54          LL_SYSCFG_SRAM2WRP_PAGE54       /*!< SRAM2B Write protection page 54 */
158 #define SYSCFG_SRAM2WRP_PAGE55          LL_SYSCFG_SRAM2WRP_PAGE55       /*!< SRAM2B Write protection page 55 */
159 #define SYSCFG_SRAM2WRP_PAGE56          LL_SYSCFG_SRAM2WRP_PAGE56       /*!< SRAM2B Write protection page 56 */
160 #define SYSCFG_SRAM2WRP_PAGE57          LL_SYSCFG_SRAM2WRP_PAGE57       /*!< SRAM2B Write protection page 57 */
161 #define SYSCFG_SRAM2WRP_PAGE58          LL_SYSCFG_SRAM2WRP_PAGE58       /*!< SRAM2B Write protection page 58 */
162 #define SYSCFG_SRAM2WRP_PAGE59          LL_SYSCFG_SRAM2WRP_PAGE59       /*!< SRAM2B Write protection page 59 */
163 #define SYSCFG_SRAM2WRP_PAGE60          LL_SYSCFG_SRAM2WRP_PAGE60       /*!< SRAM2B Write protection page 60 */
164 #define SYSCFG_SRAM2WRP_PAGE61          LL_SYSCFG_SRAM2WRP_PAGE61       /*!< SRAM2B Write protection page 61 */
165 #define SYSCFG_SRAM2WRP_PAGE62          LL_SYSCFG_SRAM2WRP_PAGE62       /*!< SRAM2B Write protection page 62 */
166 #define SYSCFG_SRAM2WRP_PAGE63          LL_SYSCFG_SRAM2WRP_PAGE63       /*!< SRAM2B Write protection page 63 */
167 #endif /* LL_SYSCFG_SRAM2WRP_PAGE36 */
168 
169 /**
170   * @}
171   */
172 
173 #if defined(VREFBUF)
174 /** @defgroup SYSCFG_VREFBUF_VoltageScale VREFBUF Voltage Scale
175   * @{
176   */
177 #define SYSCFG_VREFBUF_VOLTAGE_SCALE0   LL_VREFBUF_VOLTAGE_SCALE0       /*!< Voltage reference scale 0 (VREF_OUT1) */
178 #define SYSCFG_VREFBUF_VOLTAGE_SCALE1   LL_VREFBUF_VOLTAGE_SCALE1       /*!< Voltage reference scale 1 (VREF_OUT2) */
179 
180 /**
181   * @}
182   */
183 
184 /** @defgroup SYSCFG_VREFBUF_HighImpedance VREFBUF High Impedance
185   * @{
186   */
187 #define SYSCFG_VREFBUF_HIGH_IMPEDANCE_DISABLE   0x00000000U             /*!< VREF_plus pin is internally connected to Voltage reference buffer output */
188 #define SYSCFG_VREFBUF_HIGH_IMPEDANCE_ENABLE    VREFBUF_CSR_HIZ         /*!< VREF_plus pin is high impedance */
189 
190 /**
191   * @}
192   */
193 #endif /* VREFBUF */
194 
195 /** @defgroup SYSCFG_SRAM_flags_definition SRAM Flags
196   * @{
197   */
198 
199 #define SYSCFG_FLAG_SRAM2_PE            SYSCFG_CFGR2_SPF                /*!< SRAM2 parity error */
200 #define SYSCFG_FLAG_SRAM2_BUSY          SYSCFG_SCSR_SRAM2BSY            /*!< SRAM2 busy by erase operation */
201 
202 /**
203   * @}
204   */
205 
206 /** @defgroup SYSCFG_FastModePlus_GPIO Fast-mode Plus on GPIO
207   * @{
208   */
209 
210 /** @brief  Fast-mode Plus driving capability on a specific GPIO
211   */
212 #define SYSCFG_FASTMODEPLUS_PB6         SYSCFG_CFGR1_I2C_PB6_FMP        /*!< Enable Fast-mode Plus on PB6 */
213 #define SYSCFG_FASTMODEPLUS_PB7         SYSCFG_CFGR1_I2C_PB7_FMP        /*!< Enable Fast-mode Plus on PB7 */
214 #define SYSCFG_FASTMODEPLUS_PB8         SYSCFG_CFGR1_I2C_PB8_FMP        /*!< Enable Fast-mode Plus on PB8 */
215 #define SYSCFG_FASTMODEPLUS_PB9         SYSCFG_CFGR1_I2C_PB9_FMP        /*!< Enable Fast-mode Plus on PB9 */
216 
217 /**
218   * @}
219   */
220 
221 /** @defgroup Secure_IP_Write_Access Secure IP Write Access
222   * @{
223   */
224 #if defined(LL_SYSCFG_SECURE_ACCESS_AES1)
225 #define HAL_SYSCFG_SECURE_ACCESS_AES1   LL_SYSCFG_SECURE_ACCESS_AES1    /*!< Enabling the security access of Advanced Encryption Standard 1 KEY[7:0] */
226 #endif /* LL_SYSCFG_SECURE_ACCESS_AES1 */
227 #define HAL_SYSCFG_SECURE_ACCESS_AES2   LL_SYSCFG_SECURE_ACCESS_AES2    /*!< Enabling the security access of Advanced Encryption Standard 2          */
228 #define HAL_SYSCFG_SECURE_ACCESS_PKA    LL_SYSCFG_SECURE_ACCESS_PKA     /*!< Enabling the security access of Public Key Accelerator                  */
229 #define HAL_SYSCFG_SECURE_ACCESS_RNG    LL_SYSCFG_SECURE_ACCESS_RNG     /*!< Enabling the security access of Random Number Generator                 */
230 /**
231   * @}
232   */
233 
234 /**
235   * @}
236   */
237 
238 /**
239   * @}
240   */
241 
242 /* Exported macros -----------------------------------------------------------*/
243 /** @defgroup HAL_Exported_Macros HAL Exported Macros
244   * @{
245   */
246 
247 /** @defgroup DBGMCU_Exported_Macros DBGMCU Exported Macros
248   * @{
249   */
250 
251 /** @brief  Freeze and Unfreeze Peripherals in Debug mode
252   */
253 
254 /** @defgroup DBGMCU_APBx_GRPx_STOP_IP DBGMCU CPU1 APBx GRPx STOP IP
255   * @{
256   */
257 #if defined(LL_DBGMCU_APB1_GRP1_TIM2_STOP)
258 #define __HAL_DBGMCU_FREEZE_TIM2()              LL_DBGMCU_APB1_GRP1_FreezePeriph(LL_DBGMCU_APB1_GRP1_TIM2_STOP)
259 #define __HAL_DBGMCU_UNFREEZE_TIM2()            LL_DBGMCU_APB1_GRP1_UnFreezePeriph(LL_DBGMCU_APB1_GRP1_TIM2_STOP)
260 #endif /* LL_DBGMCU_APB1_GRP1_TIM2_STOP */
261 
262 #if defined(LL_DBGMCU_APB1_GRP1_RTC_STOP)
263 #define __HAL_DBGMCU_FREEZE_RTC()               LL_DBGMCU_APB1_GRP1_FreezePeriph(LL_DBGMCU_APB1_GRP1_RTC_STOP)
264 #define __HAL_DBGMCU_UNFREEZE_RTC()             LL_DBGMCU_APB1_GRP1_UnFreezePeriph(LL_DBGMCU_APB1_GRP1_RTC_STOP)
265 #endif /* LL_DBGMCU_APB1_GRP1_RTC_STOP */
266 
267 #if defined(LL_DBGMCU_APB1_GRP1_WWDG_STOP)
268 #define __HAL_DBGMCU_FREEZE_WWDG()              LL_DBGMCU_APB1_GRP1_FreezePeriph(LL_DBGMCU_APB1_GRP1_WWDG_STOP)
269 #define __HAL_DBGMCU_UNFREEZE_WWDG()            LL_DBGMCU_APB1_GRP1_UnFreezePeriph(LL_DBGMCU_APB1_GRP1_WWDG_STOP)
270 #endif /* LL_DBGMCU_APB1_GRP1_WWDG_STOP */
271 
272 #if defined(LL_DBGMCU_APB1_GRP1_IWDG_STOP)
273 #define __HAL_DBGMCU_FREEZE_IWDG()              LL_DBGMCU_APB1_GRP1_FreezePeriph(LL_DBGMCU_APB1_GRP1_IWDG_STOP)
274 #define __HAL_DBGMCU_UNFREEZE_IWDG()            LL_DBGMCU_APB1_GRP1_UnFreezePeriph(LL_DBGMCU_APB1_GRP1_IWDG_STOP)
275 #endif /* LL_DBGMCU_APB1_GRP1_IWDG_STOP */
276 
277 #if defined(LL_DBGMCU_APB1_GRP1_I2C1_STOP)
278 #define __HAL_DBGMCU_FREEZE_I2C1_TIMEOUT()      LL_DBGMCU_APB1_GRP1_FreezePeriph(LL_DBGMCU_APB1_GRP1_I2C1_STOP)
279 #define __HAL_DBGMCU_UNFREEZE_I2C1_TIMEOUT()    LL_DBGMCU_APB1_GRP1_UnFreezePeriph(LL_DBGMCU_APB1_GRP1_I2C1_STOP)
280 #endif /* LL_DBGMCU_APB1_GRP1_I2C1_STOP */
281 
282 #if defined(LL_DBGMCU_APB1_GRP1_I2C3_STOP)
283 #define __HAL_DBGMCU_FREEZE_I2C3_TIMEOUT()      LL_DBGMCU_APB1_GRP1_FreezePeriph(LL_DBGMCU_APB1_GRP1_I2C3_STOP)
284 #define __HAL_DBGMCU_UNFREEZE_I2C3_TIMEOUT()    LL_DBGMCU_APB1_GRP1_UnFreezePeriph(LL_DBGMCU_APB1_GRP1_I2C3_STOP)
285 #endif /* LL_DBGMCU_APB1_GRP1_I2C3_STOP */
286 
287 #if defined(LL_DBGMCU_APB1_GRP1_LPTIM1_STOP)
288 #define __HAL_DBGMCU_FREEZE_LPTIM1()            LL_DBGMCU_APB1_GRP1_FreezePeriph(LL_DBGMCU_APB1_GRP1_LPTIM1_STOP)
289 #define __HAL_DBGMCU_UNFREEZE_LPTIM1()          LL_DBGMCU_APB1_GRP1_UnFreezePeriph(LL_DBGMCU_APB1_GRP1_LPTIM1_STOP)
290 #endif /* LL_DBGMCU_APB1_GRP1_LPTIM1_STOP */
291 
292 #if defined(LL_DBGMCU_APB1_GRP2_LPTIM2_STOP)
293 #define __HAL_DBGMCU_FREEZE_LPTIM2()            LL_DBGMCU_APB1_GRP2_FreezePeriph(LL_DBGMCU_APB1_GRP2_LPTIM2_STOP)
294 #define __HAL_DBGMCU_UNFREEZE_LPTIM2()          LL_DBGMCU_APB1_GRP2_UnFreezePeriph(LL_DBGMCU_APB1_GRP2_LPTIM2_STOP)
295 #endif /* LL_DBGMCU_APB1_GRP2_LPTIM2_STOP */
296 
297 #if defined(LL_DBGMCU_APB2_GRP1_TIM1_STOP)
298 #define __HAL_DBGMCU_FREEZE_TIM1()              LL_DBGMCU_APB2_GRP1_FreezePeriph(LL_DBGMCU_APB2_GRP1_TIM1_STOP)
299 #define __HAL_DBGMCU_UNFREEZE_TIM1()            LL_DBGMCU_APB2_GRP1_UnFreezePeriph(LL_DBGMCU_APB2_GRP1_TIM1_STOP)
300 #endif /* LL_DBGMCU_APB2_GRP1_TIM1_STOP */
301 
302 #if defined(LL_DBGMCU_APB2_GRP1_TIM16_STOP)
303 #define __HAL_DBGMCU_FREEZE_TIM16()             LL_DBGMCU_APB2_GRP1_FreezePeriph(LL_DBGMCU_APB2_GRP1_TIM16_STOP)
304 #define __HAL_DBGMCU_UNFREEZE_TIM16()           LL_DBGMCU_APB2_GRP1_UnFreezePeriph(LL_DBGMCU_APB2_GRP1_TIM16_STOP)
305 #endif /* LL_DBGMCU_APB2_GRP1_TIM16_STOP */
306 
307 #if defined(LL_DBGMCU_APB2_GRP1_TIM17_STOP)
308 #define __HAL_DBGMCU_FREEZE_TIM17()             LL_DBGMCU_APB2_GRP1_FreezePeriph(LL_DBGMCU_APB2_GRP1_TIM17_STOP)
309 #define __HAL_DBGMCU_UNFREEZE_TIM17()           LL_DBGMCU_APB2_GRP1_UnFreezePeriph(LL_DBGMCU_APB2_GRP1_TIM17_STOP)
310 #endif /* LL_DBGMCU_APB2_GRP1_TIM17_STOP */
311 
312 /**
313   * @}
314   */
315 
316 /** @defgroup DBGMCU_C2_APBx_GRPx_STOP_IP DBGMCU CPU2 APBx GRPx STOP IP
317   * @{
318   */
319 #if defined(LL_C2_DBGMCU_APB1_GRP1_TIM2_STOP)
320 #define __HAL_C2_DBGMCU_FREEZE_TIM2()           LL_C2_DBGMCU_APB1_GRP1_FreezePeriph(LL_C2_DBGMCU_APB1_GRP1_TIM2_STOP)
321 #define __HAL_C2_DBGMCU_UNFREEZE_TIM2()         LL_C2_DBGMCU_APB1_GRP1_UnFreezePeriph(LL_C2_DBGMCU_APB1_GRP1_TIM2_STOP)
322 #endif /* LL_C2_DBGMCU_APB1_GRP1_TIM2_STOP */
323 
324 #if defined(LL_C2_DBGMCU_APB1_GRP1_RTC_STOP)
325 #define __HAL_C2_DBGMCU_FREEZE_RTC()            LL_C2_DBGMCU_APB1_GRP1_FreezePeriph(LL_C2_DBGMCU_APB1_GRP1_RTC_STOP)
326 #define __HAL_C2_DBGMCU_UNFREEZE_RTC()          LL_C2_DBGMCU_APB1_GRP1_UnFreezePeriph(LL_C2_DBGMCU_APB1_GRP1_RTC_STOP)
327 #endif /* LL_C2_DBGMCU_APB1_GRP1_RTC_STOP */
328 
329 #if defined(LL_C2_DBGMCU_APB1_GRP1_IWDG_STOP)
330 #define __HAL_C2_DBGMCU_FREEZE_IWDG()           LL_C2_DBGMCU_APB1_GRP1_FreezePeriph(LL_C2_DBGMCU_APB1_GRP1_IWDG_STOP)
331 #define __HAL_C2_DBGMCU_UNFREEZE_IWDG()         LL_C2_DBGMCU_APB1_GRP1_UnFreezePeriph(LL_C2_DBGMCU_APB1_GRP1_IWDG_STOP)
332 #endif /* LL_C2_DBGMCU_APB1_GRP1_IWDG_STOP */
333 
334 #if defined(LL_C2_DBGMCU_APB1_GRP1_I2C1_STOP)
335 #define __HAL_C2_DBGMCU_FREEZE_I2C1_TIMEOUT()   LL_C2_DBGMCU_APB1_GRP1_FreezePeriph(LL_C2_DBGMCU_APB1_GRP1_I2C1_STOP)
336 #define __HAL_C2_DBGMCU_UNFREEZE_I2C1_TIMEOUT() LL_C2_DBGMCU_APB1_GRP1_UnFreezePeriph(LL_C2_DBGMCU_APB1_GRP1_I2C1_STOP)
337 #endif /* LL_C2_DBGMCU_APB1_GRP1_I2C1_STOP */
338 
339 #if defined(LL_C2_DBGMCU_APB1_GRP1_I2C3_STOP)
340 #define __HAL_C2_DBGMCU_FREEZE_I2C3_TIMEOUT()   LL_C2_DBGMCU_APB1_GRP1_FreezePeriph(LL_C2_DBGMCU_APB1_GRP1_I2C3_STOP)
341 #define __HAL_C2_DBGMCU_UNFREEZE_I2C3_TIMEOUT() LL_C2_DBGMCU_APB1_GRP1_UnFreezePeriph(LL_C2_DBGMCU_APB1_GRP1_I2C3_STOP)
342 #endif /* LL_C2_DBGMCU_APB1_GRP1_I2C3_STOP */
343 
344 #if defined(LL_C2_DBGMCU_APB1_GRP1_LPTIM1_STOP)
345 #define __HAL_C2_DBGMCU_FREEZE_LPTIM1()         LL_C2_DBGMCU_APB1_GRP1_FreezePeriph(LL_C2_DBGMCU_APB1_GRP1_LPTIM1_STOP)
346 #define __HAL_C2_DBGMCU_UNFREEZE_LPTIM1()       LL_C2_DBGMCU_APB1_GRP1_UnFreezePeriph(LL_C2_DBGMCU_APB1_GRP1_LPTIM1_STOP)
347 #endif /* LL_C2_DBGMCU_APB1_GRP1_LPTIM1_STOP */
348 
349 #if defined(LL_C2_DBGMCU_APB1_GRP2_LPTIM2_STOP)
350 #define __HAL_C2_DBGMCU_FREEZE_LPTIM2()         LL_C2_DBGMCU_APB1_GRP2_FreezePeriph(LL_C2_DBGMCU_APB1_GRP2_LPTIM2_STOP)
351 #define __HAL_C2_DBGMCU_UNFREEZE_LPTIM2()       LL_C2_DBGMCU_APB1_GRP2_UnFreezePeriph(LL_C2_DBGMCU_APB1_GRP2_LPTIM2_STOP)
352 #endif /* LL_C2_DBGMCU_APB1_GRP2_LPTIM2_STOP */
353 
354 #if defined(LL_C2_DBGMCU_APB2_GRP1_TIM1_STOP)
355 #define __HAL_C2_DBGMCU_FREEZE_TIM1()           LL_C2_DBGMCU_APB2_GRP1_FreezePeriph(LL_C2_DBGMCU_APB2_GRP1_TIM1_STOP)
356 #define __HAL_C2_DBGMCU_UNFREEZE_TIM1()         LL_C2_DBGMCU_APB2_GRP1_UnFreezePeriph(LL_C2_DBGMCU_APB2_GRP1_TIM1_STOP)
357 #endif /* LL_C2_DBGMCU_APB2_GRP1_TIM1_STOP */
358 
359 #if defined(LL_C2_DBGMCU_APB2_GRP1_TIM16_STOP)
360 #define __HAL_C2_DBGMCU_FREEZE_TIM16()          LL_C2_DBGMCU_APB2_GRP1_FreezePeriph(LL_C2_DBGMCU_APB2_GRP1_TIM16_STOP)
361 #define __HAL_C2_DBGMCU_UNFREEZE_TIM16()        LL_C2_DBGMCU_APB2_GRP1_UnFreezePeriph(LL_C2_DBGMCU_APB2_GRP1_TIM16_STOP)
362 #endif /* LL_C2_DBGMCU_APB2_GRP1_TIM16_STOP */
363 
364 #if defined(LL_C2_DBGMCU_APB2_GRP1_TIM17_STOP)
365 #define __HAL_C2_DBGMCU_FREEZE_TIM17()          LL_C2_DBGMCU_APB2_GRP1_FreezePeriph(LL_C2_DBGMCU_APB2_GRP1_TIM17_STOP)
366 #define __HAL_C2_DBGMCU_UNFREEZE_TIM17()        LL_C2_DBGMCU_APB2_GRP1_UnFreezePeriph(LL_C2_DBGMCU_APB2_GRP1_TIM17_STOP)
367 #endif /* LL_C2_DBGMCU_APB2_GRP1_TIM17_STOP */
368 
369 /**
370   * @}
371   */
372 
373 /**
374   * @}
375   */
376 
377 /** @defgroup SYSCFG_Exported_Macros SYSCFG Exported Macros
378   * @{
379   */
380 
381 /** @brief  Main Flash memory mapped at 0x00000000
382   */
383 #define __HAL_SYSCFG_REMAPMEMORY_FLASH()        LL_SYSCFG_SetRemapMemory(LL_SYSCFG_REMAP_FLASH)
384 
385 /** @brief  System Flash memory mapped at 0x00000000
386   */
387 #define __HAL_SYSCFG_REMAPMEMORY_SYSTEMFLASH()  LL_SYSCFG_SetRemapMemory(LL_SYSCFG_REMAP_SYSTEMFLASH)
388 
389 /** @brief  Embedded SRAM mapped at 0x00000000
390   */
391 #define __HAL_SYSCFG_REMAPMEMORY_SRAM()         LL_SYSCFG_SetRemapMemory(LL_SYSCFG_REMAP_SRAM)
392 
393 #if defined(LL_SYSCFG_REMAP_QUADSPI)
394 /** @brief  QUADSPI mapped at 0x00000000.
395   */
396 #define __HAL_SYSCFG_REMAPMEMORY_QUADSPI()      LL_SYSCFG_SetRemapMemory(LL_SYSCFG_REMAP_QUADSPI)
397 #endif /* LL_SYSCFG_REMAP_QUADSPI */
398 
399 /**
400   * @brief  Return the boot mode as configured by user.
401   * @retval The boot mode as configured by user. The returned value can be one
402   *         of the following values:
403   *           @arg @ref SYSCFG_BOOT_MAINFLASH
404   *           @arg @ref SYSCFG_BOOT_SYSTEMFLASH
405   *           @arg @ref SYSCFG_BOOT_SRAM
406 #if defined(LL_SYSCFG_REMAP_QUADSPI)
407   *           @arg @ref SYSCFG_BOOT_QUADSPI
408 #endif
409   */
410 #define __HAL_SYSCFG_GET_BOOT_MODE()            LL_SYSCFG_GetRemapMemory()
411 
412 /** @brief  SRAM2 page 0 to 31 write protection enable macro
413   * @param  __SRAM2WRP__  This parameter can be a combination of values of @ref SYSCFG_SRAM2WRP
414   * @note   Write protection can only be disabled by a system reset
415   */
416 /* Legacy define */
417 #define __HAL_SYSCFG_SRAM2_WRP_1_31_ENABLE      __HAL_SYSCFG_SRAM2_WRP_0_31_ENABLE
418 #define __HAL_SYSCFG_SRAM2_WRP_0_31_ENABLE(__SRAM2WRP__)   \
419   do {                                                     \
420     assert_param(IS_SYSCFG_SRAM2WRP_PAGE((__SRAM2WRP__))); \
421     LL_SYSCFG_EnableSRAM2PageWRP_0_31(__SRAM2WRP__);       \
422   } while(0)
423 
424 /** @brief  SRAM2 page 32 to 63 write protection enable macro
425   * @param  __SRAM2WRP__  This parameter can be a combination of values of @ref SYSCFG_SRAM2WRP_32_63
426   * @note   Write protection can only be disabled by a system reset
427   */
428 #define __HAL_SYSCFG_SRAM2_WRP_32_63_ENABLE(__SRAM2WRP__)   \
429   do {                                                      \
430     assert_param(IS_SYSCFG_SRAM2WRP2_PAGE((__SRAM2WRP__))); \
431     LL_SYSCFG_EnableSRAM2PageWRP_32_63(__SRAM2WRP__);       \
432   } while(0)
433 
434 /** @brief  SRAM2 page write protection unlock prior to erase
435   * @note   Writing a wrong key reactivates the write protection
436   */
437 #define __HAL_SYSCFG_SRAM2_WRP_UNLOCK()         LL_SYSCFG_UnlockSRAM2WRP()
438 
439 /** @brief  SRAM2 erase
440   * @note   __SYSCFG_GET_FLAG(SYSCFG_FLAG_SRAM2_BUSY) may be used to check end of erase
441   */
442 #define __HAL_SYSCFG_SRAM2_ERASE()              LL_SYSCFG_EnableSRAM2Erase()
443 
444 /** @brief  Floating Point Unit interrupt enable/disable macros
445   * @param __INTERRUPT__  This parameter can be a value of @ref SYSCFG_FPU_Interrupts
446   */
447 #define __HAL_SYSCFG_FPU_INTERRUPT_ENABLE(__INTERRUPT__)    \
448   do {                                                      \
449     assert_param(IS_SYSCFG_FPU_INTERRUPT((__INTERRUPT__))); \
450     SET_BIT(SYSCFG->CFGR1, (__INTERRUPT__));                \
451   } while(0)
452 
453 #define __HAL_SYSCFG_FPU_INTERRUPT_DISABLE(__INTERRUPT__)   \
454   do {                                                      \
455     assert_param(IS_SYSCFG_FPU_INTERRUPT((__INTERRUPT__))); \
456     CLEAR_BIT(SYSCFG->CFGR1, (__INTERRUPT__));              \
457   } while(0)
458 
459 /** @brief  SYSCFG Break ECC lock.
460   *         Enable and lock the connection of Flash ECC error connection to TIM1/16/17 Break input.
461   * @note   The selected configuration is locked and can be unlocked only by system reset.
462   */
463 #define __HAL_SYSCFG_BREAK_ECC_LOCK()           LL_SYSCFG_SetTIMBreakInputs(LL_SYSCFG_TIMBREAK_ECC)
464 
465 /** @brief  SYSCFG Break Cortex-M4 Lockup lock.
466   *         Enable and lock the connection of Cortex-M4 LOCKUP (Hardfault) output to TIM1/16/17 Break input.
467   * @note   The selected configuration is locked and can be unlocked only by system reset.
468   */
469 #define __HAL_SYSCFG_BREAK_LOCKUP_LOCK()        LL_SYSCFG_SetTIMBreakInputs(LL_SYSCFG_TIMBREAK_LOCKUP)
470 
471 /** @brief  SYSCFG Break PVD lock.
472   *         Enable and lock the PVD connection to Timer1/16/17 Break input, as well as the PVDE and PLS[2:0]
473   *         in the PWR_CR2 register.
474   * @note   The selected configuration is locked and can be unlocked only by system reset.
475   */
476 #define __HAL_SYSCFG_BREAK_PVD_LOCK()           LL_SYSCFG_SetTIMBreakInputs(LL_SYSCFG_TIMBREAK_PVD)
477 
478 /** @brief  SYSCFG Break SRAM2 parity lock.
479   *         Enable and lock the SRAM2 parity error signal connection to TIM1/16/17 Break input.
480   * @note   The selected configuration is locked and can be unlocked by system reset.
481   */
482 #define __HAL_SYSCFG_BREAK_SRAM2PARITY_LOCK()   LL_SYSCFG_SetTIMBreakInputs(LL_SYSCFG_TIMBREAK_SRAM2_PARITY)
483 
484 /** @brief  Check SYSCFG flag is set or not.
485   * @param  __FLAG__  specifies the flag to check.
486   *         This parameter can be one of the following values:
487   *            @arg @ref SYSCFG_FLAG_SRAM2_PE   SRAM2 Parity Error Flag
488   *            @arg @ref SYSCFG_FLAG_SRAM2_BUSY SRAM2 Erase Ongoing
489   * @retval The new state of __FLAG__ (TRUE or FALSE).
490   */
491 #define __HAL_SYSCFG_GET_FLAG(__FLAG__)      ((((((__FLAG__) == SYSCFG_SCSR_SRAM2BSY)? SYSCFG->SCSR : SYSCFG->CFGR2) & \
492                                                 (__FLAG__))!= 0U) ? 1U : 0U)
493 
494 /** @brief  Set the SPF bit to clear the SRAM Parity Error Flag.
495   */
496 #define __HAL_SYSCFG_CLEAR_FLAG()               LL_SYSCFG_ClearFlag_SP()
497 
498 /** @brief  Fast mode Plus driving capability enable/disable macros
499   * @param __FASTMODEPLUS__ This parameter can be a value of @ref SYSCFG_FastModePlus_GPIO
500   */
501 #define __HAL_SYSCFG_FASTMODEPLUS_ENABLE(__FASTMODEPLUS__)    \
502   do {                                                        \
503     assert_param(IS_SYSCFG_FASTMODEPLUS((__FASTMODEPLUS__))); \
504     LL_SYSCFG_EnableFastModePlus(__FASTMODEPLUS__);           \
505   } while(0)
506 
507 #define __HAL_SYSCFG_FASTMODEPLUS_DISABLE(__FASTMODEPLUS__)   \
508   do {                                                        \
509     assert_param(IS_SYSCFG_FASTMODEPLUS((__FASTMODEPLUS__))); \
510     LL_SYSCFG_DisableFastModePlus(__FASTMODEPLUS__);          \
511   } while(0)
512 
513 /**
514   * @}
515   */
516 
517 /**
518   * @}
519   */
520 
521 /* Private macros ------------------------------------------------------------*/
522 /** @defgroup HAL_Private_Macros HAL Private Macros
523   * @{
524   */
525 
526 /** @defgroup SYSCFG_Private_Macros SYSCFG Private Macros
527   * @{
528   */
529 
530 #define IS_SYSCFG_FPU_INTERRUPT(__INTERRUPT__)        ((((__INTERRUPT__) & SYSCFG_IT_FPU_IOC) == SYSCFG_IT_FPU_IOC) || \
531                                                        (((__INTERRUPT__) & SYSCFG_IT_FPU_DZC) == SYSCFG_IT_FPU_DZC) || \
532                                                        (((__INTERRUPT__) & SYSCFG_IT_FPU_UFC) == SYSCFG_IT_FPU_UFC) || \
533                                                        (((__INTERRUPT__) & SYSCFG_IT_FPU_OFC) == SYSCFG_IT_FPU_OFC) || \
534                                                        (((__INTERRUPT__) & SYSCFG_IT_FPU_IDC) == SYSCFG_IT_FPU_IDC) || \
535                                                        (((__INTERRUPT__) & SYSCFG_IT_FPU_IXC) == SYSCFG_IT_FPU_IXC))
536 
537 #if defined(STM32WB15xx) || defined(STM32WB10xx)
538 #define IS_SYSCFG_SRAM2WRP_PAGE(__PAGE__)               (((__PAGE__) > 0U) && ((__PAGE__) <= 0xFFFFFFFFU))
539 #define IS_SYSCFG_SRAM2WRP2_PAGE(__PAGE__)              (((__PAGE__) > 0U) && ((__PAGE__) <= 0x0000000FU))
540 #else
541 #define IS_SYSCFG_SRAM2WRP_PAGE(__PAGE__)               (((__PAGE__) > 0U) && ((__PAGE__) <= 0xFFFFFFFFU))
542 #define IS_SYSCFG_SRAM2WRP2_PAGE(__PAGE__)              IS_SYSCFG_SRAM2WRP_PAGE(__PAGE__)
543 #endif /* STM32WB15xx || STM32WB10xx */
544 
545 #if defined(VREFBUF)
546 #define IS_SYSCFG_VREFBUF_VOLTAGE_SCALE(__SCALE__)      (((__SCALE__) == SYSCFG_VREFBUF_VOLTAGE_SCALE0) || \
547                                                          ((__SCALE__) == SYSCFG_VREFBUF_VOLTAGE_SCALE1))
548 
549 #define IS_SYSCFG_VREFBUF_HIGH_IMPEDANCE(__VALUE__)     (((__VALUE__) == SYSCFG_VREFBUF_HIGH_IMPEDANCE_DISABLE) || \
550                                                          ((__VALUE__) == SYSCFG_VREFBUF_HIGH_IMPEDANCE_ENABLE))
551 
552 #define IS_SYSCFG_VREFBUF_TRIMMING(__VALUE__)           (((__VALUE__) > 0U) && ((__VALUE__) <= VREFBUF_CCR_TRIM))
553 #endif /* VREFBUF */
554 
555 #define IS_SYSCFG_FASTMODEPLUS(__PIN__)                 ((((__PIN__) & SYSCFG_FASTMODEPLUS_PB6) == SYSCFG_FASTMODEPLUS_PB6)  || \
556                                                          (((__PIN__) & SYSCFG_FASTMODEPLUS_PB7) == SYSCFG_FASTMODEPLUS_PB7)  || \
557                                                          (((__PIN__) & SYSCFG_FASTMODEPLUS_PB8) == SYSCFG_FASTMODEPLUS_PB8)  || \
558                                                          (((__PIN__) & SYSCFG_FASTMODEPLUS_PB9) == SYSCFG_FASTMODEPLUS_PB9))
559 
560 #if defined(LL_SYSCFG_SECURE_ACCESS_AES1)
561 #define IS_SYSCFG_SECURITY_ACCESS(__VALUE__)            ((((__VALUE__) & HAL_SYSCFG_SECURE_ACCESS_AES1) == HAL_SYSCFG_SECURE_ACCESS_AES1) || \
562                                                          (((__VALUE__) & HAL_SYSCFG_SECURE_ACCESS_AES2) == HAL_SYSCFG_SECURE_ACCESS_AES2) || \
563                                                          (((__VALUE__) & HAL_SYSCFG_SECURE_ACCESS_PKA)  == HAL_SYSCFG_SECURE_ACCESS_PKA)  || \
564                                                          (((__VALUE__) & HAL_SYSCFG_SECURE_ACCESS_RNG)  == HAL_SYSCFG_SECURE_ACCESS_RNG))
565 #else
566 #define IS_SYSCFG_SECURITY_ACCESS(__VALUE__)            ((((__VALUE__) & HAL_SYSCFG_SECURE_ACCESS_AES2) == HAL_SYSCFG_SECURE_ACCESS_AES2) || \
567                                                          (((__VALUE__) & HAL_SYSCFG_SECURE_ACCESS_PKA)  == HAL_SYSCFG_SECURE_ACCESS_PKA)  || \
568                                                          (((__VALUE__) & HAL_SYSCFG_SECURE_ACCESS_RNG)  == HAL_SYSCFG_SECURE_ACCESS_RNG))
569 #endif /* LL_SYSCFG_SECURE_ACCESS_AES1 */
570 
571 /**
572   * @}
573   */
574 
575 /**
576   * @}
577   */
578 
579 /** @defgroup HAL_Private_Macros HAL Private Macros
580   * @{
581   */
582 #define IS_TICKFREQ(FREQ) (((FREQ) == HAL_TICK_FREQ_10HZ)  || \
583                            ((FREQ) == HAL_TICK_FREQ_100HZ) || \
584                            ((FREQ) == HAL_TICK_FREQ_1KHZ))
585 /**
586   * @}
587   */
588 
589 
590 /* Exported functions --------------------------------------------------------*/
591 
592 /** @defgroup HAL_Exported_Functions HAL Exported Functions
593   * @{
594   */
595 
596 /** @defgroup HAL_Exported_Functions_Group1 HAL Initialization and Configuration functions
597   * @{
598   */
599 
600 /* Initialization and Configuration functions  ******************************/
601 HAL_StatusTypeDef HAL_Init(void);
602 HAL_StatusTypeDef HAL_DeInit(void);
603 void HAL_MspInit(void);
604 void HAL_MspDeInit(void);
605 
606 HAL_StatusTypeDef HAL_InitTick(uint32_t TickPriority);
607 
608 /**
609   * @}
610   */
611 
612 /** @defgroup HAL_Exported_Functions_Group2 HAL Control functions
613   * @{
614   */
615 
616 /* Peripheral Control functions  ************************************************/
617 void HAL_IncTick(void);
618 void HAL_Delay(uint32_t Delay);
619 uint32_t HAL_GetTick(void);
620 uint32_t HAL_GetTickPrio(void);
621 HAL_StatusTypeDef HAL_SetTickFreq(HAL_TickFreqTypeDef Freq);
622 HAL_TickFreqTypeDef HAL_GetTickFreq(void);
623 void HAL_SuspendTick(void);
624 void HAL_ResumeTick(void);
625 uint32_t HAL_GetHalVersion(void);
626 uint32_t HAL_GetREVID(void);
627 uint32_t HAL_GetDEVID(void);
628 uint32_t HAL_GetUIDw0(void);
629 uint32_t HAL_GetUIDw1(void);
630 uint32_t HAL_GetUIDw2(void);
631 
632 /**
633   * @}
634   */
635 
636 /** @defgroup HAL_Exported_Functions_Group3 HAL Debug functions
637   * @{
638   */
639 
640 /* DBGMCU Peripheral Control functions  *****************************************/
641 void HAL_DBGMCU_EnableDBGSleepMode(void);
642 void HAL_DBGMCU_DisableDBGSleepMode(void);
643 void HAL_DBGMCU_EnableDBGStopMode(void);
644 void HAL_DBGMCU_DisableDBGStopMode(void);
645 void HAL_DBGMCU_EnableDBGStandbyMode(void);
646 void HAL_DBGMCU_DisableDBGStandbyMode(void);
647 /**
648   * @}
649   */
650 
651 /* Exported variables ---------------------------------------------------------*/
652 /** @addtogroup HAL_Exported_Variables
653   * @{
654   */
655 extern __IO uint32_t uwTick;
656 extern uint32_t uwTickPrio;
657 extern HAL_TickFreqTypeDef uwTickFreq;
658 /**
659   * @}
660   */
661 
662 /** @addtogroup HAL_Exported_Functions_Group4 HAL System Configuration functions
663   * @{
664   */
665 
666 /* SYSCFG Control functions  ****************************************************/
667 void HAL_SYSCFG_SRAM2Erase(void);
668 void HAL_SYSCFG_DisableSRAMFetch(void);
669 uint32_t HAL_SYSCFG_IsEnabledSRAMFetch(void);
670 
671 #if defined(VREFBUF)
672 void HAL_SYSCFG_VREFBUF_VoltageScalingConfig(uint32_t VoltageScaling);
673 void HAL_SYSCFG_VREFBUF_HighImpedanceConfig(uint32_t Mode);
674 void HAL_SYSCFG_VREFBUF_TrimmingConfig(uint32_t TrimmingValue);
675 HAL_StatusTypeDef HAL_SYSCFG_EnableVREFBUF(void);
676 void HAL_SYSCFG_DisableVREFBUF(void);
677 #endif /* VREFBUF */
678 
679 void HAL_SYSCFG_EnableIOBooster(void);
680 void HAL_SYSCFG_DisableIOBooster(void);
681 #if defined(SYSCFG_CFGR1_ANASWVDD)
682 void HAL_SYSCFG_EnableIOVdd(void);
683 void HAL_SYSCFG_DisableIOVdd(void);
684 #endif /* SYSCFG_CFGR1_ANASWVDD */
685 
686 void HAL_SYSCFG_EnableSecurityAccess(uint32_t SecurityAccess);
687 void HAL_SYSCFG_DisableSecurityAccess(uint32_t SecurityAccess);
688 uint32_t HAL_SYSCFG_IsEnabledSecurityAccess(uint32_t SecurityAccess);
689 
690 /**
691   * @}
692   */
693 
694 /**
695   * @}
696   */
697 
698 /**
699   * @}
700   */
701 
702 /**
703   * @}
704   */
705 
706 #ifdef __cplusplus
707 }
708 #endif
709 
710 #endif /* STM32WBxx_HAL_H */
711