1 /**
2   ******************************************************************************
3   * @file    stm32c0xx_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) 2022 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 STM32C0xx_HAL_H
22 #define STM32C0xx_HAL_H
23 
24 #ifdef __cplusplus
25 extern "C" {
26 #endif
27 
28 /* Includes ------------------------------------------------------------------*/
29 #include "stm32c0xx_ll_system.h"
30 #include "stm32c0xx_hal_conf.h"
31 
32 /** @addtogroup STM32C0xx_HAL_Driver
33   * @{
34   */
35 
36 /** @defgroup HAL HAL
37   * @{
38   */
39 
40 /* Exported types ------------------------------------------------------------*/
41 /* Exported constants --------------------------------------------------------*/
42 
43 /** @defgroup HAL_Exported_Constants HAL Exported Constants
44   * @{
45   */
46 
47 /** @defgroup HAL_TICK_FREQ Tick Frequency
48   * @{
49   */
50 
51 typedef enum
52 {
53   HAL_TICK_FREQ_10HZ         = 100U,
54   HAL_TICK_FREQ_100HZ        = 10U,
55   HAL_TICK_FREQ_1KHZ         = 1U,
56   HAL_TICK_FREQ_DEFAULT      = HAL_TICK_FREQ_1KHZ
57 } HAL_TickFreqTypeDef;
58 
59 /**
60   * @}
61   */
62 
63 /** @defgroup HAL_BIND_CFG  Bind Pin config
64   * @{
65   */
66 
67 #if (DEV_ID == 0x443UL)
68 #define HAL_BIND_SO8_PIN1_PB7          LL_PINMUX_SO8_PIN1_PB7         /*!< STM32C011 SO8 package, Pin1 assigned to GPIO PB7 */
69 #define HAL_BIND_SO8_PIN1_PC14         LL_PINMUX_SO8_PIN1_PC14        /*!< STM32C011 SO8 package, Pin1 assigned to GPIO PC14 */
70 #define HAL_BIND_SO8_PIN4_PF2          LL_PINMUX_SO8_PIN4_PF2         /*!< STM32C011 SO8 package, Pin4 assigned to GPIO PF2 */
71 #define HAL_BIND_SO8_PIN4_PA0          LL_PINMUX_SO8_PIN4_PA0         /*!< STM32C011 SO8 package, Pin4 assigned to GPIO PA0 */
72 #define HAL_BIND_SO8_PIN4_PA1          LL_PINMUX_SO8_PIN4_PA1         /*!< STM32C011 SO8 package, Pin4 assigned to GPIO PA1 */
73 #define HAL_BIND_SO8_PIN4_PA2          LL_PINMUX_SO8_PIN4_PA2         /*!< STM32C011 SO8 package, Pin4 assigned to GPIO PA2 */
74 #define HAL_BIND_SO8_PIN5_PA8          LL_PINMUX_SO8_PIN5_PA8         /*!< STM32C011 SO8 package, Pin5 assigned to GPIO PA8*/
75 #define HAL_BIND_SO8_PIN5_PA11         LL_PINMUX_SO8_PIN5_PA11        /*!< STM32C011 SO8 package, Pin5 assigned to GPIO PA11 */
76 #define HAL_BIND_SO8_PIN8_PA14         LL_PINMUX_SO8_PIN8_PA14        /*!< STM32C011 SO8 package, Pin8 assigned to GPIO PA14 */
77 #define HAL_BIND_SO8_PIN8_PB6          LL_PINMUX_SO8_PIN8_PB6         /*!< STM32C011 SO8 package, Pin8 assigned to GPIO PB6 */
78 #define HAL_BIND_SO8_PIN8_PC15         LL_PINMUX_SO8_PIN8_PC15        /*!< STM32C011 SO8 package, Pin8 assigned to GPIO PC15 */
79 #define HAL_BIND_WLCSP12_PINE2_PA7     LL_PINMUX_WLCSP12_PINE2_PA7    /*!< STM32C011 WLCSP12 package, PinE2 assigned to GPIO PA7 */
80 #define HAL_BIND_WLCSP12_PINE2_PA12    LL_PINMUX_WLCSP12_PINE2_PA12   /*!< STM32C011 WLCSP12 package, PinE2 assigned to GPIO PA12*/
81 #define HAL_BIND_WLCSP12_PINF1_PA3     LL_PINMUX_WLCSP12_PINF1_PA3    /*!< STM32C011 WLCSP12 package, PinF1 assigned to GPIO PA3 */
82 #define HAL_BIND_WLCSP12_PINF1_PA4     LL_PINMUX_WLCSP12_PINF1_PA4    /*!< STM32C011 WLCSP12 package, PinF1 assigned to GPIO PA4 */
83 #define HAL_BIND_WLCSP12_PINF1_PA5     LL_PINMUX_WLCSP12_PINF1_PA5    /*!< STM32C011 WLCSP12 package, PinF1 assigned to GPIO PA5 */
84 #define HAL_BIND_WLCSP12_PINF1_PA6     LL_PINMUX_WLCSP12_PINF1_PA6    /*!< STM32C011 WLCSP12 package, PinF1 assigned to GPIO PA6 */
85 #elif (DEV_ID == 0x453UL)
86 #define HAL_BIND_WLCSP14_PINF2_PA1     LL_PINMUX_WLCSP14_PINF2_PA1    /*!< STM32C031 WLCSP14 package, PinF2 assigned to GPIO PA1 */
87 #define HAL_BIND_WLCSP14_PINF2_PA2     LL_PINMUX_WLCSP14_PINF2_PA2    /*!< STM32C031 WLCSP14 package, PinF2 assigned to GPIO PA2 */
88 #define HAL_BIND_WLCSP14_PING3_PF2     LL_PINMUX_WLCSP14_PING3_PF2    /*!< STM32C031 WLCSP14 package, PinG3 assigned to GPIO PF2 */
89 #define HAL_BIND_WLCSP14_PING3_PA0     LL_PINMUX_WLCSP14_PING3_PA0    /*!< STM32C031 WLCSP14 package, PinG3 assigned to GPIO PA0 */
90 #define HAL_BIND_WLCSP14_PINJ1_PA8     LL_PINMUX_WLCSP14_PINJ1_PA8    /*!< STM32C031 WLCSP14 package, PinJ1 assigned to GPIO PA8 */
91 #define HAL_BIND_WLCSP14_PINJ1_PA11    LL_PINMUX_WLCSP14_PINJ1_PA11   /*!< STM32C031 WLCSP14 package, PinJ1 assigned to GPIO PA11 */
92 #define HAL_BIND_WLCSP14_PINH2_PA5     LL_PINMUX_WLCSP14_PINH2_PA5    /*!< STM32C031 WLCSP14 package, PinH2 assigned to GPIO PA5 */
93 #define HAL_BIND_WLCSP14_PINH2_PA6     LL_PINMUX_WLCSP14_PINH2_PA6    /*!< STM32C031 WLCSP14 package, PinH2 assigned to GPIO PA6 */
94 #define HAL_BIND_WLCSP14_PING1_PA7     LL_PINMUX_WLCSP14_PING1_PA7    /*!< STM32C031 WLCSP14 package, PinG1 assigned to GPIO PA7 */
95 #define HAL_BIND_WLCSP14_PING1_PA12    LL_PINMUX_WLCSP14_PING1_PA12   /*!< STM32C031 WLCSP14 package, PinG1 assigned to GPIO PA12 */
96 #define HAL_BIND_WLCSP14_PINJ3_PA3     LL_PINMUX_WLCSP14_PINJ3_PA3    /*!< STM32C031 WLCSP14 package, PinJ3 assigned to GPIO PA3 */
97 #define HAL_BIND_WLCSP14_PINJ3_PA4     LL_PINMUX_WLCSP14_PINJ3_PA4    /*!< STM32C031 WLCSP14 package, PinJ3 assigned to GPIO PA4 */
98 #elif (DEV_ID == 0x493UL)
99 #define HAL_BIND_WLCSP19_PINH3_PF2     LL_PINMUX_WLCSP19_PINH3_PF2    /*!< STM32C071 WLCSP19 package, PinH3 assigned to GPIO PF2 */
100 #define HAL_BIND_WLCSP19_PINH3_PA0     LL_PINMUX_WLCSP19_PINH3_PA0    /*!< STM32C071 WLCSP19 package, PinH3 assigned to GPIO PA0 */
101 #define HAL_BIND_WLCSP19_PINB1_PA14    LL_PINMUX_WLCSP19_PINB1_PA14   /*!< STM32C071 WLCSP19 package, PinB1 assigned to GPIO PA14 */
102 #define HAL_BIND_WLCSP19_PINB1_PA15    LL_PINMUX_WLCSP19_PINB1_PA15   /*!< STM32C071 WLCSP19 package, PinB1 assigned to GPIO PA15 */
103 #define HAL_BIND_TSSOP20_PIN19_PA14    LL_PINMUX_TSSOP20_PIN19_PA14
104 #define HAL_BIND_TSSOP20_PIN19_PA15    LL_PINMUX_TSSOP20_PIN19_PA15
105 #define HAL_BIND_TSSOP20_PIN20_PB6     LL_PINMUX_TSSOP20_PIN20_PB6    /*!< STM32C071 TSSOP20 package, Pin20 assigned to GPIO PB6 */
106 #define HAL_BIND_TSSOP20_PIN20_PB3     LL_PINMUX_TSSOP20_PIN20_PB3    /*!< STM32C071 TSSOP20 package, Pin20 assigned to GPIO PB3 */
107 #define HAL_BIND_TSSOP20_PIN20_PB4     LL_PINMUX_TSSOP20_PIN20_PB4    /*!< STM32C071 TSSOP20 package, Pin20 assigned to GPIO PB4 */
108 #define HAL_BIND_TSSOP20_PIN20_PB5     LL_PINMUX_TSSOP20_PIN20_PB5    /*!< STM32C071 TSSOP20 package, Pin20 assigned to GPIO PB5 */
109 #define HAL_BIND_WLCSP19_PINB3_PB      LL_PINMUX_WLCSP19_PINB3_PB7    /*!< STM32C071 WLCSP19 package, PinH2 assigned to GPIO PB7 */
110 #define HAL_BIND_WLCSP19_PINB3_PB8     LL_PINMUX_WLCSP19_PINB3_PB8    /*!< STM32C071 WLCSP19 package, PinH2 assigned to GPIO PB8 */
111 #define HAL_BIND_TSSOP20_PIN1_PB7      LL_PINMUX_TSSOP20_PIN1_PB7     /*!< STM32C071 TSSOP20 package, Pin1 assigned to GPIO PB7 */
112 #define HAL_BIND_TSSOP20_PIN1_PB8      LL_PINMUX_TSSOP20_PIN1_PB8     /*!< STM32C071 TSSOP20 package, Pin1 assigned to GPIO PB8 */
113 #endif /* DEV_ID == 0x443UL */
114 
115 /**
116   * @}
117   */
118 
119 /** @defgroup HAL_BIND_SCOURCE  Bind Pin Source
120   * @{
121   */
122 #if (DEV_ID == 0x443UL)
123 #define HAL_BIND_SO8_PIN1                LL_PINMUX_SO8_PIN1          /*!< STM32C011 SO8 package, GPIO Pin1 multiplexer */
124 #define HAL_BIND_SO8_PIN4                LL_PINMUX_SO8_PIN4          /*!< STM32C011 SO8 package, GPIO Pin4 multiplexer */
125 #define HAL_BIND_SO8_PIN5                LL_PINMUX_SO8_PIN5          /*!< STM32C011 SO8 package, GPIO Pin5 multiplexer */
126 #define HAL_BIND_SO8_PIN8                LL_PINMUX_SO8_PIN8          /*!< STM32C011 SO8 package, GPIO Pin8 multiplexer */
127 #define HAL_BIND_WLCSP12_PINE2           LL_PINMUX_WLCSP12_PINE2     /*!< STM32C011 WLCSP12 package, GPIO PinE2 multiplexer */
128 #define HAL_BIND_WLCSP12_PINF1           LL_PINMUX_WLCSP12_PINF1     /*!< STM32C011 WLCSP12 package, GPIO PinF1 multiplexer */
129 #elif (DEV_ID == 0x453UL)
130 #define HAL_BIND_WLCSP14_PINF2           LL_PINMUX_WLCSP14_PINF2     /*!< STM32C031 WLCSP14 package, GPIO PinF2 multiplexer */
131 #define HAL_BIND_WLCSP14_PING3           LL_PINMUX_WLCSP14_PING3     /*!< STM32C031 WLCSP14 package, GPIO PinG3 multiplexer */
132 #define HAL_BIND_WLCSP14_PINJ1           LL_PINMUX_WLCSP14_PINJ1     /*!< STM32C031 WLCSP14 package, GPIO PinJ1 multiplexer */
133 #define HAL_BIND_WLCSP14_PINH2           LL_PINMUX_WLCSP14_PINH2     /*!< STM32C031 WLCSP14 package, GPIO PinH2 multiplexer */
134 #define HAL_BIND_WLCSP14_PING1           LL_PINMUX_WLCSP14_PING1     /*!< STM32C031 WLCSP14 package, GPIO PinG1 multiplexer */
135 #define HAL_BIND_WLCSP14_PINJ3           LL_PINMUX_WLCSP14_PINJ3     /*!< STM32C031 WLCSP14 package, GPIO PinJ3 multiplexer */
136 #elif (DEV_ID == 0x493UL)
137 #define  HAL_BIND_WLCSP19_PINH3          LL_PINMUX_WLCSP19_PINH3     /*!< STM32C071 WLCSP19 package, GPIO PinH3 multiplexer  */
138 #define  HAL_BIND_WLCSP19_PINB1          LL_PINMUX_WLCSP19_PINB1     /*!< STM32C071 WLCSP19 package, GPIO PinB1 multiplexer  */
139 #define  HAL_BIND_TSSOP20_PIN19          LL_PINMUX_TSSOP20_PIN19     /*!< STM32C071 TSSOP20 package, GPIO Pin19 multiplexer  */
140 #define  HAL_BIND_TSSOP20_PIN20          LL_PINMUX_TSSOP20_PIN20     /*!< STM32C071 TSSOP20 package, GPIO Pin20 multiplexer  */
141 #define  HAL_BIND_WLCSP19_PINB3          LL_PINMUX_WLCSP19_PINB3     /*!< STM32C071 WLCSP19 package, GPIO PinB3 multiplexer  */
142 #define  HAL_BIND_TSSOP20_PIN1           LL_PINMUX_TSSOP20_PIN1      /*!< STM32C071 TSSOP20 package, GPIO Pin1 multiplexer   */
143 #endif /* DEV_ID == 0x443UL */
144 /**
145   * @}
146  */
147 
148 /**
149   * @}
150   */
151 
152 /** @defgroup SYSCFG_Exported_Constants SYSCFG Exported Constants
153   * @{
154   */
155 
156 /** @defgroup SYSCFG_BootMode Boot Mode
157   * @{
158   */
159 #define SYSCFG_BOOT_MAINFLASH          0x00000000U                      /*!< Main Flash memory mapped at 0x0000 0000   */
160 #define SYSCFG_BOOT_SYSTEMFLASH        SYSCFG_CFGR1_MEM_MODE_0          /*!< System Flash memory mapped at 0x0000 0000 */
161 #define SYSCFG_BOOT_SRAM               (SYSCFG_CFGR1_MEM_MODE_1 | SYSCFG_CFGR1_MEM_MODE_0)  /*!< Embedded SRAM mapped at 0x0000 0000 */
162 
163 /**
164   * @}
165   */
166 
167 /** @defgroup SYSCFG_Break Break
168   * @{
169   */
170 #define SYSCFG_BREAK_LOCKUP            SYSCFG_CFGR2_CLL    /*!< Enables and locks the LOCKUP output of CortexM0+ with Break Input of TIM1/16/17 */
171 /**
172   * @}
173   */
174 
175 /** @defgroup HAL_Pin_remapping Pin remapping
176   * @{
177   */
178 #define SYSCFG_REMAP_PA11                   SYSCFG_CFGR1_PA11_RMP       /*!< PA11 pad behaves digitally as PA9 GPIO pin */
179 #define SYSCFG_REMAP_PA12                   SYSCFG_CFGR1_PA12_RMP       /*!< PA12 pad behaves digitally as PA10 GPIO pin */
180 /**
181   * @}
182   */
183 
184 /** @defgroup HAL_IR_ENV_SEL IR Modulation Envelope signal selection
185   * @{
186   */
187 #define HAL_SYSCFG_IRDA_ENV_SEL_TIM16     (SYSCFG_CFGR1_IR_MOD_0 & SYSCFG_CFGR1_IR_MOD_1)    /*!< 00: Timer16 is selected as IR Modulation envelope source */
188 #define HAL_SYSCFG_IRDA_ENV_SEL_USART1    (SYSCFG_CFGR1_IR_MOD_0)                            /*!< 01: USART1 is selected as IR Modulation envelope source */
189 #define HAL_SYSCFG_IRDA_ENV_SEL_USART2    (SYSCFG_CFGR1_IR_MOD_1)                            /*!< 10: USART2 is selected as IR Modulation envelope source */
190 
191 /**
192   * @}
193   */
194 
195 /** @defgroup HAL_IR_POL_SEL IR output polarity selection
196   * @{
197   */
198 #define HAL_SYSCFG_IRDA_POLARITY_NOT_INVERTED     0x00000000U                                /*!< 00: IR output polarity not inverted */
199 #define HAL_SYSCFG_IRDA_POLARITY_INVERTED         SYSCFG_CFGR1_IR_POL                        /*!< 01: IR output polarity inverted */
200 
201 /**
202   * @}
203   */
204 /** @defgroup SYSCFG_FastModePlus_GPIO Fast mode Plus on GPIO
205   * @{
206   */
207 
208 /** @brief  Fast mode Plus driving capability on a specific GPIO
209   */
210 #define SYSCFG_FASTMODEPLUS_PB6        SYSCFG_CFGR1_I2C_PB6_FMP  /*!< Enable Fast mode Plus on PB6 */
211 #define SYSCFG_FASTMODEPLUS_PB7        SYSCFG_CFGR1_I2C_PB7_FMP  /*!< Enable Fast mode Plus on PB7 */
212 #define SYSCFG_FASTMODEPLUS_PB8        SYSCFG_CFGR1_I2C_PB8_FMP  /*!< Enable Fast mode Plus on PB8 */
213 #define SYSCFG_FASTMODEPLUS_PB9        SYSCFG_CFGR1_I2C_PB9_FMP  /*!< Enable Fast mode Plus on PB9 */
214 #define SYSCFG_FASTMODEPLUS_PA9        SYSCFG_CFGR1_I2C_PA9_FMP  /*!< Enable Fast mode Plus on PA9 */
215 #define SYSCFG_FASTMODEPLUS_PA10       SYSCFG_CFGR1_I2C_PA10_FMP /*!< Enable Fast mode Plus on PA10 */
216 #define SYSCFG_FASTMODEPLUS_PC14       SYSCFG_CFGR1_I2C_PC14_FMP /*!< Enable Fast mode Plus on PC14 */
217 /**
218   * @}
219   */
220 
221 /** @defgroup SYSCFG_FastModePlus_I2Cx Fast mode Plus driving capability activation for I2Cx
222   * @{
223   */
224 
225 /** @brief  Fast mode Plus driving capability on a specific GPIO
226   */
227 #define SYSCFG_FASTMODEPLUS_I2C1       SYSCFG_CFGR1_I2C1_FMP /*!< Enable Fast mode Plus on I2C1 */
228 #if defined(I2C2)
229 #define SYSCFG_FASTMODEPLUS_I2C2       SYSCFG_CFGR1_I2C2_FMP /*!< Enable Fast mode Plus on I2C2 */
230 #endif /* I2C2 */
231 /**
232   * @}
233   */
234 
235 /** @defgroup HAL_ISR_Wrapper HAL ISR Wrapper
236   * @brief ISR Wrapper
237   * @{
238   */
239 #define HAL_SYSCFG_ITLINE0                           0x00000000U /*!< Internal define for macro handling */
240 #define HAL_SYSCFG_ITLINE2                           0x00000002U /*!< Internal define for macro handling */
241 #define HAL_SYSCFG_ITLINE3                           0x00000003U /*!< Internal define for macro handling */
242 #define HAL_SYSCFG_ITLINE4                           0x00000004U /*!< Internal define for macro handling */
243 #define HAL_SYSCFG_ITLINE5                           0x00000005U /*!< Internal define for macro handling */
244 #define HAL_SYSCFG_ITLINE6                           0x00000006U /*!< Internal define for macro handling */
245 #define HAL_SYSCFG_ITLINE7                           0x00000007U /*!< Internal define for macro handling */
246 #if defined(USB)
247 #define HAL_SYSCFG_ITLINE8                           0x00000008U /*!< Internal define for macro handling */
248 #endif /* USB */
249 #define HAL_SYSCFG_ITLINE9                           0x00000009U /*!< Internal define for macro handling */
250 #define HAL_SYSCFG_ITLINE10                          0x0000000AU /*!< Internal define for macro handling */
251 #define HAL_SYSCFG_ITLINE11                          0x0000000BU /*!< Internal define for macro handling */
252 #define HAL_SYSCFG_ITLINE12                          0x0000000CU /*!< Internal define for macro handling */
253 #define HAL_SYSCFG_ITLINE13                          0x0000000DU /*!< Internal define for macro handling */
254 #define HAL_SYSCFG_ITLINE14                          0x0000000EU /*!< Internal define for macro handling */
255 #if defined(TIM2)
256 #define HAL_SYSCFG_ITLINE15                          0x0000000FU /*!< Internal define for macro handling */
257 #endif /* TIM2 */
258 #define HAL_SYSCFG_ITLINE16                          0x00000010U /*!< Internal define for macro handling */
259 #define HAL_SYSCFG_ITLINE19                          0x00000013U /*!< Internal define for macro handling */
260 #define HAL_SYSCFG_ITLINE21                          0x00000015U /*!< Internal define for macro handling */
261 #define HAL_SYSCFG_ITLINE22                          0x00000016U /*!< Internal define for macro handling */
262 #define HAL_SYSCFG_ITLINE23                          0x00000017U /*!< Internal define for macro handling */
263 #if defined(I2C2)
264 #define HAL_SYSCFG_ITLINE24                          0x00000018U /*!< Internal define for macro handling */
265 #endif /* I2C2 */
266 #define HAL_SYSCFG_ITLINE25                          0x00000019U /*!< Internal define for macro handling */
267 #if defined(SPI2)
268 #define HAL_SYSCFG_ITLINE26                          0x0000001AU /*!< Internal define for macro handling */
269 #endif /* SPI2 */
270 #define HAL_SYSCFG_ITLINE27                          0x0000001BU /*!< Internal define for macro handling */
271 #define HAL_SYSCFG_ITLINE28                          0x0000001CU /*!< Internal define for macro handling */
272 
273 #define HAL_ITLINE_WWDG           ((HAL_SYSCFG_ITLINE0 << 0x18U) | SYSCFG_ITLINE0_SR_WWDG)          /*!< WWDG Interrupt */
274 #define HAL_ITLINE_RTC            ((HAL_SYSCFG_ITLINE2 << 0x18U) | SYSCFG_ITLINE2_SR_RTC)           /*!< RTC  Interrupt */
275 #define HAL_ITLINE_FLASH_ITF      ((HAL_SYSCFG_ITLINE3 << 0x18U) | SYSCFG_ITLINE3_SR_FLASH_ITF)     /*!< Flash ITF Interrupt */
276 #define HAL_ITLINE_CLK_CTRL       ((HAL_SYSCFG_ITLINE4 << 0x18U) | SYSCFG_ITLINE4_SR_CLK_CTRL)      /*!< CLK Control Interrupt */
277 #if defined(CRS)
278 #define HAL_ITLINE_CRS            ((HAL_SYSCFG_ITLINE4 << 0x18U) | SYSCFG_ITLINE4_SR_CRS)           /*!< CRS Interrupt */
279 #endif /* CRS */
280 #define HAL_ITLINE_EXTI0          ((HAL_SYSCFG_ITLINE5 << 0x18U) | SYSCFG_ITLINE5_SR_EXTI0)         /*!< External Interrupt 0 */
281 #define HAL_ITLINE_EXTI1          ((HAL_SYSCFG_ITLINE5 << 0x18U) | SYSCFG_ITLINE5_SR_EXTI1)         /*!< External Interrupt 1 */
282 #define HAL_ITLINE_EXTI2          ((HAL_SYSCFG_ITLINE6 << 0x18U) | SYSCFG_ITLINE6_SR_EXTI2)         /*!< External Interrupt 2 */
283 #define HAL_ITLINE_EXTI3          ((HAL_SYSCFG_ITLINE6 << 0x18U) | SYSCFG_ITLINE6_SR_EXTI3)         /*!< External Interrupt 3 */
284 #define HAL_ITLINE_EXTI4          ((HAL_SYSCFG_ITLINE7 << 0x18U) | SYSCFG_ITLINE7_SR_EXTI4)         /*!< EXTI4 Interrupt */
285 #define HAL_ITLINE_EXTI5          ((HAL_SYSCFG_ITLINE7 << 0x18U) | SYSCFG_ITLINE7_SR_EXTI5)         /*!< EXTI5 Interrupt */
286 #define HAL_ITLINE_EXTI6          ((HAL_SYSCFG_ITLINE7 << 0x18U) | SYSCFG_ITLINE7_SR_EXTI6)         /*!< EXTI6 Interrupt */
287 #define HAL_ITLINE_EXTI7          ((HAL_SYSCFG_ITLINE7 << 0x18U) | SYSCFG_ITLINE7_SR_EXTI7)         /*!< EXTI7 Interrupt */
288 #define HAL_ITLINE_EXTI8          ((HAL_SYSCFG_ITLINE7 << 0x18U) | SYSCFG_ITLINE7_SR_EXTI8)         /*!< EXTI8 Interrupt */
289 #define HAL_ITLINE_EXTI9          ((HAL_SYSCFG_ITLINE7 << 0x18U) | SYSCFG_ITLINE7_SR_EXTI9)         /*!< EXTI9 Interrupt */
290 #define HAL_ITLINE_EXTI10         ((HAL_SYSCFG_ITLINE7 << 0x18U) | SYSCFG_ITLINE7_SR_EXTI10)        /*!< EXTI10 Interrupt */
291 #define HAL_ITLINE_EXTI11         ((HAL_SYSCFG_ITLINE7 << 0x18U) | SYSCFG_ITLINE7_SR_EXTI11)        /*!< EXTI11 Interrupt */
292 #define HAL_ITLINE_EXTI12         ((HAL_SYSCFG_ITLINE7 << 0x18U) | SYSCFG_ITLINE7_SR_EXTI12)        /*!< EXTI12 Interrupt */
293 #define HAL_ITLINE_EXTI13         ((HAL_SYSCFG_ITLINE7 << 0x18U) | SYSCFG_ITLINE7_SR_EXTI13)        /*!< EXTI13 Interrupt */
294 #define HAL_ITLINE_EXTI14         ((HAL_SYSCFG_ITLINE7 << 0x18U) | SYSCFG_ITLINE7_SR_EXTI14)        /*!< EXTI14 Interrupt */
295 #define HAL_ITLINE_EXTI15         ((HAL_SYSCFG_ITLINE7 << 0x18U) | SYSCFG_ITLINE7_SR_EXTI15)        /*!< EXTI15 Interrupt */
296 #if defined(USB)
297 #define HAL_ITLINE_USB            ((HAL_SYSCFG_ITLINE8 << 0x18U) | SYSCFG_ITLINE8_SR_USB)           /*!< USB Interrupt */
298 #endif /* USB */
299 #define HAL_ITLINE_DMA1_CH1       ((HAL_SYSCFG_ITLINE9 << 0x18U) | SYSCFG_ITLINE9_SR_DMA1_CH1)      /*!< DMA1 Channel 1 Interrupt */
300 #define HAL_ITLINE_DMA1_CH2       ((HAL_SYSCFG_ITLINE10 << 0x18U) | SYSCFG_ITLINE10_SR_DMA1_CH2)    /*!< DMA1 Channel 2 Interrupt */
301 #define HAL_ITLINE_DMA1_CH3       ((HAL_SYSCFG_ITLINE10 << 0x18U) | SYSCFG_ITLINE10_SR_DMA1_CH3)    /*!< DMA1 Channel 3 Interrupt */
302 #define HAL_ITLINE_DMAMUX         ((HAL_SYSCFG_ITLINE11 << 0x18U) | SYSCFG_ITLINE11_SR_DMAMUX)      /*!< DMAMUX Interrupt */
303 #if defined(SYSCFG_ITLINE11_SR_DMA1_CH4)
304 #define HAL_ITLINE_DMA1_CH4       ((HAL_SYSCFG_ITLINE11 << 0x18U) | SYSCFG_ITLINE11_SR_DMA1_CH4)    /*!< DMA1 Channel 4 Interrupt */
305 #endif /* SYSCFG_ITLINE11_SR_DMA1_CH4 */
306 #if defined(SYSCFG_ITLINE11_SR_DMA1_CH5)
307 #define HAL_ITLINE_DMA1_CH5       ((HAL_SYSCFG_ITLINE11 << 0x18U) | SYSCFG_ITLINE11_SR_DMA1_CH5)    /*!< DMA1 Channel 5 Interrupt */
308 #endif /* SYSCFG_ITLINE11_SR_DMA1_CH5 */
309 #define HAL_ITLINE_ADC            ((HAL_SYSCFG_ITLINE12 << 0x18U) | SYSCFG_ITLINE12_SR_ADC)         /*!< ADC Interrupt */
310 #define HAL_ITLINE_TIM1_BRK       ((HAL_SYSCFG_ITLINE13 << 0x18U) | SYSCFG_ITLINE13_SR_TIM1_BRK)    /*!< TIM1 BRK Interrupt */
311 #define HAL_ITLINE_TIM1_UPD       ((HAL_SYSCFG_ITLINE13 << 0x18U) | SYSCFG_ITLINE13_SR_TIM1_UPD)    /*!< TIM1 UPD Interrupt */
312 #define HAL_ITLINE_TIM1_TRG       ((HAL_SYSCFG_ITLINE13 << 0x18U) | SYSCFG_ITLINE13_SR_TIM1_TRG)    /*!< TIM1 TRG Interrupt */
313 #define HAL_ITLINE_TIM1_CCU       ((HAL_SYSCFG_ITLINE13 << 0x18U) | SYSCFG_ITLINE13_SR_TIM1_CCU)    /*!< TIM1 CCU Interrupt */
314 #define HAL_ITLINE_TIM1_CC        ((HAL_SYSCFG_ITLINE14 << 0x18U) | SYSCFG_ITLINE14_SR_TIM1_CC)     /*!< TIM1 CC Interrupt */
315 #if defined(TIM2)
316 #define HAL_ITLINE_TIM2           ((HAL_SYSCFG_ITLINE15 << 0x18U) | SYSCFG_ITLINE15_SR_TIM2)        /*!< TIM2 Interrupt */
317 #endif /* TIM2 */
318 #define HAL_ITLINE_TIM3           ((HAL_SYSCFG_ITLINE16 << 0x18U) | SYSCFG_ITLINE16_SR_TIM3_GLB)    /*!< TIM3 Interrupt */
319 #define HAL_ITLINE_TIM14          ((HAL_SYSCFG_ITLINE19 << 0x18U) | SYSCFG_ITLINE19_SR_TIM14_GLB)   /*!< TIM14 Interrupt */
320 #define HAL_ITLINE_TIM16          ((HAL_SYSCFG_ITLINE21 << 0x18U) | SYSCFG_ITLINE21_SR_TIM16_GLB)   /*!< TIM16 Interrupt */
321 #define HAL_ITLINE_TIM17          ((HAL_SYSCFG_ITLINE22 << 0x18U) | SYSCFG_ITLINE22_SR_TIM17_GLB)   /*!< TIM17 Interrupt */
322 #define HAL_ITLINE_I2C1           ((HAL_SYSCFG_ITLINE23 << 0x18U) | SYSCFG_ITLINE23_SR_I2C1_GLB)    /*!< I2C1 Interrupt */
323 #if defined(I2C2)
324 #define HAL_ITLINE_I2C2           ((HAL_SYSCFG_ITLINE24 << 0x18U) | SYSCFG_ITLINE24_SR_I2C2_GLB)    /*!< I2C1 Interrupt */
325 #endif /* I2C2 */
326 #define HAL_ITLINE_SPI1           ((HAL_SYSCFG_ITLINE25 << 0x18U) | SYSCFG_ITLINE25_SR_SPI1)        /*!< SPI1 Interrupt */
327 #if defined(SPI2)
328 #define HAL_ITLINE_SPI2           ((HAL_SYSCFG_ITLINE26 << 0x18U) | SYSCFG_ITLINE25_SR_SPI2)        /*!< SPI1 Interrupt */
329 #endif /* SPI2 */
330 #define HAL_ITLINE_USART1         ((HAL_SYSCFG_ITLINE27 << 0x18U) | SYSCFG_ITLINE27_SR_USART1_GLB)  /*!< USART1 GLB Interrupt */
331 #define HAL_ITLINE_USART2         ((HAL_SYSCFG_ITLINE28 << 0x18U) | SYSCFG_ITLINE28_SR_USART2_GLB)  /*!< USART2 GLB Interrupt */
332 
333 /**
334   * @}
335   */
336 
337 /**
338   * @}
339   */
340 
341 /* Exported macros -----------------------------------------------------------*/
342 /** @defgroup HAL_Exported_Macros HAL Exported Macros
343   * @{
344   */
345 
346 /** @defgroup DBG_Exported_Macros DBG Exported Macros
347   * @{
348   */
349 
350 /** @brief  Freeze and Unfreeze Peripherals in Debug mode
351   */
352 
353 #if defined(DBG_APB_FZ1_DBG_TIM2_STOP)
354 #define __HAL_DBGMCU_FREEZE_TIM2()           SET_BIT(DBG->APBFZ1, DBG_APB_FZ1_DBG_TIM2_STOP)
355 #define __HAL_DBGMCU_UNFREEZE_TIM2()         CLEAR_BIT(DBG->APBFZ1, DBG_APB_FZ1_DBG_TIM2_STOP)
356 #endif /* DBG_APB_FZ1_DBG_TIM2_STOP */
357 
358 #if defined(DBG_APB_FZ1_DBG_TIM3_STOP)
359 #define __HAL_DBGMCU_FREEZE_TIM3()           SET_BIT(DBG->APBFZ1, DBG_APB_FZ1_DBG_TIM3_STOP)
360 #define __HAL_DBGMCU_UNFREEZE_TIM3()         CLEAR_BIT(DBG->APBFZ1, DBG_APB_FZ1_DBG_TIM3_STOP)
361 #endif /* DBG_APB_FZ1_DBG_TIM3_STOP */
362 
363 #if defined(DBG_APB_FZ1_DBG_RTC_STOP)
364 #define __HAL_DBGMCU_FREEZE_RTC()            SET_BIT(DBG->APBFZ1, DBG_APB_FZ1_DBG_RTC_STOP)
365 #define __HAL_DBGMCU_UNFREEZE_RTC()          CLEAR_BIT(DBG->APBFZ1, DBG_APB_FZ1_DBG_RTC_STOP)
366 #endif /* DBG_APB_FZ1_DBG_RTC_STOP */
367 
368 #if defined(DBG_APB_FZ1_DBG_WWDG_STOP)
369 #define __HAL_DBGMCU_FREEZE_WWDG()           SET_BIT(DBG->APBFZ1, DBG_APB_FZ1_DBG_WWDG_STOP)
370 #define __HAL_DBGMCU_UNFREEZE_WWDG()         CLEAR_BIT(DBG->APBFZ1, DBG_APB_FZ1_DBG_WWDG_STOP)
371 #endif /* DBG_APB_FZ1_DBG_RTC_STOP */
372 
373 #if defined(DBG_APB_FZ1_DBG_IWDG_STOP)
374 #define __HAL_DBGMCU_FREEZE_IWDG()           SET_BIT(DBG->APBFZ1, DBG_APB_FZ1_DBG_IWDG_STOP)
375 #define __HAL_DBGMCU_UNFREEZE_IWDG()         CLEAR_BIT(DBG->APBFZ1, DBG_APB_FZ1_DBG_IWDG_STOP)
376 #endif /* DBG_APB_FZ1_DBG_IWDG_STOP */
377 
378 #if defined(DBG_APB_FZ1_DBG_I2C1_SMBUS_TIMEOUT_STOP)
379 #define __HAL_DBGMCU_FREEZE_I2C1_TIMEOUT()   SET_BIT(DBG->APBFZ1, DBG_APB_FZ1_DBG_I2C1_SMBUS_TIMEOUT_STOP)
380 #define __HAL_DBGMCU_UNFREEZE_I2C1_TIMEOUT() CLEAR_BIT(DBG->APBFZ1, DBG_APB_FZ1_DBG_I2C1_SMBUS_TIMEOUT_STOP)
381 #endif /* DBG_APB_FZ1_DBG_I2C1_SMBUS_TIMEOUT_STOP */
382 
383 #if defined(DBG_APB_FZ2_DBG_TIM1_STOP)
384 #define __HAL_DBGMCU_FREEZE_TIM1()           SET_BIT(DBG->APBFZ2, DBG_APB_FZ2_DBG_TIM1_STOP)
385 #define __HAL_DBGMCU_UNFREEZE_TIM1()         CLEAR_BIT(DBG->APBFZ2, DBG_APB_FZ2_DBG_TIM1_STOP)
386 #endif /* DBG_APB_FZ2_DBG_TIM1_STOP */
387 
388 #if defined(DBG_APB_FZ2_DBG_TIM14_STOP)
389 #define __HAL_DBGMCU_FREEZE_TIM14()          SET_BIT(DBG->APBFZ2, DBG_APB_FZ2_DBG_TIM14_STOP)
390 #define __HAL_DBGMCU_UNFREEZE_TIM14()        CLEAR_BIT(DBG->APBFZ2, DBG_APB_FZ2_DBG_TIM14_STOP)
391 #endif /* DBG_APB_FZ2_DBG_TIM14_STOP */
392 
393 #if defined(DBG_APB_FZ2_DBG_TIM16_STOP)
394 #define __HAL_DBGMCU_FREEZE_TIM16()          SET_BIT(DBG->APBFZ2, DBG_APB_FZ2_DBG_TIM16_STOP)
395 #define __HAL_DBGMCU_UNFREEZE_TIM16()        CLEAR_BIT(DBG->APBFZ2, DBG_APB_FZ2_DBG_TIM16_STOP)
396 #endif /* DBG_APB_FZ2_DBG_TIM16_STOP */
397 
398 #if defined(DBG_APB_FZ2_DBG_TIM17_STOP)
399 #define __HAL_DBGMCU_FREEZE_TIM17()          SET_BIT(DBG->APBFZ2, DBG_APB_FZ2_DBG_TIM17_STOP)
400 #define __HAL_DBGMCU_UNFREEZE_TIM17()        CLEAR_BIT(DBG->APBFZ2, DBG_APB_FZ2_DBG_TIM17_STOP)
401 #endif /* DBG_APB_FZ2_DBG_TIM17_STOP */
402 
403 /**
404   * @}
405   */
406 
407 /** @defgroup SYSCFG_Exported_Macros SYSCFG Exported Macros
408   * @{
409   */
410 
411 /**
412   * @brief ISR wrapper check
413   * @note Allow to determine interrupt source per line.
414   */
415 #define __HAL_GET_PENDING_IT(__SOURCE__)     (SYSCFG->IT_LINE_SR[((__SOURCE__) >> 0x18U)] & ((__SOURCE__) & 0x00FFFFFF))
416 
417 /** @brief  Main Flash memory mapped at 0x00000000
418   */
419 #define __HAL_SYSCFG_REMAPMEMORY_FLASH()       CLEAR_BIT(SYSCFG->CFGR1, SYSCFG_CFGR1_MEM_MODE)
420 
421 /** @brief  System Flash memory mapped at 0x00000000
422   */
423 #define __HAL_SYSCFG_REMAPMEMORY_SYSTEMFLASH() MODIFY_REG(SYSCFG->CFGR1, SYSCFG_CFGR1_MEM_MODE, SYSCFG_CFGR1_MEM_MODE_0)
424 
425 /** @brief  Embedded SRAM mapped at 0x00000000
426   */
427 #define __HAL_SYSCFG_REMAPMEMORY_SRAM() \
428   MODIFY_REG(SYSCFG->CFGR1, SYSCFG_CFGR1_MEM_MODE, (SYSCFG_CFGR1_MEM_MODE_1 | SYSCFG_CFGR1_MEM_MODE_0))
429 
430 /**
431   * @brief  Return the boot mode as configured by user.
432   * @retval The boot mode as configured by user. The returned value can be one
433   *         of the following values @ref SYSCFG_BootMode
434   */
435 #define __HAL_SYSCFG_GET_BOOT_MODE()           READ_BIT(SYSCFG->CFGR1, SYSCFG_CFGR1_MEM_MODE)
436 
437 /** @brief  SYSCFG Break Cortex-M0+ Lockup lock.
438   *         Enables and locks the connection of Cortex-M0+ LOCKUP (Hardfault) output to TIM1/16/17 Break input
439   * @note   The selected configuration is locked and can be unlocked only by system reset.
440   */
441 #define __HAL_SYSCFG_BREAK_LOCKUP_LOCK()        SET_BIT(SYSCFG->CFGR2, SYSCFG_CFGR2_CLL)
442 
443 /** @brief  Fast-mode Plus driving capability enable/disable macros
444   * @param __FASTMODEPLUS__ This parameter can be a value of @ref SYSCFG_FastModePlus_GPIO
445   */
446 #define __HAL_SYSCFG_FASTMODEPLUS_ENABLE(__FASTMODEPLUS__)  \
447   do { \
448     assert_param(IS_SYSCFG_FASTMODEPLUS((__FASTMODEPLUS__)));\
449     SET_BIT(SYSCFG->CFGR1, (__FASTMODEPLUS__));\
450   }while(0U)
451 
452 #define __HAL_SYSCFG_FASTMODEPLUS_DISABLE(__FASTMODEPLUS__) \
453   do { \
454     assert_param(IS_SYSCFG_FASTMODEPLUS((__FASTMODEPLUS__)));\
455     CLEAR_BIT(SYSCFG->CFGR1, (__FASTMODEPLUS__));\
456   }while(0U)
457 
458 
459 /** @brief  selection of the modulation envelope signal macro, using bits [7:6] of SYSCFG_CFGR1 register
460   * @param __SOURCE__ This parameter can be a value of @ref HAL_IR_ENV_SEL
461   */
462 #define __HAL_SYSCFG_IRDA_ENV_SELECTION(__SOURCE__)  do {assert_param(IS_HAL_SYSCFG_IRDA_ENV_SEL((__SOURCE__)));\
463                                                           CLEAR_BIT(SYSCFG->CFGR1, SYSCFG_CFGR1_IR_MOD);\
464                                                           SET_BIT(SYSCFG->CFGR1, (__SOURCE__));\
465                                                         }while(0U)
466 
467 #define __HAL_SYSCFG_GET_IRDA_ENV_SELECTION()  ((SYSCFG->CFGR1) & 0x000000C0U)
468 
469 /** @brief  IROut Polarity Selection, using bit[5] of SYSCFG_CFGR1 register
470   * @param __SEL__ This parameter can be a value of @ref HAL_IR_POL_SEL
471   */
472 #define __HAL_SYSCFG_IRDA_OUT_POLARITY_SELECTION(__SEL__)  do { assert_param(IS_HAL_SYSCFG_IRDA_POL_SEL((__SEL__)));\
473                                                                  CLEAR_BIT(SYSCFG->CFGR1, SYSCFG_CFGR1_IR_POL);\
474                                                                  SET_BIT(SYSCFG->CFGR1,(__SEL__));\
475                                                               }while(0U)
476 
477 /**
478   * @brief  Return the IROut Polarity mode as configured by user.
479   * @retval The IROut polarity as configured by user. The returned value can be one
480   *         of @ref HAL_IR_POL_SEL
481   */
482 #define __HAL_SYSCFG_GET_POLARITY()           READ_BIT(SYSCFG->CFGR1, SYSCFG_CFGR1_IR_POL)
483 
484 /** @brief  Break input to TIM1/16/17 capability enable/disable macros
485   * @param __BREAK__ This parameter can be a value of @ref SYSCFG_Break
486   */
487 #define __HAL_SYSCFG_BREAK_ENABLE(__BREAK__)     do {assert_param(IS_SYSCFG_BREAK_CONFIG((__BREAK__)));\
488                                                       SET_BIT(SYSCFG->CFGR2, (__BREAK__));\
489                                                     }while(0U)
490 
491 #define __HAL_SYSCFG_BREAK_DISABLE(__BREAK__)    do {assert_param(IS_SYSCFG_BREAK_CONFIG((__BREAK__)));\
492                                                       CLEAR_BIT(SYSCFG->CFGR2, (__BREAK__));\
493                                                     }while(0U)
494 /**
495   * @}
496   */
497 
498 /* Private macros ------------------------------------------------------------*/
499 /** @defgroup SYSCFG_Private_Macros SYSCFG Private Macros
500   * @{
501   */
502 
503 #define IS_SYSCFG_BREAK_CONFIG(__CONFIG__) ((__CONFIG__) == SYSCFG_BREAK_LOCKUP)
504 
505 #define IS_HAL_SYSCFG_IRDA_ENV_SEL(SEL)   (((SEL) == HAL_SYSCFG_IRDA_ENV_SEL_TIM16)   || \
506                                            ((SEL) == HAL_SYSCFG_IRDA_ENV_SEL_USART1)  || \
507                                            ((SEL) == HAL_SYSCFG_IRDA_ENV_SEL_USART2))
508 
509 #define IS_HAL_SYSCFG_IRDA_POL_SEL(SEL)   (((SEL) == HAL_SYSCFG_IRDA_POLARITY_NOT_INVERTED)   || \
510                                            ((SEL) == HAL_SYSCFG_IRDA_POLARITY_INVERTED))
511 
512 
513 #define IS_SYSCFG_FASTMODEPLUS(__PIN__) ((((__PIN__) & SYSCFG_FASTMODEPLUS_PC14) == SYSCFG_FASTMODEPLUS_PC14)  || \
514                                          (((__PIN__) & SYSCFG_FASTMODEPLUS_PA9)  == SYSCFG_FASTMODEPLUS_PA9)  || \
515                                          (((__PIN__) & SYSCFG_FASTMODEPLUS_PA10) == SYSCFG_FASTMODEPLUS_PA10) || \
516                                          (((__PIN__) & SYSCFG_FASTMODEPLUS_PB6)  == SYSCFG_FASTMODEPLUS_PB6)  || \
517                                          (((__PIN__) & SYSCFG_FASTMODEPLUS_PB7)  == SYSCFG_FASTMODEPLUS_PB7)  || \
518                                          (((__PIN__) & SYSCFG_FASTMODEPLUS_PB8)  == SYSCFG_FASTMODEPLUS_PB8)  || \
519                                          (((__PIN__) & SYSCFG_FASTMODEPLUS_PB9)  == SYSCFG_FASTMODEPLUS_PB9))
520 
521 #define IS_HAL_REMAP_PIN(RMP)               (((RMP) == SYSCFG_REMAP_PA11) || \
522                                              ((RMP) == SYSCFG_REMAP_PA12) || \
523                                              ((RMP) == (SYSCFG_REMAP_PA11 | SYSCFG_REMAP_PA12)))
524 #if (DEV_ID == 0x443UL)
525 #define IS_HAL_SYSCFG_PINBINDING(PIN) (((PIN) == HAL_BIND_SO8_PIN1_PB7)  || \
526                                        ((PIN) == HAL_BIND_SO8_PIN1_PC14) || \
527                                        ((PIN) == HAL_BIND_SO8_PIN4_PF2)  || \
528                                        ((PIN) == HAL_BIND_SO8_PIN4_PA0)  || \
529                                        ((PIN) == HAL_BIND_SO8_PIN4_PA1)  || \
530                                        ((PIN) == HAL_BIND_SO8_PIN4_PA2)  || \
531                                        ((PIN) == HAL_BIND_SO8_PIN5_PA8) || \
532                                        ((PIN) == HAL_BIND_SO8_PIN5_PA11)  || \
533                                        ((PIN) == HAL_BIND_SO8_PIN8_PA14)  || \
534                                        ((PIN) == HAL_BIND_SO8_PIN8_PB6)  || \
535                                        ((PIN) == HAL_BIND_SO8_PIN8_PC15) || \
536                                        ((PIN) == HAL_BIND_WLCSP12_PINE2_PA7)  || \
537                                        ((PIN) == HAL_BIND_WLCSP12_PINE2_PA12) || \
538                                        ((PIN) == HAL_BIND_WLCSP12_PINF1_PA3)  || \
539                                        ((PIN) == HAL_BIND_WLCSP12_PINF1_PA4)  || \
540                                        ((PIN) == HAL_BIND_WLCSP12_PINF1_PA5)  || \
541                                        ((PIN) == HAL_BIND_WLCSP12_PINF1_PA6))
542 #elif (DEV_ID == 0x453UL)
543 #define IS_HAL_SYSCFG_PINBINDING(PIN) (((PIN) == HAL_BIND_WLCSP14_PINF2_PA1) || \
544                                        ((PIN) == HAL_BIND_WLCSP14_PINF2_PA2) || \
545                                        ((PIN) == HAL_BIND_WLCSP14_PING3_PF2) || \
546                                        ((PIN) == HAL_BIND_WLCSP14_PING3_PA0) || \
547                                        ((PIN) == HAL_BIND_WLCSP14_PINJ1_PA8) || \
548                                        ((PIN) == HAL_BIND_WLCSP14_PINJ1_PA11) || \
549                                        ((PIN) == HAL_BIND_WLCSP14_PINH2_PA5) || \
550                                        ((PIN) == HAL_BIND_WLCSP14_PINH2_PA6) || \
551                                        ((PIN) == HAL_BIND_WLCSP14_PING1_PA7) || \
552                                        ((PIN) == HAL_BIND_WLCSP14_PING1_PA12)|| \
553                                        ((PIN) == HAL_BIND_WLCSP14_PINJ3_PA3) || \
554                                        ((PIN) == HAL_BIND_WLCSP14_PINJ3_PA4))
555 #elif (DEV_ID == 0x493UL)
556 #define IS_HAL_SYSCFG_PINBINDING(PIN) (((PIN) == LL_PINMUX_WLCSP19_PINH3_PF2) || \
557                                        ((PIN) == LL_PINMUX_WLCSP19_PINH3_PA0) || \
558                                        ((PIN) == LL_PINMUX_WLCSP19_PINB1_PA14) || \
559                                        ((PIN) == LL_PINMUX_WLCSP19_PINB1_PA15) || \
560                                        ((PIN) == LL_PINMUX_TSSOP20_PIN20_PB6) || \
561                                        ((PIN) == LL_PINMUX_TSSOP20_PIN20_PB3) || \
562                                        ((PIN) == LL_PINMUX_TSSOP20_PIN20_PB4) || \
563                                        ((PIN) == LL_PINMUX_TSSOP20_PIN20_PB5) || \
564                                        ((PIN) == LL_PINMUX_WLCSP19_PINB3_PB7) || \
565                                        ((PIN) == LL_PINMUX_WLCSP19_PINB3_PB8))
566 #endif /* DEV_ID == 0x443UL | DEV_ID == 0x453UL | DEV_ID == 0x493UL */
567 /**
568   * @}
569   */
570 
571 /** @defgroup HAL_Private_Macros HAL Private Macros
572   * @{
573   */
574 #define IS_TICKFREQ(FREQ) (((FREQ) == HAL_TICK_FREQ_10HZ)  || \
575                            ((FREQ) == HAL_TICK_FREQ_100HZ) || \
576                            ((FREQ) == HAL_TICK_FREQ_1KHZ))
577 /**
578   * @}
579   */
580 /* Exported functions --------------------------------------------------------*/
581 
582 /** @defgroup HAL_Exported_Functions HAL Exported Functions
583   * @{
584   */
585 
586 /** @defgroup HAL_Exported_Functions_Group1 HAL Initialization and Configuration functions
587   * @{
588   */
589 
590 /* Initialization and Configuration functions  ******************************/
591 HAL_StatusTypeDef HAL_Init(void);
592 HAL_StatusTypeDef HAL_DeInit(void);
593 void HAL_MspInit(void);
594 void HAL_MspDeInit(void);
595 HAL_StatusTypeDef HAL_InitTick(uint32_t TickPriority);
596 
597 /**
598   * @}
599   */
600 
601 /** @defgroup HAL_Exported_Functions_Group2 HAL Control functions
602   * @{
603   */
604 
605 /* Peripheral Control functions  ************************************************/
606 void HAL_IncTick(void);
607 void HAL_Delay(uint32_t Delay);
608 uint32_t HAL_GetTick(void);
609 uint32_t HAL_GetTickPrio(void);
610 HAL_StatusTypeDef HAL_SetTickFreq(HAL_TickFreqTypeDef Freq);
611 HAL_TickFreqTypeDef HAL_GetTickFreq(void);
612 void HAL_SuspendTick(void);
613 void HAL_ResumeTick(void);
614 uint32_t HAL_GetHalVersion(void);
615 uint32_t HAL_GetREVID(void);
616 uint32_t HAL_GetDEVID(void);
617 uint32_t HAL_GetUIDw0(void);
618 uint32_t HAL_GetUIDw1(void);
619 uint32_t HAL_GetUIDw2(void);
620 
621 /**
622   * @}
623   */
624 
625 /** @defgroup HAL_Exported_Functions_Group3 DBGMCU Control functions
626   * @{
627   */
628 
629 /* DBGMCU Peripheral Control functions  *****************************************/
630 void HAL_DBGMCU_EnableDBGStopMode(void);
631 void HAL_DBGMCU_DisableDBGStopMode(void);
632 void HAL_DBGMCU_EnableDBGStandbyMode(void);
633 void HAL_DBGMCU_DisableDBGStandbyMode(void);
634 
635 /**
636   * @}
637   */
638 
639 /* Exported variables ---------------------------------------------------------*/
640 /** @addtogroup HAL_Exported_Variables
641   * @{
642   */
643 extern __IO uint32_t        uwTick;
644 extern uint32_t             uwTickPrio;
645 extern HAL_TickFreqTypeDef  uwTickFreq;
646 /**
647   * @}
648   */
649 
650 /** @defgroup HAL_Exported_Functions_Group4 SYSCFG configuration functions
651   * @{
652   */
653 
654 /* SYSCFG Control functions  ****************************************************/
655 void HAL_SYSCFG_EnableRemap(uint32_t PinRemap);
656 void HAL_SYSCFG_DisableRemap(uint32_t PinRemap);
657 void HAL_SYSCFG_SetPinBinding(uint32_t pin_binding);
658 uint32_t HAL_SYSCFG_GetPinBinding(uint32_t pin_binding_source);
659 /**
660   * @}
661   */
662 
663 /**
664   * @}
665   */
666 
667 /**
668   * @}
669   */
670 
671 /**
672   * @}
673   */
674 
675 /**
676   * @}
677   */
678 #ifdef __cplusplus
679 }
680 #endif
681 
682 #endif /* STM32C0xx_HAL_H */
683