1 /**
2 ******************************************************************************
3 * @file stm32c0xx_ll_system.h
4 * @author MCD Application Team
5 * @brief Header file of SYSTEM LL module.
6 ******************************************************************************
7 * @attention
8 *
9 * Copyright (c) 2022 STMicroelectronics.
10 * All rights reserved.
11 *
12 * This software is licensed under terms that can be found in the LICENSE file
13 * in the root directory of this software component.
14 * If no LICENSE file comes with this software, it is provided AS-IS.
15 *
16 ******************************************************************************
17 @verbatim
18 ==============================================================================
19 ##### How to use this driver #####
20 ==============================================================================
21 [..]
22 The LL SYSTEM driver contains a set of generic APIs that can be
23 used by user:
24 (+) Some of the FLASH features need to be handled in the SYSTEM file.
25 (+) Access to DBGCMU registers
26 (+) Access to SYSCFG registers
27 @endverbatim
28 ******************************************************************************
29 */
30
31 /* Define to prevent recursive inclusion -------------------------------------*/
32 #ifndef STM32C0xx_LL_SYSTEM_H
33 #define STM32C0xx_LL_SYSTEM_H
34
35 #ifdef __cplusplus
36 extern "C" {
37 #endif
38
39 /* Includes ------------------------------------------------------------------*/
40 #include "stm32c0xx.h"
41
42 /** @addtogroup STM32C0xx_LL_Driver
43 * @{
44 */
45
46 #if defined (FLASH) || defined (SYSCFG) || defined (DBG)
47
48 /** @defgroup SYSTEM_LL SYSTEM
49 * @{
50 */
51
52 /* Private types -------------------------------------------------------------*/
53 /* Private variables ---------------------------------------------------------*/
54
55 /* Private constants ---------------------------------------------------------*/
56 /** @defgroup SYSTEM_LL_Private_Constants SYSTEM Private Constants
57 * @{
58 */
59
60 /**
61 * @}
62 */
63
64 /* Private macros ------------------------------------------------------------*/
65
66 /* Exported types ------------------------------------------------------------*/
67 /* Exported constants --------------------------------------------------------*/
68 /** @defgroup SYSTEM_LL_Exported_Constants SYSTEM Exported Constants
69 * @{
70 */
71
72 /** @defgroup SYSTEM_LL_EC_REMAP SYSCFG REMAP
73 * @{
74 */
75 #define LL_SYSCFG_REMAP_FLASH 0x00000000U /*!< Main Flash memory mapped at 0x00000000 */
76 #define LL_SYSCFG_REMAP_SYSTEMFLASH SYSCFG_CFGR1_MEM_MODE_0 /*!< System Flash memory mapped at 0x00000000 */
77 #define LL_SYSCFG_REMAP_SRAM (SYSCFG_CFGR1_MEM_MODE_1 | SYSCFG_CFGR1_MEM_MODE_0) /*!< Embedded SRAM mapped at 0x00000000 */
78 /**
79 * @}
80 */
81
82 /** @defgroup SYSTEM_LL_EC_PIN_RMP SYSCFG PIN RMP
83 * @{
84 */
85 #define LL_SYSCFG_PIN_RMP_PA11 SYSCFG_CFGR1_PA11_RMP /*!< PA11 pad behaves as PA9 pin */
86 #define LL_SYSCFG_PIN_RMP_PA12 SYSCFG_CFGR1_PA12_RMP /*!< PA12 pad behaves as PA10 pin */
87 /**
88 * @}
89 */
90
91 /** @defgroup SYSTEM_LL_EC_IR_MOD SYSCFG IR Modulation
92 * @{
93 */
94 #define LL_SYSCFG_IR_MOD_TIM16 (SYSCFG_CFGR1_IR_MOD_0 & SYSCFG_CFGR1_IR_MOD_1) /*!< 00: Timer16 is selected as IRDA Modulation envelope source */
95 #define LL_SYSCFG_IR_MOD_USART1 (SYSCFG_CFGR1_IR_MOD_0) /*!< 01: USART1 is selected as IRDA Modulation envelope source */
96 #define LL_SYSCFG_IR_MOD_USART2 (SYSCFG_CFGR1_IR_MOD_1) /*!< 10: USART2 is selected as IRDA Modulation envelope source */
97
98 /**
99 * @}
100 */
101 /** @defgroup SYSTEM_LL_EC_IR_POL SYSCFG IR Polarity
102 * @{
103 */
104 #define LL_SYSCFG_IR_POL_NOT_INVERTED 0x00000000U /*!< 0: Output of IRDA (IROut) not inverted */
105 #define LL_SYSCFG_IR_POL_INVERTED (SYSCFG_CFGR1_IR_POL) /*!< 1: Output of IRDA (IROut) inverted */
106 /**
107 * @}
108 */
109
110 /** @defgroup SYSTEM_LL_EC_BOOSTEN SYSCFG I/O analog switch voltage booster enable
111 * @{
112 */
113 #define LL_SYSCFG_CFGR1_BOOSTEN SYSCFG_CFGR1_BOOSTEN /*!< I/O analog switch voltage booster enable */
114 /**
115 * @}
116 */
117
118 /** @defgroup SYSTEM_LL_EC_I2C_FASTMODEPLUS SYSCFG I2C FASTMODEPLUS
119 * @{
120 */
121 #define LL_SYSCFG_I2C_FASTMODEPLUS_PB6 SYSCFG_CFGR1_I2C_PB6_FMP /*!< I2C PB6 Fast mode plus */
122 #define LL_SYSCFG_I2C_FASTMODEPLUS_PB7 SYSCFG_CFGR1_I2C_PB7_FMP /*!< I2C PB7 Fast mode plus */
123 #define LL_SYSCFG_I2C_FASTMODEPLUS_PB8 SYSCFG_CFGR1_I2C_PB8_FMP /*!< I2C PB8 Fast mode plus */
124 #define LL_SYSCFG_I2C_FASTMODEPLUS_PB9 SYSCFG_CFGR1_I2C_PB9_FMP /*!< I2C PB9 Fast mode plus */
125 #define LL_SYSCFG_I2C_FASTMODEPLUS_I2C1 SYSCFG_CFGR1_I2C1_FMP /*!< Enable I2C1 Fast mode Plus */
126 #define LL_SYSCFG_I2C_FASTMODEPLUS_PA9 SYSCFG_CFGR1_I2C_PA9_FMP /*!< Enable Fast Mode Plus on PA9 */
127 #define LL_SYSCFG_I2C_FASTMODEPLUS_PA10 SYSCFG_CFGR1_I2C_PA10_FMP /*!< Enable Fast Mode Plus on PA10 */
128 #define LL_SYSCFG_I2C_FASTMODEPLUS_PC14 SYSCFG_CFGR1_I2C_PC14_FMP /*!< Enable Fast Mode Plus on PC14 */
129 /**
130 * @}
131 */
132
133 /** @defgroup SYSTEM_LL_EC_TIMBREAK SYSCFG TIMER BREAK
134 * @{
135 */
136 #define LL_SYSCFG_TIMBREAK_LOCKUP SYSCFG_CFGR2_CLL /*!< Enables and locks the LOCKUP (Hardfault) output of
137 CortexM0 with Break Input of TIM1/16/17 */
138 /**
139 * @}
140 */
141
142 /** @defgroup SYSTEM_LL_EC_APB1_GRP1_STOP_IP DBGMCU APB1 GRP1 STOP IP
143 * @{
144 */
145 #define LL_DBGMCU_APB1_GRP1_TIM3_STOP DBG_APB_FZ1_DBG_TIM3_STOP /*!< TIM3 counter stopped when core is halted */
146 #define LL_DBGMCU_APB1_GRP1_RTC_STOP DBG_APB_FZ1_DBG_RTC_STOP /*!< RTC Calendar frozen when core is halted */
147 #define LL_DBGMCU_APB1_GRP1_WWDG_STOP DBG_APB_FZ1_DBG_WWDG_STOP /*!< Debug Window Watchdog stopped when Core is halted */
148 #define LL_DBGMCU_APB1_GRP1_IWDG_STOP DBG_APB_FZ1_DBG_IWDG_STOP /*!< Debug Independent Watchdog stopped when Core is halted */
149 #define LL_DBGMCU_APB1_GRP1_I2C1_STOP DBG_APB_FZ1_DBG_I2C1_SMBUS_TIMEOUT_STOP /*!< I2C1 SMBUS timeout mode stopped when Core is halted */
150
151 /**
152 * @}
153 */
154
155 /** @defgroup SYSTEM_LL_EC_APB2_GRP1_STOP_IP DBGMCU APB2 GRP1 STOP IP
156 * @{
157 */
158 #define LL_DBGMCU_APB2_GRP1_TIM1_STOP DBG_APB_FZ2_DBG_TIM1_STOP /*!< TIM1 counter stopped when core is halted */
159 #if defined(DBG_APB_FZ2_DBG_TIM14_STOP)
160 #define LL_DBGMCU_APB2_GRP1_TIM14_STOP DBG_APB_FZ2_DBG_TIM14_STOP /*!< TIM14 counter stopped when core is halted */
161 #endif /* DBG_APB_FZ2_DBG_TIM14_STOP */
162 #define LL_DBGMCU_APB2_GRP1_TIM16_STOP DBG_APB_FZ2_DBG_TIM16_STOP /*!< TIM16 counter stopped when core is halted */
163 #define LL_DBGMCU_APB2_GRP1_TIM17_STOP DBG_APB_FZ2_DBG_TIM17_STOP /*!< TIM17 counter stopped when core is halted */
164 /**
165 * @}
166 */
167
168 /** @defgroup SYSTEM_LL_EC_LATENCY FLASH LATENCY
169 * @{
170 */
171 #define LL_FLASH_LATENCY_0 0x00000000U /*!< FLASH Zero Latency cycle */
172 #define LL_FLASH_LATENCY_1 FLASH_ACR_LATENCY_0 /*!< FLASH One Latency cycle */
173
174 /**
175 * @}
176 */
177
178 /** @defgroup SYSTEM_LL_PINMUX_CFG PINMUX Config
179 * @{
180 */
181 #if (DEV_ID == 0x443UL)
182 #define LL_PINMUX_SO8_PIN1_PB7 (((SYSCFG_CFGR3_PINMUX0_0 | SYSCFG_CFGR3_PINMUX0_1) << 16U) | 0x00000000U) /*!< STM32C011 SO8 package, Pin1 assigned to GPIO PB7 */
183 #define LL_PINMUX_SO8_PIN1_PC14 (((SYSCFG_CFGR3_PINMUX0_0 | SYSCFG_CFGR3_PINMUX0_1) << 16U) | SYSCFG_CFGR3_PINMUX0_0) /*!< STM32C011 SO8 package, Pin1 assigned to GPIO PC14 */
184 #define LL_PINMUX_SO8_PIN4_PF2 (((SYSCFG_CFGR3_PINMUX1_0 | SYSCFG_CFGR3_PINMUX1_1) << 16U) | 0x00000000U) /*!< STM32C011 SO8 package, Pin4 assigned to GPIO PF2 */
185 #define LL_PINMUX_SO8_PIN4_PA0 (((SYSCFG_CFGR3_PINMUX1_0 | SYSCFG_CFGR3_PINMUX1_1) << 16U) | SYSCFG_CFGR3_PINMUX1_0) /*!< STM32C011 SO8 package, Pin4 assigned to GPIO PA0 */
186 #define LL_PINMUX_SO8_PIN4_PA1 (((SYSCFG_CFGR3_PINMUX1_0 | SYSCFG_CFGR3_PINMUX1_1) << 16U) | SYSCFG_CFGR3_PINMUX1_1) /*!< STM32C011 SO8 package, Pin4 assigned to GPIO PA1 */
187 #define LL_PINMUX_SO8_PIN4_PA2 (((SYSCFG_CFGR3_PINMUX1_0 | SYSCFG_CFGR3_PINMUX1_1) << 16U) | SYSCFG_CFGR3_PINMUX1_0 | SYSCFG_CFGR3_PINMUX1_1) /*!< STM32C011 SO8 package, Pin4 assigned to GPIO PA2 */
188 #define LL_PINMUX_SO8_PIN5_PA8 (((SYSCFG_CFGR3_PINMUX2_0 | SYSCFG_CFGR3_PINMUX2_1) << 16U) | 0x00000000U) /*!< STM32C011 SO8 package, Pin5 assigned to GPIO PA8 */
189 #define LL_PINMUX_SO8_PIN5_PA11 (((SYSCFG_CFGR3_PINMUX2_0 | SYSCFG_CFGR3_PINMUX2_1) << 16U) | SYSCFG_CFGR3_PINMUX2_0) /*!< STM32C011 SO8 package, Pin5 assigned to GPIO PA11 */
190 #define LL_PINMUX_SO8_PIN8_PA14 (((SYSCFG_CFGR3_PINMUX3_0 | SYSCFG_CFGR3_PINMUX3_1) << 16U) | 0x00000000U) /*!< STM32C011 SO8 package, Pin8 assigned to GPIO PA14 */
191 #define LL_PINMUX_SO8_PIN8_PB6 (((SYSCFG_CFGR3_PINMUX3_0 | SYSCFG_CFGR3_PINMUX3_1) << 16U) | SYSCFG_CFGR3_PINMUX3_0) /*!< STM32C011 SO8 package, Pin8 assigned to GPIO PB6 */
192 #define LL_PINMUX_SO8_PIN8_PC15 (((SYSCFG_CFGR3_PINMUX3_0 | SYSCFG_CFGR3_PINMUX3_1) << 16U) | SYSCFG_CFGR3_PINMUX3_1) /*!< STM32C011 SO8 package, Pin8 assigned to GPIO PC15 */
193 #define LL_PINMUX_WLCSP12_PINE2_PA7 (((SYSCFG_CFGR3_PINMUX4_0 | SYSCFG_CFGR3_PINMUX4_1) << 16U) | 0x00000000U) /*!< STM32C011 WLCSP12 package, PinE2 assigned to GPIO PA7 */
194 #define LL_PINMUX_WLCSP12_PINE2_PA12 (((SYSCFG_CFGR3_PINMUX4_0 | SYSCFG_CFGR3_PINMUX4_1) << 16U) | SYSCFG_CFGR3_PINMUX4_0) /*!< STM32C011 WLCSP12 package, PinE2 assigned to GPIO PA12 */
195 #define LL_PINMUX_WLCSP12_PINF1_PA3 (((SYSCFG_CFGR3_PINMUX5_0 | SYSCFG_CFGR3_PINMUX5_1) << 16U) | 0x00000000U) /*!< STM32C011 WLCSP12 package, PinF1 assigned to GPIO PA3*/
196 #define LL_PINMUX_WLCSP12_PINF1_PA4 (((SYSCFG_CFGR3_PINMUX5_0 | SYSCFG_CFGR3_PINMUX5_1) << 16U) | SYSCFG_CFGR3_PINMUX5_0) /*!< STM32C011 WLCSP12 package, PinF1 assigned to GPIO PA4 */
197 #define LL_PINMUX_WLCSP12_PINF1_PA5 (((SYSCFG_CFGR3_PINMUX5_0 | SYSCFG_CFGR3_PINMUX5_1) << 16U) | SYSCFG_CFGR3_PINMUX5_1) /*!< STM32C011 WLCSP12 package, PinF1 assigned to GPIO PA5 */
198 #define LL_PINMUX_WLCSP12_PINF1_PA6 (((SYSCFG_CFGR3_PINMUX5_0 | SYSCFG_CFGR3_PINMUX5_1) << 16U) | SYSCFG_CFGR3_PINMUX5_0 | SYSCFG_CFGR3_PINMUX5_1) /*!< STM32C011 WLCSP12 package, PinF1 assigned to GPIO PA6 */
199
200 #elif (DEV_ID == 0x453UL)
201 #define LL_PINMUX_WLCSP14_PINF2_PA1 (((SYSCFG_CFGR3_PINMUX0_0 | SYSCFG_CFGR3_PINMUX0_1) << 16U) | 0x00000000U) /*!< STM32C031 WLCSP14 package, PinF2 assigned to GPIO PA1 */
202 #define LL_PINMUX_WLCSP14_PINF2_PA2 (((SYSCFG_CFGR3_PINMUX0_0 | SYSCFG_CFGR3_PINMUX0_1) << 16U) | SYSCFG_CFGR3_PINMUX0_0) /*!< STM32C031 WLCSP14 package, PinF2 assigned to GPIO PA2 */
203 #define LL_PINMUX_WLCSP14_PING3_PF2 (((SYSCFG_CFGR3_PINMUX1_0 | SYSCFG_CFGR3_PINMUX1_1) << 16U) | 0x00000000U) /*!< STM32C031 WLCSP14 package, PinG3 assigned to GPIO PF2 */
204 #define LL_PINMUX_WLCSP14_PING3_PA0 (((SYSCFG_CFGR3_PINMUX1_0 | SYSCFG_CFGR3_PINMUX1_1) << 16U) | SYSCFG_CFGR3_PINMUX1_0) /*!< STM32C031 WLCSP14 package, PinG3 assigned to GPIO PA0 */
205 #define LL_PINMUX_WLCSP14_PINJ1_PA8 (((SYSCFG_CFGR3_PINMUX2_0 | SYSCFG_CFGR3_PINMUX2_1) << 16U) | 0x00000000U) /*!< STM32C031 WLCSP14 package, PinJ1 assigned to GPIO PA8 */
206 #define LL_PINMUX_WLCSP14_PINJ1_PA11 (((SYSCFG_CFGR3_PINMUX2_0 | SYSCFG_CFGR3_PINMUX2_1) << 16U) | SYSCFG_CFGR3_PINMUX2_0) /*!< STM32C031 WLCSP14 package, PinJ1 assigned to GPIO PA11 */
207 #define LL_PINMUX_WLCSP14_PINH2_PA5 (((SYSCFG_CFGR3_PINMUX3_0 | SYSCFG_CFGR3_PINMUX3_1) << 16U) | 0x00000000U) /*!< STM32C031 WLCSP14 package, PinH2 assigned to GPIO PA5 */
208 #define LL_PINMUX_WLCSP14_PINH2_PA6 (((SYSCFG_CFGR3_PINMUX3_0 | SYSCFG_CFGR3_PINMUX3_1) << 16U) | SYSCFG_CFGR3_PINMUX3_0) /*!< STM32C031 WLCSP14 package, PinH2 assigned to GPIO PA6 */
209 #define LL_PINMUX_WLCSP14_PING1_PA7 (((SYSCFG_CFGR3_PINMUX4_0 | SYSCFG_CFGR3_PINMUX4_1) << 16U) | 0x00000000U) /*!< STM32C031 WLCSP14 package, PinG1 assigned to GPIO PA7 */
210 #define LL_PINMUX_WLCSP14_PING1_PA12 (((SYSCFG_CFGR3_PINMUX4_0 | SYSCFG_CFGR3_PINMUX4_1) << 16U) | SYSCFG_CFGR3_PINMUX4_0) /*!< STM32C031 WLCSP14 package, PinG1 assigned to GPIO PA12 */
211 #define LL_PINMUX_WLCSP14_PINJ3_PA3 (((SYSCFG_CFGR3_PINMUX5_0 | SYSCFG_CFGR3_PINMUX5_1) << 16U) | 0x00000000U) /*!< STM32C031 WLCSP14 package, PinJ3 assigned to GPIO PA3 */
212 #define LL_PINMUX_WLCSP14_PINJ3_PA4 (((SYSCFG_CFGR3_PINMUX5_0 | SYSCFG_CFGR3_PINMUX5_1) << 16U) | SYSCFG_CFGR3_PINMUX5_0) /*!< STM32C031 WLCSP14 package, PinJ3 assigned to GPIO PA4 */
213 #endif /* DEV_ID == 0x443UL */
214 /**
215 * @}
216 */
217
218 /** @defgroup SYSTEM_LL_PINMUX_SOURCE PINMUX Config Source
219 * @{
220 */
221 #if (DEV_ID == 0x443UL)
222 #define LL_PINMUX_SO8_PIN1 (SYSCFG_CFGR3_PINMUX0_0 | SYSCFG_CFGR3_PINMUX0_1) /*!< STM32C011 SO8 package, GPIO Pin1 multiplexer */
223 #define LL_PINMUX_SO8_PIN4 (SYSCFG_CFGR3_PINMUX1_0 | SYSCFG_CFGR3_PINMUX1_1) /*!< STM32C011 SO8 package, GPIO Pin4 multiplexer */
224 #define LL_PINMUX_SO8_PIN5 (SYSCFG_CFGR3_PINMUX2_0 | SYSCFG_CFGR3_PINMUX2_1) /*!< STM32C011 SO8 package, GPIO Pin5 multiplexer */
225 #define LL_PINMUX_SO8_PIN8 (SYSCFG_CFGR3_PINMUX3_0 | SYSCFG_CFGR3_PINMUX3_1) /*!< STM32C011 SO8 package, GPIO Pin8 multiplexer */
226 #define LL_PINMUX_WLCSP12_PINE2 (SYSCFG_CFGR3_PINMUX4_0 | SYSCFG_CFGR3_PINMUX4_1) /*!< STM32C011 WLCSP12 package, GPIO PinE2 multiplexer */
227 #define LL_PINMUX_WLCSP12_PINF1 (SYSCFG_CFGR3_PINMUX5_0 | SYSCFG_CFGR3_PINMUX5_1) /*!< STM32C011 WLCSP12 package, GPIO PinF1 multiplexer */
228 #elif (DEV_ID == 0x453UL)
229 #define LL_PINMUX_WLCSP14_PINF2 (SYSCFG_CFGR3_PINMUX0_0 | SYSCFG_CFGR3_PINMUX0_1) /*!< STM32C031 WLCSP14 package, GPIO PinF2 multiplexer */
230 #define LL_PINMUX_WLCSP14_PING3 (SYSCFG_CFGR3_PINMUX1_0 | SYSCFG_CFGR3_PINMUX1_1) /*!< STM32C031 WLCSP14 package, GPIO PinG3 multiplexer */
231 #define LL_PINMUX_WLCSP14_PINJ1 (SYSCFG_CFGR3_PINMUX2_0 | SYSCFG_CFGR3_PINMUX2_1) /*!< STM32C031 WLCSP14 package, GPIO PinJ1 multiplexer */
232 #define LL_PINMUX_WLCSP14_PINH2 (SYSCFG_CFGR3_PINMUX3_0 | SYSCFG_CFGR3_PINMUX3_1) /*!< STM32C031 WLCSP14 package, GPIO PinH2 multiplexer */
233 #define LL_PINMUX_WLCSP14_PING1 (SYSCFG_CFGR3_PINMUX4_0 | SYSCFG_CFGR3_PINMUX4_1) /*!< STM32C031 WLCSP14 package, GPIO PinG1 multiplexer */
234 #define LL_PINMUX_WLCSP14_PINJ3 (SYSCFG_CFGR3_PINMUX5_0 | SYSCFG_CFGR3_PINMUX5_1) /*!< STM32C031 WLCSP14 package, GPIO PinJ3 multiplexer */
235 #endif /* DEV_ID == 0x443UL */
236 /**
237 * @}
238 */
239
240 /**
241 * @}
242 */
243
244 /* Exported macro ------------------------------------------------------------*/
245
246 /* Exported functions --------------------------------------------------------*/
247 /** @defgroup SYSTEM_LL_Exported_Functions SYSTEM Exported Functions
248 * @{
249 */
250
251 /** @defgroup SYSTEM_LL_EF_SYSCFG SYSCFG
252 * @{
253 */
254
255 /**
256 * @brief Set memory mapping at address 0x00000000
257 * @rmtoll SYSCFG_CFGR1 MEM_MODE LL_SYSCFG_SetRemapMemory
258 * @param Memory This parameter can be one of the following values:
259 * @arg @ref LL_SYSCFG_REMAP_FLASH
260 * @arg @ref LL_SYSCFG_REMAP_SYSTEMFLASH
261 * @arg @ref LL_SYSCFG_REMAP_SRAM
262 * @retval None
263 */
LL_SYSCFG_SetRemapMemory(uint32_t Memory)264 __STATIC_INLINE void LL_SYSCFG_SetRemapMemory(uint32_t Memory)
265 {
266 MODIFY_REG(SYSCFG->CFGR1, SYSCFG_CFGR1_MEM_MODE, Memory);
267 }
268
269 /**
270 * @brief Get memory mapping at address 0x00000000
271 * @rmtoll SYSCFG_CFGR1 MEM_MODE LL_SYSCFG_GetRemapMemory
272 * @retval Returned value can be one of the following values:
273 * @arg @ref LL_SYSCFG_REMAP_FLASH
274 * @arg @ref LL_SYSCFG_REMAP_SYSTEMFLASH
275 * @arg @ref LL_SYSCFG_REMAP_SRAM
276 */
LL_SYSCFG_GetRemapMemory(void)277 __STATIC_INLINE uint32_t LL_SYSCFG_GetRemapMemory(void)
278 {
279 return (uint32_t)(READ_BIT(SYSCFG->CFGR1, SYSCFG_CFGR1_MEM_MODE));
280 }
281
282 /**
283 * @brief Enable remap of a pin on different pad
284 * @rmtoll SYSCFG_CFGR1 PA11_RMP LL_SYSCFG_EnablePinRemap\n
285 * SYSCFG_CFGR1 PA12_RMP LL_SYSCFG_EnablePinRemap\n
286 * @param PinRemap This parameter can be a combination of the following values:
287 * @arg @ref LL_SYSCFG_PIN_RMP_PA11
288 * @arg @ref LL_SYSCFG_PIN_RMP_PA12
289 * @retval None
290 */
LL_SYSCFG_EnablePinRemap(uint32_t PinRemap)291 __STATIC_INLINE void LL_SYSCFG_EnablePinRemap(uint32_t PinRemap)
292 {
293 SET_BIT(SYSCFG->CFGR1, PinRemap);
294 }
295
296 /**
297 * @brief Enable remap of a pin on different pad
298 * @rmtoll SYSCFG_CFGR1 PA11_RMP LL_SYSCFG_DisablePinRemap\n
299 * SYSCFG_CFGR1 PA12_RMP LL_SYSCFG_DisablePinRemap\n
300 * @param PinRemap This parameter can be a combination of the following values:
301 * @arg @ref LL_SYSCFG_PIN_RMP_PA11
302 * @arg @ref LL_SYSCFG_PIN_RMP_PA12
303 * @retval None
304 */
LL_SYSCFG_DisablePinRemap(uint32_t PinRemap)305 __STATIC_INLINE void LL_SYSCFG_DisablePinRemap(uint32_t PinRemap)
306 {
307 CLEAR_BIT(SYSCFG->CFGR1, PinRemap);
308 }
309
310 /**
311 * @brief Set IR Modulation Envelope signal source.
312 * @rmtoll SYSCFG_CFGR1 IR_MOD LL_SYSCFG_SetIRModEnvelopeSignal
313 * @param Source This parameter can be one of the following values:
314 * @arg @ref LL_SYSCFG_IR_MOD_TIM16
315 * @arg @ref LL_SYSCFG_IR_MOD_USART1
316 * @arg @ref LL_SYSCFG_IR_MOD_USART2
317 * @retval None
318 */
LL_SYSCFG_SetIRModEnvelopeSignal(uint32_t Source)319 __STATIC_INLINE void LL_SYSCFG_SetIRModEnvelopeSignal(uint32_t Source)
320 {
321 MODIFY_REG(SYSCFG->CFGR1, SYSCFG_CFGR1_IR_MOD, Source);
322 }
323
324 /**
325 * @brief Get IR Modulation Envelope signal source.
326 * @rmtoll SYSCFG_CFGR1 IR_MOD LL_SYSCFG_GetIRModEnvelopeSignal
327 * @retval Returned value can be one of the following values:
328 * @arg @ref LL_SYSCFG_IR_MOD_TIM16
329 * @arg @ref LL_SYSCFG_IR_MOD_USART1
330 * @arg @ref LL_SYSCFG_IR_MOD_USART2
331 */
LL_SYSCFG_GetIRModEnvelopeSignal(void)332 __STATIC_INLINE uint32_t LL_SYSCFG_GetIRModEnvelopeSignal(void)
333 {
334 return (uint32_t)(READ_BIT(SYSCFG->CFGR1, SYSCFG_CFGR1_IR_MOD));
335 }
336
337 /**
338 * @brief Set IR Output polarity.
339 * @rmtoll SYSCFG_CFGR1 IR_POL LL_SYSCFG_SetIRPolarity
340 * @param Polarity This parameter can be one of the following values:
341 * @arg @ref LL_SYSCFG_IR_POL_INVERTED
342 * @arg @ref LL_SYSCFG_IR_POL_NOT_INVERTED
343 * @retval None
344 */
LL_SYSCFG_SetIRPolarity(uint32_t Polarity)345 __STATIC_INLINE void LL_SYSCFG_SetIRPolarity(uint32_t Polarity)
346 {
347 MODIFY_REG(SYSCFG->CFGR1, SYSCFG_CFGR1_IR_POL, Polarity);
348 }
349
350 /**
351 * @brief Get IR Output polarity.
352 * @rmtoll SYSCFG_CFGR1 IR_POL LL_SYSCFG_GetIRPolarity
353 * @retval Returned value can be one of the following values:
354 * @arg @ref LL_SYSCFG_IR_POL_INVERTED
355 * @arg @ref LL_SYSCFG_IR_POL_NOT_INVERTED
356 */
LL_SYSCFG_GetIRPolarity(void)357 __STATIC_INLINE uint32_t LL_SYSCFG_GetIRPolarity(void)
358 {
359 return (uint32_t)(READ_BIT(SYSCFG->CFGR1, SYSCFG_CFGR1_IR_POL));
360 }
361
362
363 /**
364 * @brief Enable the I2C fast mode plus driving capability.
365 * @rmtoll SYSCFG_CFGR1 I2C_FMP_PB6 LL_SYSCFG_EnableFastModePlus\n
366 * SYSCFG_CFGR1 I2C_FMP_PB7 LL_SYSCFG_EnableFastModePlus\n
367 * SYSCFG_CFGR1 I2C_FMP_PB8 LL_SYSCFG_EnableFastModePlus\n
368 * SYSCFG_CFGR1 I2C_FMP_PB9 LL_SYSCFG_EnableFastModePlus\n
369 * SYSCFG_CFGR1 I2C_FMP_I2C1 LL_SYSCFG_EnableFastModePlus\n
370 * SYSCFG_CFGR1 I2C_FMP_PA9 LL_SYSCFG_EnableFastModePlus\n
371 * SYSCFG_CFGR1 I2C_FMP_PA10 LL_SYSCFG_EnableFastModePlus
372 * SYSCFG_CFGR1 I2C_FMP_PC14 LL_SYSCFG_EnableFastModePlus
373 * @param ConfigFastModePlus This parameter can be a combination of the following values:
374 * @arg @ref LL_SYSCFG_I2C_FASTMODEPLUS_PB6
375 * @arg @ref LL_SYSCFG_I2C_FASTMODEPLUS_PB7
376 * @arg @ref LL_SYSCFG_I2C_FASTMODEPLUS_PB8
377 * @arg @ref LL_SYSCFG_I2C_FASTMODEPLUS_PB9
378 * @arg @ref LL_SYSCFG_I2C_FASTMODEPLUS_I2C1
379 * @arg @ref LL_SYSCFG_I2C_FASTMODEPLUS_PA9
380 * @arg @ref LL_SYSCFG_I2C_FASTMODEPLUS_PA10
381 * @arg @ref LL_SYSCFG_I2C_FASTMODEPLUS_PC14
382 *
383 * @retval None
384 */
LL_SYSCFG_EnableFastModePlus(uint32_t ConfigFastModePlus)385 __STATIC_INLINE void LL_SYSCFG_EnableFastModePlus(uint32_t ConfigFastModePlus)
386 {
387 SET_BIT(SYSCFG->CFGR1, ConfigFastModePlus);
388 }
389
390 /**
391 * @brief Disable the I2C fast mode plus driving capability.
392 * @rmtoll SYSCFG_CFGR1 I2C_FMP_PB6 LL_SYSCFG_DisableFastModePlus\n
393 * SYSCFG_CFGR1 I2C_FMP_PB7 LL_SYSCFG_DisableFastModePlus\n
394 * SYSCFG_CFGR1 I2C_FMP_PB8 LL_SYSCFG_DisableFastModePlus\n
395 * SYSCFG_CFGR1 I2C_FMP_PB9 LL_SYSCFG_DisableFastModePlus\n
396 * SYSCFG_CFGR1 I2C_FMP_I2C1 LL_SYSCFG_DisableFastModePlus\n
397 * SYSCFG_CFGR1 I2C_FMP_PA9 LL_SYSCFG_DisableFastModePlus\n
398 * SYSCFG_CFGR1 I2C_FMP_PA10 LL_SYSCFG_DisableFastModePlus
399 * SYSCFG_CFGR1 I2C_FMP_PC14 LL_SYSCFG_EnableFastModePlus
400 * @param ConfigFastModePlus This parameter can be a combination of the following values:
401 * @arg @ref LL_SYSCFG_I2C_FASTMODEPLUS_PB6
402 * @arg @ref LL_SYSCFG_I2C_FASTMODEPLUS_PB7
403 * @arg @ref LL_SYSCFG_I2C_FASTMODEPLUS_PB8
404 * @arg @ref LL_SYSCFG_I2C_FASTMODEPLUS_PB9
405 * @arg @ref LL_SYSCFG_I2C_FASTMODEPLUS_I2C1
406 * @arg @ref LL_SYSCFG_I2C_FASTMODEPLUS_PA9
407 * @arg @ref LL_SYSCFG_I2C_FASTMODEPLUS_PA10
408 * @arg @ref LL_SYSCFG_I2C_FASTMODEPLUS_PC14
409 *
410 * @retval None
411 */
LL_SYSCFG_DisableFastModePlus(uint32_t ConfigFastModePlus)412 __STATIC_INLINE void LL_SYSCFG_DisableFastModePlus(uint32_t ConfigFastModePlus)
413 {
414 CLEAR_BIT(SYSCFG->CFGR1, ConfigFastModePlus);
415 }
416
417 /**
418 * @brief Set connections to TIM1/16/17 Break inputs
419 * @rmtoll SYSCFG_CFGR2 CLL LL_SYSCFG_SetTIMBreakInputs\n
420 * @param Break This parameter can be a combination of the following values:
421 * @arg @ref LL_SYSCFG_TIMBREAK_LOCKUP
422 * @retval None
423 */
LL_SYSCFG_SetTIMBreakInputs(uint32_t Break)424 __STATIC_INLINE void LL_SYSCFG_SetTIMBreakInputs(uint32_t Break)
425 {
426 MODIFY_REG(SYSCFG->CFGR2, SYSCFG_CFGR2_CLL, Break);
427 }
428
429 /**
430 * @brief Get connections to TIM1/16/17 Break inputs
431 * @rmtoll SYSCFG_CFGR2 CLL LL_SYSCFG_GetTIMBreakInputs\n
432 * @retval Returned value can be can be a combination of the following values:
433 * @arg @ref LL_SYSCFG_TIMBREAK_LOCKUP
434 */
LL_SYSCFG_GetTIMBreakInputs(void)435 __STATIC_INLINE uint32_t LL_SYSCFG_GetTIMBreakInputs(void)
436 {
437 return (uint32_t)(READ_BIT(SYSCFG->CFGR2, SYSCFG_CFGR2_CLL));
438 }
439
440 /**
441 * @brief Config PinMux
442 * @rmtoll SYSCFG_CFGR3 CLL LL_SYSCFG_ConfigPinMux\n
443 * @param mux_cfg This parameter can be a value of @ref SYSTEM_LL_PINMUX_CFG
444 * @retval None
445 */
LL_SYSCFG_ConfigPinMux(uint32_t mux_cfg)446 __STATIC_INLINE void LL_SYSCFG_ConfigPinMux(uint32_t mux_cfg)
447 {
448 MODIFY_REG(SYSCFG->CFGR3, (mux_cfg >> 16U), (mux_cfg & 0x0000FFFFU));
449 }
450
451 /**
452 * @brief Get PinMux configuration
453 * @rmtoll SYSCFG_CFGR3 CLL LL_SYSCFG_GetConfigPinMux\n
454 * @param LL_PINMUX_PACKx_PINy This parameter can be a value of @ref SYSTEM_LL_PINMUX_SOURCE
455 * @retval Returned value can be one of SYSTEM_LL_PINMUX_CFG defines
456 */
LL_SYSCFG_GetConfigPinMux(uint32_t LL_PINMUX_PACKx_PINy)457 __STATIC_INLINE uint32_t LL_SYSCFG_GetConfigPinMux(uint32_t LL_PINMUX_PACKx_PINy)
458 {
459 return (uint32_t)(READ_BIT(SYSCFG->CFGR3, LL_PINMUX_PACKx_PINy) | (LL_PINMUX_PACKx_PINy << 16U));
460 }
461
462 #if defined(SYSCFG_ITLINE0_SR_EWDG)
463 /**
464 * @brief Check if Window watchdog interrupt occurred or not.
465 * @rmtoll SYSCFG_ITLINE0 SR_EWDG LL_SYSCFG_IsActiveFlag_WWDG
466 * @retval State of bit (1 or 0).
467 */
LL_SYSCFG_IsActiveFlag_WWDG(void)468 __STATIC_INLINE uint32_t LL_SYSCFG_IsActiveFlag_WWDG(void)
469 {
470 return ((READ_BIT(SYSCFG->IT_LINE_SR[0], SYSCFG_ITLINE0_SR_EWDG) == (SYSCFG_ITLINE0_SR_EWDG)) ? 1UL : 0UL);
471 }
472 #endif /* SYSCFG_ITLINE0_SR_EWDG */
473
474 #if defined(SYSCFG_ITLINE2_SR_RTC)
475 /**
476 * @brief Check if RTC interrupt occurred or not (EXTI line 19).
477 * @rmtoll SYSCFG_ITLINE2 SR_RTC LL_SYSCFG_IsActiveFlag_RTC
478 * @retval State of bit (1 or 0).
479 */
LL_SYSCFG_IsActiveFlag_RTC(void)480 __STATIC_INLINE uint32_t LL_SYSCFG_IsActiveFlag_RTC(void)
481 {
482 return ((READ_BIT(SYSCFG->IT_LINE_SR[2], SYSCFG_ITLINE2_SR_RTC) == (SYSCFG_ITLINE2_SR_RTC)) ? 1UL : 0UL);
483 }
484 #endif /* SYSCFG_ITLINE2_SR_RTC */
485
486 #if defined(SYSCFG_ITLINE3_SR_FLASH_ITF)
487 /**
488 * @brief Check if Flash interface interrupt occurred or not.
489 * @rmtoll SYSCFG_ITLINE3 SR_FLASH_ITF LL_SYSCFG_IsActiveFlag_FLASH_ITF
490 * @retval State of bit (1 or 0).
491 */
LL_SYSCFG_IsActiveFlag_FLASH_ITF(void)492 __STATIC_INLINE uint32_t LL_SYSCFG_IsActiveFlag_FLASH_ITF(void)
493 {
494 return ((READ_BIT(SYSCFG->IT_LINE_SR[3], SYSCFG_ITLINE3_SR_FLASH_ITF) == (SYSCFG_ITLINE3_SR_FLASH_ITF)) ? 1UL : 0UL);
495 }
496 #endif /* SYSCFG_ITLINE3_SR_FLASH_ITF */
497
498
499 #if defined(SYSCFG_ITLINE4_SR_CLK_CTRL)
500 /**
501 * @brief Check if Reset and clock control interrupt occurred or not.
502 * @rmtoll SYSCFG_ITLINE4 SR_CLK_CTRL LL_SYSCFG_IsActiveFlag_CLK_CTRL
503 * @retval State of bit (1 or 0).
504 */
LL_SYSCFG_IsActiveFlag_CLK_CTRL(void)505 __STATIC_INLINE uint32_t LL_SYSCFG_IsActiveFlag_CLK_CTRL(void)
506 {
507 return ((READ_BIT(SYSCFG->IT_LINE_SR[4], SYSCFG_ITLINE4_SR_CLK_CTRL) == (SYSCFG_ITLINE4_SR_CLK_CTRL)) ? 1UL : 0UL);
508 }
509 #endif /* SYSCFG_ITLINE4_SR_CLK_CTRL */
510
511 #if defined(SYSCFG_ITLINE5_SR_EXTI0)
512 /**
513 * @brief Check if EXTI line 0 interrupt occurred or not.
514 * @rmtoll SYSCFG_ITLINE5 SR_EXTI0 LL_SYSCFG_IsActiveFlag_EXTI0
515 * @retval State of bit (1 or 0).
516 */
LL_SYSCFG_IsActiveFlag_EXTI0(void)517 __STATIC_INLINE uint32_t LL_SYSCFG_IsActiveFlag_EXTI0(void)
518 {
519 return ((READ_BIT(SYSCFG->IT_LINE_SR[5], SYSCFG_ITLINE5_SR_EXTI0) == (SYSCFG_ITLINE5_SR_EXTI0)) ? 1UL : 0UL);
520 }
521 #endif /* SYSCFG_ITLINE5_SR_EXTI0 */
522
523 #if defined(SYSCFG_ITLINE5_SR_EXTI1)
524 /**
525 * @brief Check if EXTI line 1 interrupt occurred or not.
526 * @rmtoll SYSCFG_ITLINE5 SR_EXTI1 LL_SYSCFG_IsActiveFlag_EXTI1
527 * @retval State of bit (1 or 0).
528 */
LL_SYSCFG_IsActiveFlag_EXTI1(void)529 __STATIC_INLINE uint32_t LL_SYSCFG_IsActiveFlag_EXTI1(void)
530 {
531 return ((READ_BIT(SYSCFG->IT_LINE_SR[5], SYSCFG_ITLINE5_SR_EXTI1) == (SYSCFG_ITLINE5_SR_EXTI1)) ? 1UL : 0UL);
532 }
533 #endif /* SYSCFG_ITLINE5_SR_EXTI1 */
534
535 #if defined(SYSCFG_ITLINE6_SR_EXTI2)
536 /**
537 * @brief Check if EXTI line 2 interrupt occurred or not.
538 * @rmtoll SYSCFG_ITLINE6 SR_EXTI2 LL_SYSCFG_IsActiveFlag_EXTI2
539 * @retval State of bit (1 or 0).
540 */
LL_SYSCFG_IsActiveFlag_EXTI2(void)541 __STATIC_INLINE uint32_t LL_SYSCFG_IsActiveFlag_EXTI2(void)
542 {
543 return ((READ_BIT(SYSCFG->IT_LINE_SR[6], SYSCFG_ITLINE6_SR_EXTI2) == (SYSCFG_ITLINE6_SR_EXTI2)) ? 1UL : 0UL);
544 }
545 #endif /* SYSCFG_ITLINE6_SR_EXTI2 */
546
547 #if defined(SYSCFG_ITLINE6_SR_EXTI3)
548 /**
549 * @brief Check if EXTI line 3 interrupt occurred or not.
550 * @rmtoll SYSCFG_ITLINE6 SR_EXTI3 LL_SYSCFG_IsActiveFlag_EXTI3
551 * @retval State of bit (1 or 0).
552 */
LL_SYSCFG_IsActiveFlag_EXTI3(void)553 __STATIC_INLINE uint32_t LL_SYSCFG_IsActiveFlag_EXTI3(void)
554 {
555 return ((READ_BIT(SYSCFG->IT_LINE_SR[6], SYSCFG_ITLINE6_SR_EXTI3) == (SYSCFG_ITLINE6_SR_EXTI3)) ? 1UL : 0UL);
556 }
557 #endif /* SYSCFG_ITLINE6_SR_EXTI3 */
558
559 #if defined(SYSCFG_ITLINE7_SR_EXTI4)
560 /**
561 * @brief Check if EXTI line 4 interrupt occurred or not.
562 * @rmtoll SYSCFG_ITLINE7 SR_EXTI4 LL_SYSCFG_IsActiveFlag_EXTI4
563 * @retval State of bit (1 or 0).
564 */
LL_SYSCFG_IsActiveFlag_EXTI4(void)565 __STATIC_INLINE uint32_t LL_SYSCFG_IsActiveFlag_EXTI4(void)
566 {
567 return ((READ_BIT(SYSCFG->IT_LINE_SR[7], SYSCFG_ITLINE7_SR_EXTI4) == (SYSCFG_ITLINE7_SR_EXTI4)) ? 1UL : 0UL);
568 }
569 #endif /* SYSCFG_ITLINE7_SR_EXTI4 */
570
571 #if defined(SYSCFG_ITLINE7_SR_EXTI5)
572 /**
573 * @brief Check if EXTI line 5 interrupt occurred or not.
574 * @rmtoll SYSCFG_ITLINE7 SR_EXTI5 LL_SYSCFG_IsActiveFlag_EXTI5
575 * @retval State of bit (1 or 0).
576 */
LL_SYSCFG_IsActiveFlag_EXTI5(void)577 __STATIC_INLINE uint32_t LL_SYSCFG_IsActiveFlag_EXTI5(void)
578 {
579 return ((READ_BIT(SYSCFG->IT_LINE_SR[7], SYSCFG_ITLINE7_SR_EXTI5) == (SYSCFG_ITLINE7_SR_EXTI5)) ? 1UL : 0UL);
580 }
581 #endif /* SYSCFG_ITLINE7_SR_EXTI5 */
582
583 #if defined(SYSCFG_ITLINE7_SR_EXTI6)
584 /**
585 * @brief Check if EXTI line 6 interrupt occurred or not.
586 * @rmtoll SYSCFG_ITLINE7 SR_EXTI6 LL_SYSCFG_IsActiveFlag_EXTI6
587 * @retval State of bit (1 or 0).
588 */
LL_SYSCFG_IsActiveFlag_EXTI6(void)589 __STATIC_INLINE uint32_t LL_SYSCFG_IsActiveFlag_EXTI6(void)
590 {
591 return ((READ_BIT(SYSCFG->IT_LINE_SR[7], SYSCFG_ITLINE7_SR_EXTI6) == (SYSCFG_ITLINE7_SR_EXTI6)) ? 1UL : 0UL);
592 }
593 #endif /* SYSCFG_ITLINE7_SR_EXTI6 */
594
595 #if defined(SYSCFG_ITLINE7_SR_EXTI7)
596 /**
597 * @brief Check if EXTI line 7 interrupt occurred or not.
598 * @rmtoll SYSCFG_ITLINE7 SR_EXTI7 LL_SYSCFG_IsActiveFlag_EXTI7
599 * @retval State of bit (1 or 0).
600 */
LL_SYSCFG_IsActiveFlag_EXTI7(void)601 __STATIC_INLINE uint32_t LL_SYSCFG_IsActiveFlag_EXTI7(void)
602 {
603 return ((READ_BIT(SYSCFG->IT_LINE_SR[7], SYSCFG_ITLINE7_SR_EXTI7) == (SYSCFG_ITLINE7_SR_EXTI7)) ? 1UL : 0UL);
604 }
605 #endif /* SYSCFG_ITLINE7_SR_EXTI7 */
606
607 #if defined(SYSCFG_ITLINE7_SR_EXTI8)
608 /**
609 * @brief Check if EXTI line 8 interrupt occurred or not.
610 * @rmtoll SYSCFG_ITLINE7 SR_EXTI8 LL_SYSCFG_IsActiveFlag_EXTI8
611 * @retval State of bit (1 or 0).
612 */
LL_SYSCFG_IsActiveFlag_EXTI8(void)613 __STATIC_INLINE uint32_t LL_SYSCFG_IsActiveFlag_EXTI8(void)
614 {
615 return ((READ_BIT(SYSCFG->IT_LINE_SR[7], SYSCFG_ITLINE7_SR_EXTI8) == (SYSCFG_ITLINE7_SR_EXTI8)) ? 1UL : 0UL);
616 }
617 #endif /* SYSCFG_ITLINE7_SR_EXTI8 */
618
619 #if defined(SYSCFG_ITLINE7_SR_EXTI9)
620 /**
621 * @brief Check if EXTI line 9 interrupt occurred or not.
622 * @rmtoll SYSCFG_ITLINE7 SR_EXTI9 LL_SYSCFG_IsActiveFlag_EXTI9
623 * @retval State of bit (1 or 0).
624 */
LL_SYSCFG_IsActiveFlag_EXTI9(void)625 __STATIC_INLINE uint32_t LL_SYSCFG_IsActiveFlag_EXTI9(void)
626 {
627 return ((READ_BIT(SYSCFG->IT_LINE_SR[7], SYSCFG_ITLINE7_SR_EXTI9) == (SYSCFG_ITLINE7_SR_EXTI9)) ? 1UL : 0UL);
628 }
629 #endif /* SYSCFG_ITLINE7_SR_EXTI9 */
630
631 #if defined(SYSCFG_ITLINE7_SR_EXTI10)
632 /**
633 * @brief Check if EXTI line 10 interrupt occurred or not.
634 * @rmtoll SYSCFG_ITLINE7 SR_EXTI10 LL_SYSCFG_IsActiveFlag_EXTI10
635 * @retval State of bit (1 or 0).
636 */
LL_SYSCFG_IsActiveFlag_EXTI10(void)637 __STATIC_INLINE uint32_t LL_SYSCFG_IsActiveFlag_EXTI10(void)
638 {
639 return ((READ_BIT(SYSCFG->IT_LINE_SR[7], SYSCFG_ITLINE7_SR_EXTI10) == (SYSCFG_ITLINE7_SR_EXTI10)) ? 1UL : 0UL);
640 }
641 #endif /* SYSCFG_ITLINE7_SR_EXTI10 */
642
643 #if defined(SYSCFG_ITLINE7_SR_EXTI11)
644 /**
645 * @brief Check if EXTI line 11 interrupt occurred or not.
646 * @rmtoll SYSCFG_ITLINE7 SR_EXTI11 LL_SYSCFG_IsActiveFlag_EXTI11
647 * @retval State of bit (1 or 0).
648 */
LL_SYSCFG_IsActiveFlag_EXTI11(void)649 __STATIC_INLINE uint32_t LL_SYSCFG_IsActiveFlag_EXTI11(void)
650 {
651 return ((READ_BIT(SYSCFG->IT_LINE_SR[7], SYSCFG_ITLINE7_SR_EXTI11) == (SYSCFG_ITLINE7_SR_EXTI11)) ? 1UL : 0UL);
652 }
653 #endif /* SYSCFG_ITLINE7_SR_EXTI11 */
654
655 #if defined(SYSCFG_ITLINE7_SR_EXTI12)
656 /**
657 * @brief Check if EXTI line 12 interrupt occurred or not.
658 * @rmtoll SYSCFG_ITLINE7 SR_EXTI12 LL_SYSCFG_IsActiveFlag_EXTI12
659 * @retval State of bit (1 or 0).
660 */
LL_SYSCFG_IsActiveFlag_EXTI12(void)661 __STATIC_INLINE uint32_t LL_SYSCFG_IsActiveFlag_EXTI12(void)
662 {
663 return ((READ_BIT(SYSCFG->IT_LINE_SR[7], SYSCFG_ITLINE7_SR_EXTI12) == (SYSCFG_ITLINE7_SR_EXTI12)) ? 1UL : 0UL);
664 }
665 #endif /* SYSCFG_ITLINE7_SR_EXTI12 */
666
667 #if defined(SYSCFG_ITLINE7_SR_EXTI13)
668 /**
669 * @brief Check if EXTI line 13 interrupt occurred or not.
670 * @rmtoll SYSCFG_ITLINE7 SR_EXTI13 LL_SYSCFG_IsActiveFlag_EXTI13
671 * @retval State of bit (1 or 0).
672 */
LL_SYSCFG_IsActiveFlag_EXTI13(void)673 __STATIC_INLINE uint32_t LL_SYSCFG_IsActiveFlag_EXTI13(void)
674 {
675 return ((READ_BIT(SYSCFG->IT_LINE_SR[7], SYSCFG_ITLINE7_SR_EXTI13) == (SYSCFG_ITLINE7_SR_EXTI13)) ? 1UL : 0UL);
676 }
677 #endif /* SYSCFG_ITLINE7_SR_EXTI13 */
678
679 #if defined(SYSCFG_ITLINE7_SR_EXTI14)
680 /**
681 * @brief Check if EXTI line 14 interrupt occurred or not.
682 * @rmtoll SYSCFG_ITLINE7 SR_EXTI14 LL_SYSCFG_IsActiveFlag_EXTI14
683 * @retval State of bit (1 or 0).
684 */
LL_SYSCFG_IsActiveFlag_EXTI14(void)685 __STATIC_INLINE uint32_t LL_SYSCFG_IsActiveFlag_EXTI14(void)
686 {
687 return ((READ_BIT(SYSCFG->IT_LINE_SR[7], SYSCFG_ITLINE7_SR_EXTI14) == (SYSCFG_ITLINE7_SR_EXTI14)) ? 1UL : 0UL);
688 }
689 #endif /* SYSCFG_ITLINE7_SR_EXTI14 */
690
691 #if defined(SYSCFG_ITLINE7_SR_EXTI15)
692 /**
693 * @brief Check if EXTI line 15 interrupt occurred or not.
694 * @rmtoll SYSCFG_ITLINE7 SR_EXTI15 LL_SYSCFG_IsActiveFlag_EXTI15
695 * @retval State of bit (1 or 0).
696 */
LL_SYSCFG_IsActiveFlag_EXTI15(void)697 __STATIC_INLINE uint32_t LL_SYSCFG_IsActiveFlag_EXTI15(void)
698 {
699 return ((READ_BIT(SYSCFG->IT_LINE_SR[7], SYSCFG_ITLINE7_SR_EXTI15) == (SYSCFG_ITLINE7_SR_EXTI15)) ? 1UL : 0UL);
700 }
701 #endif /* SYSCFG_ITLINE7_SR_EXTI15 */
702
703
704 #if defined(SYSCFG_ITLINE9_SR_DMA1_CH1)
705 /**
706 * @brief Check if DMA1 channel 1 interrupt occurred or not.
707 * @rmtoll SYSCFG_ITLINE9 SR_DMA1_CH1 LL_SYSCFG_IsActiveFlag_DMA1_CH1
708 * @retval State of bit (1 or 0).
709 */
LL_SYSCFG_IsActiveFlag_DMA1_CH1(void)710 __STATIC_INLINE uint32_t LL_SYSCFG_IsActiveFlag_DMA1_CH1(void)
711 {
712 return ((READ_BIT(SYSCFG->IT_LINE_SR[9], SYSCFG_ITLINE9_SR_DMA1_CH1) == (SYSCFG_ITLINE9_SR_DMA1_CH1)) ? 1UL : 0UL);
713 }
714 #endif /* SYSCFG_ITLINE9_SR_DMA1_CH1 */
715
716 #if defined(SYSCFG_ITLINE10_SR_DMA1_CH2)
717 /**
718 * @brief Check if DMA1 channel 2 interrupt occurred or not.
719 * @rmtoll SYSCFG_ITLINE10 SR_DMA1_CH2 LL_SYSCFG_IsActiveFlag_DMA1_CH2
720 * @retval State of bit (1 or 0).
721 */
LL_SYSCFG_IsActiveFlag_DMA1_CH2(void)722 __STATIC_INLINE uint32_t LL_SYSCFG_IsActiveFlag_DMA1_CH2(void)
723 {
724 return ((READ_BIT(SYSCFG->IT_LINE_SR[10], SYSCFG_ITLINE10_SR_DMA1_CH2) == (SYSCFG_ITLINE10_SR_DMA1_CH2)) ? 1UL : 0UL);
725 }
726 #endif /* SYSCFG_ITLINE10_SR_DMA1_CH2 */
727
728 #if defined(SYSCFG_ITLINE10_SR_DMA1_CH3)
729 /**
730 * @brief Check if DMA1 channel 3 interrupt occurred or not.
731 * @rmtoll SYSCFG_ITLINE10 SR_DMA1_CH3 LL_SYSCFG_IsActiveFlag_DMA1_CH3
732 * @retval State of bit (1 or 0).
733 */
LL_SYSCFG_IsActiveFlag_DMA1_CH3(void)734 __STATIC_INLINE uint32_t LL_SYSCFG_IsActiveFlag_DMA1_CH3(void)
735 {
736 return ((READ_BIT(SYSCFG->IT_LINE_SR[10], SYSCFG_ITLINE10_SR_DMA1_CH3) == (SYSCFG_ITLINE10_SR_DMA1_CH3)) ? 1UL : 0UL);
737 }
738 #endif /* SYSCFG_ITLINE10_SR_DMA1_CH3 */
739
740
741 #if defined(SYSCFG_ITLINE11_SR_DMAMUX1)
742 /**
743 * @brief Check if DMAMUX interrupt occurred or not.
744 * @rmtoll SYSCFG_ITLINE11 SR_DMAMUX1 LL_SYSCFG_IsActiveFlag_DMAMUX
745 * @retval State of bit (1 or 0).
746 */
LL_SYSCFG_IsActiveFlag_DMAMUX(void)747 __STATIC_INLINE uint32_t LL_SYSCFG_IsActiveFlag_DMAMUX(void)
748 {
749 return ((READ_BIT(SYSCFG->IT_LINE_SR[11], SYSCFG_ITLINE11_SR_DMAMUX1) == (SYSCFG_ITLINE11_SR_DMAMUX1)) ? 1UL : 0UL);
750 }
751 #endif /* SYSCFG_ITLINE11_SR_DMAMUX */
752
753 #if defined(SYSCFG_ITLINE12_SR_ADC)
754 /**
755 * @brief Check if ADC interrupt occurred or not.
756 * @rmtoll SYSCFG_ITLINE12 SR_ADC LL_SYSCFG_IsActiveFlag_ADC
757 * @retval State of bit (1 or 0).
758 */
LL_SYSCFG_IsActiveFlag_ADC(void)759 __STATIC_INLINE uint32_t LL_SYSCFG_IsActiveFlag_ADC(void)
760 {
761 return ((READ_BIT(SYSCFG->IT_LINE_SR[12], SYSCFG_ITLINE12_SR_ADC) == (SYSCFG_ITLINE12_SR_ADC)) ? 1UL : 0UL);
762 }
763 #endif /* SYSCFG_ITLINE12_SR_ADC */
764
765 #if defined(SYSCFG_ITLINE13_SR_TIM1_BRK)
766 /**
767 * @brief Check if Timer 1 break interrupt occurred or not.
768 * @rmtoll SYSCFG_ITLINE13 SR_TIM1_BRK LL_SYSCFG_IsActiveFlag_TIM1_BRK
769 * @retval State of bit (1 or 0).
770 */
LL_SYSCFG_IsActiveFlag_TIM1_BRK(void)771 __STATIC_INLINE uint32_t LL_SYSCFG_IsActiveFlag_TIM1_BRK(void)
772 {
773 return ((READ_BIT(SYSCFG->IT_LINE_SR[13], SYSCFG_ITLINE13_SR_TIM1_BRK) == (SYSCFG_ITLINE13_SR_TIM1_BRK)) ? 1UL : 0UL);
774 }
775 #endif /* SYSCFG_ITLINE13_SR_TIM1_BRK */
776
777 #if defined(SYSCFG_ITLINE13_SR_TIM1_UPD)
778 /**
779 * @brief Check if Timer 1 update interrupt occurred or not.
780 * @rmtoll SYSCFG_ITLINE13 SR_TIM1_UPD LL_SYSCFG_IsActiveFlag_TIM1_UPD
781 * @retval State of bit (1 or 0).
782 */
LL_SYSCFG_IsActiveFlag_TIM1_UPD(void)783 __STATIC_INLINE uint32_t LL_SYSCFG_IsActiveFlag_TIM1_UPD(void)
784 {
785 return ((READ_BIT(SYSCFG->IT_LINE_SR[13], SYSCFG_ITLINE13_SR_TIM1_UPD) == (SYSCFG_ITLINE13_SR_TIM1_UPD)) ? 1UL : 0UL);
786 }
787 #endif /* SYSCFG_ITLINE13_SR_TIM1_UPD */
788
789 #if defined(SYSCFG_ITLINE13_SR_TIM1_TRG)
790 /**
791 * @brief Check if Timer 1 trigger interrupt occurred or not.
792 * @rmtoll SYSCFG_ITLINE13 SR_TIM1_TRG LL_SYSCFG_IsActiveFlag_TIM1_TRG
793 * @retval State of bit (1 or 0).
794 */
LL_SYSCFG_IsActiveFlag_TIM1_TRG(void)795 __STATIC_INLINE uint32_t LL_SYSCFG_IsActiveFlag_TIM1_TRG(void)
796 {
797 return ((READ_BIT(SYSCFG->IT_LINE_SR[13], SYSCFG_ITLINE13_SR_TIM1_TRG) == (SYSCFG_ITLINE13_SR_TIM1_TRG)) ? 1UL : 0UL);
798 }
799 #endif /* SYSCFG_ITLINE13_SR_TIM1_TRG */
800
801 #if defined(SYSCFG_ITLINE13_SR_TIM1_CCU)
802 /**
803 * @brief Check if Timer 1 commutation interrupt occurred or not.
804 * @rmtoll SYSCFG_ITLINE13 SR_TIM1_CCU LL_SYSCFG_IsActiveFlag_TIM1_CCU
805 * @retval State of bit (1 or 0).
806 */
LL_SYSCFG_IsActiveFlag_TIM1_CCU(void)807 __STATIC_INLINE uint32_t LL_SYSCFG_IsActiveFlag_TIM1_CCU(void)
808 {
809 return ((READ_BIT(SYSCFG->IT_LINE_SR[13], SYSCFG_ITLINE13_SR_TIM1_CCU) == (SYSCFG_ITLINE13_SR_TIM1_CCU)) ? 1UL : 0UL);
810 }
811 #endif /* SYSCFG_ITLINE13_SR_TIM1_CCU */
812
813 #if defined(SYSCFG_ITLINE14_SR_TIM1_CC)
814 /**
815 * @brief Check if Timer 1 capture compare interrupt occurred or not.
816 * @rmtoll SYSCFG_ITLINE14 SR_TIM1_CC LL_SYSCFG_IsActiveFlag_TIM1_CC
817 * @retval State of bit (1 or 0).
818 */
LL_SYSCFG_IsActiveFlag_TIM1_CC(void)819 __STATIC_INLINE uint32_t LL_SYSCFG_IsActiveFlag_TIM1_CC(void)
820 {
821 return ((READ_BIT(SYSCFG->IT_LINE_SR[14], SYSCFG_ITLINE14_SR_TIM1_CC) == (SYSCFG_ITLINE14_SR_TIM1_CC)) ? 1UL : 0UL);
822 }
823 #endif /* SYSCFG_ITLINE14_SR_TIM1_CC */
824
825
826 #if defined(SYSCFG_ITLINE16_SR_TIM3_GLB)
827 /**
828 * @brief Check if Timer 3 interrupt occurred or not.
829 * @rmtoll SYSCFG_ITLINE16 SR_TIM3_GLB LL_SYSCFG_IsActiveFlag_TIM3
830 * @retval State of bit (1 or 0).
831 */
LL_SYSCFG_IsActiveFlag_TIM3(void)832 __STATIC_INLINE uint32_t LL_SYSCFG_IsActiveFlag_TIM3(void)
833 {
834 return ((READ_BIT(SYSCFG->IT_LINE_SR[16], SYSCFG_ITLINE16_SR_TIM3_GLB) == (SYSCFG_ITLINE16_SR_TIM3_GLB)) ? 1UL : 0UL);
835 }
836 #endif /* SYSCFG_ITLINE16_SR_TIM3_GLB */
837
838 #if defined(SYSCFG_ITLINE19_SR_TIM14_GLB)
839 /**
840 * @brief Check if Timer 14 interrupt occurred or not.
841 * @rmtoll SYSCFG_ITLINE19 SR_TIM14_GLB LL_SYSCFG_IsActiveFlag_TIM14
842 * @retval State of bit (1 or 0).
843 */
LL_SYSCFG_IsActiveFlag_TIM14(void)844 __STATIC_INLINE uint32_t LL_SYSCFG_IsActiveFlag_TIM14(void)
845 {
846 return ((READ_BIT(SYSCFG->IT_LINE_SR[19], SYSCFG_ITLINE19_SR_TIM14_GLB) == (SYSCFG_ITLINE19_SR_TIM14_GLB)) ? 1UL : 0UL);
847 }
848 #endif /* SYSCFG_ITLINE19_SR_TIM14_GLB */
849
850 #if defined(SYSCFG_ITLINE21_SR_TIM16_GLB)
851 /**
852 * @brief Check if Timer 16 interrupt occurred or not.
853 * @rmtoll SYSCFG_ITLINE21 SR_TIM16_GLB LL_SYSCFG_IsActiveFlag_TIM16
854 * @retval State of bit (1 or 0).
855 */
LL_SYSCFG_IsActiveFlag_TIM16(void)856 __STATIC_INLINE uint32_t LL_SYSCFG_IsActiveFlag_TIM16(void)
857 {
858 return ((READ_BIT(SYSCFG->IT_LINE_SR[21], SYSCFG_ITLINE21_SR_TIM16_GLB) == (SYSCFG_ITLINE21_SR_TIM16_GLB)) ? 1UL : 0UL);
859 }
860 #endif /* SYSCFG_ITLINE21_SR_TIM16_GLB */
861
862 #if defined(SYSCFG_ITLINE22_SR_TIM17_GLB)
863 /**
864 * @brief Check if Timer 17 interrupt occurred or not.
865 * @rmtoll SYSCFG_ITLINE22 SR_TIM17_GLB LL_SYSCFG_IsActiveFlag_TIM17
866 * @retval State of bit (1 or 0).
867 */
LL_SYSCFG_IsActiveFlag_TIM17(void)868 __STATIC_INLINE uint32_t LL_SYSCFG_IsActiveFlag_TIM17(void)
869 {
870 return ((READ_BIT(SYSCFG->IT_LINE_SR[22], SYSCFG_ITLINE22_SR_TIM17_GLB) == (SYSCFG_ITLINE22_SR_TIM17_GLB)) ? 1UL : 0UL);
871 }
872 #endif /* SYSCFG_ITLINE22_SR_TIM17_GLB */
873
874 #if defined(SYSCFG_ITLINE23_SR_I2C1_GLB)
875 /**
876 * @brief Check if I2C1 interrupt occurred or not, combined with EXTI line 23.
877 * @rmtoll SYSCFG_ITLINE23 SR_I2C1_GLB LL_SYSCFG_IsActiveFlag_I2C1
878 * @retval State of bit (1 or 0).
879 */
LL_SYSCFG_IsActiveFlag_I2C1(void)880 __STATIC_INLINE uint32_t LL_SYSCFG_IsActiveFlag_I2C1(void)
881 {
882 return ((READ_BIT(SYSCFG->IT_LINE_SR[23], SYSCFG_ITLINE23_SR_I2C1_GLB) == (SYSCFG_ITLINE23_SR_I2C1_GLB)) ? 1UL : 0UL);
883 }
884 #endif /* SYSCFG_ITLINE23_SR_I2C1_GLB */
885
886 #if defined(SYSCFG_ITLINE25_SR_SPI1)
887 /**
888 * @brief Check if SPI1 interrupt occurred or not.
889 * @rmtoll SYSCFG_ITLINE25 SR_SPI1 LL_SYSCFG_IsActiveFlag_SPI1
890 * @retval State of bit (1 or 0).
891 */
LL_SYSCFG_IsActiveFlag_SPI1(void)892 __STATIC_INLINE uint32_t LL_SYSCFG_IsActiveFlag_SPI1(void)
893 {
894 return ((READ_BIT(SYSCFG->IT_LINE_SR[25], SYSCFG_ITLINE25_SR_SPI1) == (SYSCFG_ITLINE25_SR_SPI1)) ? 1UL : 0UL);
895 }
896 #endif /* SYSCFG_ITLINE25_SR_SPI1 */
897
898
899 #if defined(SYSCFG_ITLINE27_SR_USART1_GLB)
900 /**
901 * @brief Check if USART1 interrupt occurred or not, combined with EXTI line 25.
902 * @rmtoll SYSCFG_ITLINE27 SR_USART1_GLB LL_SYSCFG_IsActiveFlag_USART1
903 * @retval State of bit (1 or 0).
904 */
LL_SYSCFG_IsActiveFlag_USART1(void)905 __STATIC_INLINE uint32_t LL_SYSCFG_IsActiveFlag_USART1(void)
906 {
907 return ((READ_BIT(SYSCFG->IT_LINE_SR[27], SYSCFG_ITLINE27_SR_USART1_GLB) == (SYSCFG_ITLINE27_SR_USART1_GLB)) ? 1UL : 0UL);
908 }
909 #endif /* SYSCFG_ITLINE27_SR_USART1_GLB */
910
911 #if defined(SYSCFG_ITLINE28_SR_USART2_GLB)
912 /**
913 * @brief Check if USART2 interrupt occurred or not, combined with EXTI line 26.
914 * @rmtoll SYSCFG_ITLINE28 SR_USART2_GLB LL_SYSCFG_IsActiveFlag_USART2
915 * @retval State of bit (1 or 0).
916 */
LL_SYSCFG_IsActiveFlag_USART2(void)917 __STATIC_INLINE uint32_t LL_SYSCFG_IsActiveFlag_USART2(void)
918 {
919 return ((READ_BIT(SYSCFG->IT_LINE_SR[28], SYSCFG_ITLINE28_SR_USART2_GLB) == (SYSCFG_ITLINE28_SR_USART2_GLB)) ? 1UL : 0UL);
920 }
921 #endif /* SYSCFG_ITLINE28_SR_USART2_GLB */
922
923 /**
924 * @}
925 */
926
927 /** @defgroup SYSTEM_LL_EF_DBGMCU DBGMCU
928 * @{
929 */
930
931 /**
932 * @brief Return the device identifier
933 * @rmtoll DBG_IDCODE DEV_ID LL_DBGMCU_GetDeviceID
934 * @retval Values between Min_Data=0x00 and Max_Data=0xFFF
935 */
LL_DBGMCU_GetDeviceID(void)936 __STATIC_INLINE uint32_t LL_DBGMCU_GetDeviceID(void)
937 {
938 return (uint32_t)(READ_BIT(DBG->IDCODE, DBG_IDCODE_DEV_ID));
939 }
940
941 /**
942 * @brief Return the device revision identifier
943 * @note This field indicates the revision of the device.
944 * @rmtoll DBG_IDCODE REV_ID LL_DBGMCU_GetRevisionID
945 * @retval Values between Min_Data=0x00 and Max_Data=0xFFFF
946 */
LL_DBGMCU_GetRevisionID(void)947 __STATIC_INLINE uint32_t LL_DBGMCU_GetRevisionID(void)
948 {
949 return (uint32_t)(READ_BIT(DBG->IDCODE, DBG_IDCODE_REV_ID) >> DBG_IDCODE_REV_ID_Pos);
950 }
951
952 /**
953 * @brief Enable the Debug Module during STOP mode
954 * @rmtoll DBG_CR DBG_STOP LL_DBGMCU_EnableDBGStopMode
955 * @retval None
956 */
LL_DBGMCU_EnableDBGStopMode(void)957 __STATIC_INLINE void LL_DBGMCU_EnableDBGStopMode(void)
958 {
959 SET_BIT(DBG->CR, DBG_CR_DBG_STOP);
960 }
961
962 /**
963 * @brief Disable the Debug Module during STOP mode
964 * @rmtoll DBG_CR DBG_STOP LL_DBGMCU_DisableDBGStopMode
965 * @retval None
966 */
LL_DBGMCU_DisableDBGStopMode(void)967 __STATIC_INLINE void LL_DBGMCU_DisableDBGStopMode(void)
968 {
969 CLEAR_BIT(DBG->CR, DBG_CR_DBG_STOP);
970 }
971
972 /**
973 * @brief Enable the Debug Module during STANDBY mode
974 * @rmtoll DBG_CR DBG_STANDBY LL_DBGMCU_EnableDBGStandbyMode
975 * @retval None
976 */
LL_DBGMCU_EnableDBGStandbyMode(void)977 __STATIC_INLINE void LL_DBGMCU_EnableDBGStandbyMode(void)
978 {
979 SET_BIT(DBG->CR, DBG_CR_DBG_STANDBY);
980 }
981
982 /**
983 * @brief Disable the Debug Module during STANDBY mode
984 * @rmtoll DBG_CR DBG_STANDBY LL_DBGMCU_DisableDBGStandbyMode
985 * @retval None
986 */
LL_DBGMCU_DisableDBGStandbyMode(void)987 __STATIC_INLINE void LL_DBGMCU_DisableDBGStandbyMode(void)
988 {
989 CLEAR_BIT(DBG->CR, DBG_CR_DBG_STANDBY);
990 }
991
992 /**
993 * @brief Freeze APB1 peripherals (group1 peripherals)
994 * @rmtoll DBG_APB_FZ1 DBG_TIM3_STOP LL_DBGMCU_APB1_GRP1_FreezePeriph\n
995 * DBG_APB_FZ1 DBG_RTC_STOP LL_DBGMCU_APB1_GRP1_FreezePeriph\n
996 * DBG_APB_FZ1 DBG_WWDG_STOP LL_DBGMCU_APB1_GRP1_FreezePeriph\n
997 * DBG_APB_FZ1 DBG_IWDG_STOP LL_DBGMCU_APB1_GRP1_FreezePeriph\n
998 * DBG_APB_FZ1 DBG_I2C1_STOP LL_DBGMCU_APB1_GRP1_FreezePeriph\n
999 * @param Periphs This parameter can be a combination of the following values:
1000 * @arg @ref LL_DBGMCU_APB1_GRP1_TIM3_STOP
1001 * @arg @ref LL_DBGMCU_APB1_GRP1_RTC_STOP
1002 * @arg @ref LL_DBGMCU_APB1_GRP1_WWDG_STOP
1003 * @arg @ref LL_DBGMCU_APB1_GRP1_IWDG_STOP
1004 * @arg @ref LL_DBGMCU_APB1_GRP1_I2C1_STOP
1005 *
1006 * @retval None
1007 */
LL_DBGMCU_APB1_GRP1_FreezePeriph(uint32_t Periphs)1008 __STATIC_INLINE void LL_DBGMCU_APB1_GRP1_FreezePeriph(uint32_t Periphs)
1009 {
1010 SET_BIT(DBG->APBFZ1, Periphs);
1011 }
1012
1013 /**
1014 * @brief Unfreeze APB1 peripherals (group1 peripherals)
1015 * @rmtoll DBG_APB_FZ1 DBG_TIM3_STOP LL_DBGMCU_APB1_GRP1_UnFreezePeriph\n
1016 * DBG_APB_FZ1 DBG_RTC_STOP LL_DBGMCU_APB1_GRP1_UnFreezePeriph\n
1017 * DBG_APB_FZ1 DBG_WWDG_STOP LL_DBGMCU_APB1_GRP1_UnFreezePeriph\n
1018 * DBG_APB_FZ1 DBG_IWDG_STOP LL_DBGMCU_APB1_GRP1_UnFreezePeriph\n
1019 * DBG_APB_FZ1 DBG_I2C1_SMBUS_TIMEOUT LL_DBGMCU_APB1_GRP1_UnFreezePeriph\n
1020 * @param Periphs This parameter can be a combination of the following values:
1021 * @arg @ref LL_DBGMCU_APB1_GRP1_TIM3_STOP
1022 * @arg @ref LL_DBGMCU_APB1_GRP1_RTC_STOP
1023 * @arg @ref LL_DBGMCU_APB1_GRP1_WWDG_STOP
1024 * @arg @ref LL_DBGMCU_APB1_GRP1_IWDG_STOP
1025 * @arg @ref LL_DBGMCU_APB1_GRP1_I2C1_STOP
1026 *
1027 * (*) value not defined in all devices
1028 * @retval None
1029 */
LL_DBGMCU_APB1_GRP1_UnFreezePeriph(uint32_t Periphs)1030 __STATIC_INLINE void LL_DBGMCU_APB1_GRP1_UnFreezePeriph(uint32_t Periphs)
1031 {
1032 CLEAR_BIT(DBG->APBFZ1, Periphs);
1033 }
1034
1035 /**
1036 * @brief Freeze APB2 peripherals
1037 * @rmtoll DBG_APB_FZ2 DBG_TIM1_STOP LL_DBGMCU_APB2_GRP1_FreezePeriph\n
1038 * DBG_APB_FZ2 DBG_TIM14_STOP LL_DBGMCU_APB2_GRP1_FreezePeriph\n
1039 * DBG_APB_FZ2 DBG_TIM16_STOP LL_DBGMCU_APB2_GRP1_FreezePeriph\n
1040 * DBG_APB_FZ2 DBG_TIM17_STOP LL_DBGMCU_APB2_GRP1_FreezePeriph
1041 * @param Periphs This parameter can be a combination of the following values:
1042 * @arg @ref LL_DBGMCU_APB2_GRP1_TIM1_STOP
1043 * @arg @ref LL_DBGMCU_APB2_GRP1_TIM14_STOP
1044 * @arg @ref LL_DBGMCU_APB2_GRP1_TIM16_STOP
1045 * @arg @ref LL_DBGMCU_APB2_GRP1_TIM17_STOP
1046 *
1047 * @retval None
1048 */
LL_DBGMCU_APB2_GRP1_FreezePeriph(uint32_t Periphs)1049 __STATIC_INLINE void LL_DBGMCU_APB2_GRP1_FreezePeriph(uint32_t Periphs)
1050 {
1051 SET_BIT(DBG->APBFZ2, Periphs);
1052 }
1053
1054 /**
1055 * @brief Unfreeze APB2 peripherals
1056 * @rmtoll DBG_APB_FZ2 DBG_TIM1_STOP LL_DBGMCU_APB2_GRP1_UnFreezePeriph\n
1057 * DBG_APB_FZ2 DBG_TIM14_STOP LL_DBGMCU_APB2_GRP1_UnFreezePeriph\n
1058 * DBG_APB_FZ2 DBG_TIM16_STOP LL_DBGMCU_APB2_GRP1_UnFreezePeriph\n
1059 * DBG_APB_FZ2 DBG_TIM17_STOP LL_DBGMCU_APB2_GRP1_UnFreezePeriph
1060 * @param Periphs This parameter can be a combination of the following values:
1061 * @arg @ref LL_DBGMCU_APB2_GRP1_TIM1_STOP
1062 * @arg @ref LL_DBGMCU_APB2_GRP1_TIM14_STOP
1063 * @arg @ref LL_DBGMCU_APB2_GRP1_TIM16_STOP
1064 * @arg @ref LL_DBGMCU_APB2_GRP1_TIM17_STOP
1065 *
1066 * @retval None
1067 */
LL_DBGMCU_APB2_GRP1_UnFreezePeriph(uint32_t Periphs)1068 __STATIC_INLINE void LL_DBGMCU_APB2_GRP1_UnFreezePeriph(uint32_t Periphs)
1069 {
1070 CLEAR_BIT(DBG->APBFZ2, Periphs);
1071 }
1072 /**
1073 * @}
1074 */
1075
1076
1077 /** @defgroup SYSTEM_LL_EF_FLASH FLASH
1078 * @{
1079 */
1080
1081 /**
1082 * @brief Set FLASH Latency
1083 * @rmtoll FLASH_ACR FLASH_ACR_LATENCY LL_FLASH_SetLatency
1084 * @param Latency This parameter can be one of the following values:
1085 * @arg @ref LL_FLASH_LATENCY_0
1086 * @arg @ref LL_FLASH_LATENCY_1
1087 * @retval None
1088 */
LL_FLASH_SetLatency(uint32_t Latency)1089 __STATIC_INLINE void LL_FLASH_SetLatency(uint32_t Latency)
1090 {
1091 MODIFY_REG(FLASH->ACR, FLASH_ACR_LATENCY, Latency);
1092 }
1093
1094 /**
1095 * @brief Get FLASH Latency
1096 * @rmtoll FLASH_ACR FLASH_ACR_LATENCY LL_FLASH_GetLatency
1097 * @retval Returned value can be one of the following values:
1098 * @arg @ref LL_FLASH_LATENCY_0
1099 * @arg @ref LL_FLASH_LATENCY_1
1100 */
LL_FLASH_GetLatency(void)1101 __STATIC_INLINE uint32_t LL_FLASH_GetLatency(void)
1102 {
1103 return (uint32_t)(READ_BIT(FLASH->ACR, FLASH_ACR_LATENCY));
1104 }
1105
1106 /**
1107 * @brief Enable Prefetch
1108 * @rmtoll FLASH_ACR FLASH_ACR_PRFTEN LL_FLASH_EnablePrefetch
1109 * @retval None
1110 */
LL_FLASH_EnablePrefetch(void)1111 __STATIC_INLINE void LL_FLASH_EnablePrefetch(void)
1112 {
1113 SET_BIT(FLASH->ACR, FLASH_ACR_PRFTEN);
1114 }
1115
1116 /**
1117 * @brief Disable Prefetch
1118 * @rmtoll FLASH_ACR FLASH_ACR_PRFTEN LL_FLASH_DisablePrefetch
1119 * @retval None
1120 */
LL_FLASH_DisablePrefetch(void)1121 __STATIC_INLINE void LL_FLASH_DisablePrefetch(void)
1122 {
1123 CLEAR_BIT(FLASH->ACR, FLASH_ACR_PRFTEN);
1124 }
1125
1126 /**
1127 * @brief Check if Prefetch buffer is enabled
1128 * @rmtoll FLASH_ACR FLASH_ACR_PRFTEN LL_FLASH_IsPrefetchEnabled
1129 * @retval State of bit (1 or 0).
1130 */
LL_FLASH_IsPrefetchEnabled(void)1131 __STATIC_INLINE uint32_t LL_FLASH_IsPrefetchEnabled(void)
1132 {
1133 return ((READ_BIT(FLASH->ACR, FLASH_ACR_PRFTEN) == (FLASH_ACR_PRFTEN)) ? 1UL : 0UL);
1134 }
1135
1136 /**
1137 * @brief Enable Instruction cache
1138 * @rmtoll FLASH_ACR FLASH_ACR_ICEN LL_FLASH_EnableInstCache
1139 * @retval None
1140 */
LL_FLASH_EnableInstCache(void)1141 __STATIC_INLINE void LL_FLASH_EnableInstCache(void)
1142 {
1143 SET_BIT(FLASH->ACR, FLASH_ACR_ICEN);
1144 }
1145
1146 /**
1147 * @brief Disable Instruction cache
1148 * @rmtoll FLASH_ACR FLASH_ACR_ICEN LL_FLASH_DisableInstCache
1149 * @retval None
1150 */
LL_FLASH_DisableInstCache(void)1151 __STATIC_INLINE void LL_FLASH_DisableInstCache(void)
1152 {
1153 CLEAR_BIT(FLASH->ACR, FLASH_ACR_ICEN);
1154 }
1155
1156 /**
1157 * @brief Enable Instruction cache reset
1158 * @note bit can be written only when the instruction cache is disabled
1159 * @rmtoll FLASH_ACR FLASH_ACR_ICRST LL_FLASH_EnableInstCacheReset
1160 * @retval None
1161 */
LL_FLASH_EnableInstCacheReset(void)1162 __STATIC_INLINE void LL_FLASH_EnableInstCacheReset(void)
1163 {
1164 SET_BIT(FLASH->ACR, FLASH_ACR_ICRST);
1165 }
1166
1167 /**
1168 * @brief Disable Instruction cache reset
1169 * @rmtoll FLASH_ACR FLASH_ACR_ICRST LL_FLASH_DisableInstCacheReset
1170 * @retval None
1171 */
LL_FLASH_DisableInstCacheReset(void)1172 __STATIC_INLINE void LL_FLASH_DisableInstCacheReset(void)
1173 {
1174 CLEAR_BIT(FLASH->ACR, FLASH_ACR_ICRST);
1175 }
1176
1177 /**
1178 * @}
1179 */
1180
1181 /**
1182 * @}
1183 */
1184
1185 /**
1186 * @}
1187 */
1188
1189 #endif /* defined (FLASH) || defined (SYSCFG) || defined (DBG) */
1190
1191 /**
1192 * @}
1193 */
1194
1195 #ifdef __cplusplus
1196 }
1197 #endif
1198
1199 #endif /* STM32C0xx_LL_SYSTEM_H */
1200