1 /**
2 *******************************************************************************************************
3 * @file fm33lc0xx_fl_rcc.h
4 * @author FMSH Application Team
5 * @brief Head file of RCC FL Module
6 *******************************************************************************************************
7 * @attention
8 *
9 * Copyright (c) [2021] [Fudan Microelectronics]
10 * THIS SOFTWARE is licensed under Mulan PSL v2.
11 * You can use this software according to the terms and conditions of the Mulan PSL v2.
12 * You may obtain a copy of Mulan PSL v2 at:
13 * http://license.coscl.org.cn/MulanPSL2
14 * THIS SOFTWARE IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
15 * EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
16 * MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
17 * See the Mulan PSL v2 for more details.
18 *
19 *******************************************************************************************************
20 */
21
22
23 /* Define to prevent recursive inclusion---------------------------------------------------------------*/
24 #ifndef __FM33LC0XX_FL_RCC_H
25 #define __FM33LC0XX_FL_RCC_H
26
27 #ifdef __cplusplus
28 extern "C" {
29 #endif
30 /* Includes -------------------------------------------------------------------------------------------*/
31 #include "fm33lc0xx_fl_def.h"
32 /** @addtogroup FM33LC0XX_FL_Driver
33 * @{
34 */
35
36 /** @defgroup RCC RCC
37 * @brief RCC FL driver
38 * @{
39 */
40
41 /* Exported types -------------------------------------------------------------------------------------*/
42 /** @defgroup RCC_FL_ES_INIT RCC Exported Init structures
43 * @{
44 */
45
46 /**
47 * @}
48 */
49 /* Exported constants ---------------------------------------------------------------------------------*/
50 /** @defgroup RCC_FL_Exported_Constants RCC Exported Constants
51 * @{
52 */
53
54 #define FDET_IER_HFDET_IE_Pos (1U)
55 #define FDET_IER_HFDET_IE_Msk (0x1U << FDET_IER_HFDET_IE_Pos)
56 #define FDET_IER_HFDET_IE FDET_IER_HFDET_IE_Msk
57
58 #define FDET_IER_LFDET_IE_Pos (0U)
59 #define FDET_IER_LFDET_IE_Msk (0x1U << FDET_IER_LFDET_IE_Pos)
60 #define FDET_IER_LFDET_IE FDET_IER_LFDET_IE_Msk
61
62 #define FDET_ISR_HFDETO_Pos (9U)
63 #define FDET_ISR_HFDETO_Msk (0x1U << FDET_ISR_HFDETO_Pos)
64 #define FDET_ISR_HFDETO FDET_ISR_HFDETO_Msk
65
66 #define FDET_ISR_LFDETO_Pos (8U)
67 #define FDET_ISR_LFDETO_Msk (0x1U << FDET_ISR_LFDETO_Pos)
68 #define FDET_ISR_LFDETO FDET_ISR_LFDETO_Msk
69
70 #define FDET_ISR_HFDETIF_Pos (1U)
71 #define FDET_ISR_HFDETIF_Msk (0x1U << FDET_ISR_HFDETIF_Pos)
72 #define FDET_ISR_HFDETIF FDET_ISR_HFDETIF_Msk
73
74 #define FDET_ISR_LFDETIF_Pos (0U)
75 #define FDET_ISR_LFDETIF_Msk (0x1U << FDET_ISR_LFDETIF_Pos)
76 #define FDET_ISR_LFDETIF FDET_ISR_LFDETIF_Msk
77
78 #define RCC_SYSCLKCR_LSCATS_Pos (27U)
79 #define RCC_SYSCLKCR_LSCATS_Msk (0x1U << RCC_SYSCLKCR_LSCATS_Pos)
80 #define RCC_SYSCLKCR_LSCATS RCC_SYSCLKCR_LSCATS_Msk
81
82 #define RCC_SYSCLKCR_SLP_ENEXTI_Pos (25U)
83 #define RCC_SYSCLKCR_SLP_ENEXTI_Msk (0x1U << RCC_SYSCLKCR_SLP_ENEXTI_Pos)
84 #define RCC_SYSCLKCR_SLP_ENEXTI RCC_SYSCLKCR_SLP_ENEXTI_Msk
85
86 #define RCC_SYSCLKCR_APBPRES2_Pos (19U)
87 #define RCC_SYSCLKCR_APBPRES2_Msk (0x7U << RCC_SYSCLKCR_APBPRES2_Pos)
88 #define RCC_SYSCLKCR_APBPRES2 RCC_SYSCLKCR_APBPRES2_Msk
89
90 #define RCC_SYSCLKCR_APBPRES1_Pos (16U)
91 #define RCC_SYSCLKCR_APBPRES1_Msk (0x7U << RCC_SYSCLKCR_APBPRES1_Pos)
92 #define RCC_SYSCLKCR_APBPRES1 RCC_SYSCLKCR_APBPRES1_Msk
93
94 #define RCC_SYSCLKCR_AHBPRES_Pos (8U)
95 #define RCC_SYSCLKCR_AHBPRES_Msk (0x7U << RCC_SYSCLKCR_AHBPRES_Pos)
96 #define RCC_SYSCLKCR_AHBPRES RCC_SYSCLKCR_AHBPRES_Msk
97
98 #define RCC_SYSCLKCR_STCLKSEL_Pos (6U)
99 #define RCC_SYSCLKCR_STCLKSEL_Msk (0x3U << RCC_SYSCLKCR_STCLKSEL_Pos)
100 #define RCC_SYSCLKCR_STCLKSEL RCC_SYSCLKCR_STCLKSEL_Msk
101
102 #define RCC_SYSCLKCR_BCKOSEL_Pos (3U)
103 #define RCC_SYSCLKCR_BCKOSEL_Msk (0x1U << RCC_SYSCLKCR_BCKOSEL_Pos)
104 #define RCC_SYSCLKCR_BCKOSEL RCC_SYSCLKCR_BCKOSEL_Msk
105
106 #define RCC_SYSCLKCR_SYSCLKSEL_Pos (0U)
107 #define RCC_SYSCLKCR_SYSCLKSEL_Msk (0x7U << RCC_SYSCLKCR_SYSCLKSEL_Pos)
108 #define RCC_SYSCLKCR_SYSCLKSEL RCC_SYSCLKCR_SYSCLKSEL_Msk
109
110 #define RCC_RCHFCR_FSEL_Pos (16U)
111 #define RCC_RCHFCR_FSEL_Msk (0xfU << RCC_RCHFCR_FSEL_Pos)
112 #define RCC_RCHFCR_FSEL RCC_RCHFCR_FSEL_Msk
113
114 #define RCC_RCHFCR_EN_Pos (0U)
115 #define RCC_RCHFCR_EN_Msk (0x1U << RCC_RCHFCR_EN_Pos)
116 #define RCC_RCHFCR_EN RCC_RCHFCR_EN_Msk
117
118 #define RCC_RCMFTR_TRIM_Pos (0U)
119 #define RCC_RCMFTR_TRIM_Msk (0x7fU << RCC_RCMFTR_TRIM_Pos)
120 #define RCC_RCMFTR_TRIM RCC_RCMFTR_TRIM_Msk
121
122 #define RCC_PLLCR_EN_Pos (0U)
123 #define RCC_PLLCR_EN_Msk (0x1U << RCC_PLLCR_EN_Pos)
124 #define RCC_PLLCR_EN RCC_PLLCR_EN_Msk
125
126 #define RCC_PLLCR_LOCKED_Pos (7U)
127 #define RCC_PLLCR_LOCKED_Msk (0x1U << RCC_PLLCR_LOCKED_Pos)
128 #define RCC_PLLCR_LOCKED RCC_PLLCR_LOCKED_Msk
129
130 #define RCC_PLLCR_INSEL_Pos (1U)
131 #define RCC_PLLCR_INSEL_Msk (0x1U << RCC_PLLCR_INSEL_Pos)
132 #define RCC_PLLCR_INSEL RCC_PLLCR_INSEL_Msk
133
134 #define RCC_PLLCR_DB_Pos (16U)
135 #define RCC_PLLCR_DB_Msk (0x7fU << RCC_PLLCR_DB_Pos)
136 #define RCC_PLLCR_DB RCC_PLLCR_DB_Msk
137
138 #define RCC_PLLCR_REFPRSC_Pos (4U)
139 #define RCC_PLLCR_REFPRSC_Msk (0x7U << RCC_PLLCR_REFPRSC_Pos)
140 #define RCC_PLLCR_REFPRSC RCC_PLLCR_REFPRSC_Msk
141
142 #define RCC_PLLCR_OSEL_Pos (3U)
143 #define RCC_PLLCR_OSEL_Msk (0x1U << RCC_PLLCR_OSEL_Pos)
144 #define RCC_PLLCR_OSEL RCC_PLLCR_OSEL_Msk
145
146 #define RCC_LPOSCCR_LPOENB_Pos (1U)
147 #define RCC_LPOSCCR_LPOENB_Msk (0x1U << RCC_LPOSCCR_LPOENB_Pos)
148 #define RCC_LPOSCCR_LPOENB RCC_LPOSCCR_LPOENB_Msk
149
150 #define RCC_LPOSCCR_LPM_LPO_OFF_Pos (0U)
151 #define RCC_LPOSCCR_LPM_LPO_OFF_Msk (0x1U << RCC_LPOSCCR_LPM_LPO_OFF_Pos)
152 #define RCC_LPOSCCR_LPM_LPO_OFF RCC_LPOSCCR_LPM_LPO_OFF_Msk
153
154 #define RCC_LPOSCCR_LPO_CHOP_EN_Pos (2U)
155 #define RCC_LPOSCCR_LPO_CHOP_EN_Msk (0x1U << RCC_LPOSCCR_LPO_CHOP_EN_Pos)
156 #define RCC_LPOSCCR_LPO_CHOP_EN RCC_LPOSCCR_LPO_CHOP_EN_Msk
157
158 #define RCC_LPOSCTR_TRIM_Pos (0U)
159 #define RCC_LPOSCTR_TRIM_Msk (0xffU << RCC_LPOSCTR_TRIM_Pos)
160 #define RCC_LPOSCTR_TRIM RCC_LPOSCTR_TRIM_Msk
161
162 #define RCC_XTLFCR_EN_Pos (8U)
163 #define RCC_XTLFCR_EN_Msk (0xfU << RCC_XTLFCR_EN_Pos)
164 #define RCC_XTLFCR_EN RCC_XTLFCR_EN_Msk
165
166 #define RCC_XTLFCR_IPW_Pos (0U)
167 #define RCC_XTLFCR_IPW_Msk (0x7U << RCC_XTLFCR_IPW_Pos)
168 #define RCC_XTLFCR_IPW RCC_XTLFCR_IPW_Msk
169
170 #define RCC_XTHFCR_CFG_Pos (8U)
171 #define RCC_XTHFCR_CFG_Msk (0x7U << RCC_XTHFCR_CFG_Pos)
172 #define RCC_XTHFCR_CFG RCC_XTHFCR_CFG_Msk
173
174 #define RCC_XTHFCR_EN_Pos (0U)
175 #define RCC_XTHFCR_EN_Msk (0x1U << RCC_XTHFCR_EN_Pos)
176 #define RCC_XTHFCR_EN RCC_XTHFCR_EN_Msk
177
178 #define RCC_RCMFCR_PSC_Pos (16U)
179 #define RCC_RCMFCR_PSC_Msk (0x3U << RCC_RCMFCR_PSC_Pos)
180 #define RCC_RCMFCR_PSC RCC_RCMFCR_PSC_Msk
181
182 #define RCC_RCMFCR_EN_Pos (0U)
183 #define RCC_RCMFCR_EN_Msk (0x1U << RCC_RCMFCR_EN_Pos)
184 #define RCC_RCMFCR_EN RCC_RCMFCR_EN_Msk
185
186 #define RCC_RCHFTR_TRIM_Pos (0U)
187 #define RCC_RCHFTR_TRIM_Msk (0x7fU << RCC_RCHFTR_TRIM_Pos)
188 #define RCC_RCHFTR_TRIM RCC_RCHFTR_TRIM_Msk
189
190 #define RCC_OPCCR1_EXTICKS_Pos (30U)
191 #define RCC_OPCCR1_EXTICKS_Msk (0x1U << RCC_OPCCR1_EXTICKS_Pos)
192 #define RCC_OPCCR1_EXTICKS RCC_OPCCR1_EXTICKS_Msk
193
194 #define RCC_OPCCR1_LPUART1CKS_Pos (26U)
195 #define RCC_OPCCR1_LPUART1CKS_Msk (0x3U << RCC_OPCCR1_LPUART1CKS_Pos)
196 #define RCC_OPCCR1_LPUART1CKS RCC_OPCCR1_LPUART1CKS_Msk
197
198 #define RCC_OPCCR1_LPUART0CKS_Pos (24U)
199 #define RCC_OPCCR1_LPUART0CKS_Msk (0x3U << RCC_OPCCR1_LPUART0CKS_Pos)
200 #define RCC_OPCCR1_LPUART0CKS RCC_OPCCR1_LPUART0CKS_Msk
201
202 #define RCC_OPCCR1_I2CCKS_Pos (16U)
203 #define RCC_OPCCR1_I2CCKS_Msk (0x3U << RCC_OPCCR1_I2CCKS_Pos)
204 #define RCC_OPCCR1_I2CCKS RCC_OPCCR1_I2CCKS_Msk
205
206 #define RCC_OPCCR1_ATCKS_Pos (6U)
207 #define RCC_OPCCR1_ATCKS_Msk (0x3U << RCC_OPCCR1_ATCKS_Pos)
208 #define RCC_OPCCR1_ATCKS RCC_OPCCR1_ATCKS_Msk
209
210 #define RCC_OPCCR1_UART1CKS_Pos (2U)
211 #define RCC_OPCCR1_UART1CKS_Msk (0x3U << RCC_OPCCR1_UART1CKS_Pos)
212 #define RCC_OPCCR1_UART1CKS RCC_OPCCR1_UART1CKS_Msk
213
214 #define RCC_OPCCR1_UART0CKS_Pos (0U)
215 #define RCC_OPCCR1_UART0CKS_Msk (0x3U << RCC_OPCCR1_UART0CKS_Pos)
216 #define RCC_OPCCR1_UART0CKS RCC_OPCCR1_UART0CKS_Msk
217
218 #define RCC_OPCCR2_RNGPRSC_Pos (28U)
219 #define RCC_OPCCR2_RNGPRSC_Msk (0x7U << RCC_OPCCR2_RNGPRSC_Pos)
220 #define RCC_OPCCR2_RNGPRSC RCC_OPCCR2_RNGPRSC_Msk
221
222 #define RCC_OPCCR2_ADCPRSC_Pos (24U)
223 #define RCC_OPCCR2_ADCPRSC_Msk (0x7U << RCC_OPCCR2_ADCPRSC_Pos)
224 #define RCC_OPCCR2_ADCPRSC RCC_OPCCR2_ADCPRSC_Msk
225
226 #define RCC_OPCCR2_USBCKS_Pos (18U)
227 #define RCC_OPCCR2_USBCKS_Msk (0x3U << RCC_OPCCR2_USBCKS_Pos)
228 #define RCC_OPCCR2_USBCKS RCC_OPCCR2_USBCKS_Msk
229
230 #define RCC_OPCCR2_ADCCKS_Pos (16U)
231 #define RCC_OPCCR2_ADCCKS_Msk (0x3U << RCC_OPCCR2_ADCCKS_Pos)
232 #define RCC_OPCCR2_ADCCKS RCC_OPCCR2_ADCCKS_Msk
233
234 #define RCC_OPCCR2_LPT32CKS_Pos (8U)
235 #define RCC_OPCCR2_LPT32CKS_Msk (0x3U << RCC_OPCCR2_LPT32CKS_Pos)
236 #define RCC_OPCCR2_LPT32CKS RCC_OPCCR2_LPT32CKS_Msk
237
238 #define RCC_OPCCR2_BT32CKS_Pos (0U)
239 #define RCC_OPCCR2_BT32CKS_Msk (0x3U << RCC_OPCCR2_BT32CKS_Pos)
240 #define RCC_OPCCR2_BT32CKS RCC_OPCCR2_BT32CKS_Msk
241
242 #define RCC_AHBMCR_MPRIL_Pos (0U)
243 #define RCC_AHBMCR_MPRIL_Msk (0x1U << RCC_AHBMCR_MPRIL_Pos)
244 #define RCC_AHBMCR_MPRIL RCC_AHBMCR_MPRIL_Msk
245
246 #define RCC_LSCLKSEL_SEL_Pos (0U)
247 #define RCC_LSCLKSEL_SEL_Msk (0xffU << RCC_LSCLKSEL_SEL_Pos)
248 #define RCC_LSCLKSEL_SEL RCC_LSCLKSEL_SEL_Msk
249
250 #define RCC_PHYCR_PHYRST_Pos (4U)
251 #define RCC_PHYCR_PHYRST_Msk (0x1U << RCC_PHYCR_PHYRST_Pos)
252 #define RCC_PHYCR_PHYRST RCC_PHYCR_PHYRST_Msk
253
254 #define RCC_PHYCR_PD_Pos (3U)
255 #define RCC_PHYCR_PD_Msk (0x1U << RCC_PHYCR_PD_Pos)
256 #define RCC_PHYCR_PD RCC_PHYCR_PD_Msk
257
258 #define RCC_PHYCR_PLVREADY_Pos (2U)
259 #define RCC_PHYCR_PLVREADY_Msk (0x1U << RCC_PHYCR_PLVREADY_Pos)
260 #define RCC_PHYCR_PLVREADY RCC_PHYCR_PLVREADY_Msk
261
262 #define RCC_PHYCR_BCKPD_Pos (1U)
263 #define RCC_PHYCR_BCKPD_Msk (0x1U << RCC_PHYCR_BCKPD_Pos)
264 #define RCC_PHYCR_BCKPD RCC_PHYCR_BCKPD_Msk
265
266 #define RCC_PHYCR_BCKRST_Pos (0U)
267 #define RCC_PHYCR_BCKRST_Msk (0x1U << RCC_PHYCR_BCKRST_Pos)
268 #define RCC_PHYCR_BCKRST RCC_PHYCR_BCKRST_Msk
269
270 #define RCC_PHYBCKCR_CK48M_EN_Pos (8U)
271 #define RCC_PHYBCKCR_CK48M_EN_Msk (0x1U << RCC_PHYBCKCR_CK48M_EN_Pos)
272 #define RCC_PHYBCKCR_CK48M_EN RCC_PHYBCKCR_CK48M_EN_Msk
273
274 #define RCC_PHYBCKCR_CLKRDY_Pos (7U)
275 #define RCC_PHYBCKCR_CLKRDY_Msk (0x1U << RCC_PHYBCKCR_CLKRDY_Pos)
276 #define RCC_PHYBCKCR_CLKRDY RCC_PHYBCKCR_CLKRDY_Msk
277
278 #define RCC_PHYBCKCR_OUTCLKSEL_Pos (0U)
279 #define RCC_PHYBCKCR_OUTCLKSEL_Msk (0x1U << RCC_PHYBCKCR_OUTCLKSEL_Pos)
280 #define RCC_PHYBCKCR_OUTCLKSEL RCC_PHYBCKCR_OUTCLKSEL_Msk
281
282 #define RCC_LKPCR_RST_EN_Pos (1U)
283 #define RCC_LKPCR_RST_EN_Msk (0x1U << RCC_LKPCR_RST_EN_Pos)
284 #define RCC_LKPCR_RST_EN RCC_LKPCR_RST_EN_Msk
285
286 #define RCC_RSTFR_MDFN_FLAG_Pos (12U)
287 #define RCC_RSTFR_MDFN_FLAG_Msk (0x1U << RCC_RSTFR_MDFN_FLAG_Pos)
288 #define RCC_RSTFR_MDFN_FLAG RCC_RSTFR_MDFN_FLAG_Msk
289
290 #define RCC_RSTFR_NRSTN_FLAG_Pos (11U)
291 #define RCC_RSTFR_NRSTN_FLAG_Msk (0x1U << RCC_RSTFR_NRSTN_FLAG_Pos)
292 #define RCC_RSTFR_NRSTN_FLAG RCC_RSTFR_NRSTN_FLAG_Msk
293
294 #define RCC_RSTFR_TESTN_FLAG_Pos (10U)
295 #define RCC_RSTFR_TESTN_FLAG_Msk (0x1U << RCC_RSTFR_TESTN_FLAG_Pos)
296 #define RCC_RSTFR_TESTN_FLAG RCC_RSTFR_TESTN_FLAG_Msk
297
298 #define RCC_RSTFR_PORN_FLAG_Pos (9U)
299 #define RCC_RSTFR_PORN_FLAG_Msk (0x1U << RCC_RSTFR_PORN_FLAG_Pos)
300 #define RCC_RSTFR_PORN_FLAG RCC_RSTFR_PORN_FLAG_Msk
301
302 #define RCC_RSTFR_PDRN_FLAG_Pos (8U)
303 #define RCC_RSTFR_PDRN_FLAG_Msk (0x1U << RCC_RSTFR_PDRN_FLAG_Pos)
304 #define RCC_RSTFR_PDRN_FLAG RCC_RSTFR_PDRN_FLAG_Msk
305
306 #define RCC_RSTFR_SOFTN_FLAG_Pos (5U)
307 #define RCC_RSTFR_SOFTN_FLAG_Msk (0x1U << RCC_RSTFR_SOFTN_FLAG_Pos)
308 #define RCC_RSTFR_SOFTN_FLAG RCC_RSTFR_SOFTN_FLAG_Msk
309
310 #define RCC_RSTFR_IWDTN_FLAG_Pos (4U)
311 #define RCC_RSTFR_IWDTN_FLAG_Msk (0x1U << RCC_RSTFR_IWDTN_FLAG_Pos)
312 #define RCC_RSTFR_IWDTN_FLAG RCC_RSTFR_IWDTN_FLAG_Msk
313
314 #define RCC_RSTFR_WWDTN_FLAG_Pos (2U)
315 #define RCC_RSTFR_WWDTN_FLAG_Msk (0x1U << RCC_RSTFR_WWDTN_FLAG_Pos)
316 #define RCC_RSTFR_WWDTN_FLAG RCC_RSTFR_WWDTN_FLAG_Msk
317
318 #define RCC_RSTFR_LKUPN_FLAG_Pos (1U)
319 #define RCC_RSTFR_LKUPN_FLAG_Msk (0x1U << RCC_RSTFR_LKUPN_FLAG_Pos)
320 #define RCC_RSTFR_LKUPN_FLAG RCC_RSTFR_LKUPN_FLAG_Msk
321
322 #define RCC_RSTFR_NVICN_FLAG_Pos (0U)
323 #define RCC_RSTFR_NVICN_FLAG_Msk (0x1U << RCC_RSTFR_NVICN_FLAG_Pos)
324 #define RCC_RSTFR_NVICN_FLAG RCC_RSTFR_NVICN_FLAG_Msk
325
326
327
328 #define FL_RCC_GROUP1_BUSCLK_LPTIM32 (0x1U << 0U)
329 #define FL_RCC_GROUP1_BUSCLK_USB (0x1U << 1U)
330 #define FL_RCC_GROUP1_BUSCLK_RTC (0x1U << 2U)
331 #define FL_RCC_GROUP1_BUSCLK_PMU (0x1U << 3U)
332 #define FL_RCC_GROUP1_BUSCLK_SCU (0x1U << 4U)
333 #define FL_RCC_GROUP1_BUSCLK_IWDT (0x1U << 5U)
334 #define FL_RCC_GROUP1_BUSCLK_ANAC (0x1U << 6U)
335 #define FL_RCC_GROUP1_BUSCLK_PAD (0x1U << 7U)
336 #define FL_RCC_GROUP1_BUSCLK_DCU (0x1U << 31U)
337 #define FL_RCC_GROUP2_BUSCLK_CRC (0x1U << 0U)
338 #define FL_RCC_GROUP2_BUSCLK_RNG (0x1U << 1U)
339 #define FL_RCC_GROUP2_BUSCLK_AES (0x1U << 2U)
340 #define FL_RCC_GROUP2_BUSCLK_LCD (0x1U << 3U)
341 #define FL_RCC_GROUP2_BUSCLK_DMA (0x1U << 4U)
342 #define FL_RCC_GROUP2_BUSCLK_FLASH (0x1U << 5U)
343 #define FL_RCC_GROUP2_BUSCLK_RAMBIST (0x1U << 6U)
344 #define FL_RCC_GROUP2_BUSCLK_WWDT (0x1U << 7U)
345 #define FL_RCC_GROUP2_BUSCLK_ADC (0x1U << 8U)
346 #define FL_RCC_GROUP2_BUSCLK_HDIV (0x1U << 9U)
347 #define FL_RCC_GROUP3_BUSCLK_SPI1 (0x1U << 0U)
348 #define FL_RCC_GROUP3_BUSCLK_SPI2 (0x1U << 1U)
349 #define FL_RCC_GROUP3_BUSCLK_UART0 (0x1U << 8U)
350 #define FL_RCC_GROUP3_BUSCLK_UART1 (0x1U << 9U)
351 #define FL_RCC_GROUP3_BUSCLK_UART4 (0x1U << 12U)
352 #define FL_RCC_GROUP3_BUSCLK_UART5 (0x1U << 13U)
353 #define FL_RCC_GROUP3_BUSCLK_UARTIR (0x1U << 14U)
354 #define FL_RCC_GROUP3_BUSCLK_LPUART0 (0x1U << 15U)
355 #define FL_RCC_GROUP3_BUSCLK_U7816 (0x1U << 16U)
356 #define FL_RCC_GROUP3_BUSCLK_LPUART1 (0x1U << 18U)
357 #define FL_RCC_GROUP3_BUSCLK_I2C (0x1U << 24U)
358 #define FL_RCC_GROUP4_BUSCLK_BSTIM32 (0x1U << 0U)
359 #define FL_RCC_GROUP4_BUSCLK_GPTIM0 (0x1U << 2U)
360 #define FL_RCC_GROUP4_BUSCLK_GPTIM1 (0x1U << 3U)
361 #define FL_RCC_GROUP4_BUSCLK_ATIM (0x1U << 4U)
362 #define FL_RCC_GROUP1_OPCLK_EXTI (0x1U << 31U)
363 #define FL_RCC_GROUP1_OPCLK_LPUART1 (0x1U << 29U)
364 #define FL_RCC_GROUP1_OPCLK_LPUART0 (0x1U << 28U)
365 #define FL_RCC_GROUP1_OPCLK_I2C (0x1U << 20U)
366 #define FL_RCC_GROUP1_OPCLK_ATIM (0x1U << 15U)
367 #define FL_RCC_GROUP1_OPCLK_UART1 (0x1U << 9U)
368 #define FL_RCC_GROUP1_OPCLK_UART0 (0x1U << 8U)
369 #define FL_RCC_GROUP2_OPCLK_USB (0x1U << 23U)
370 #define FL_RCC_GROUP2_OPCLK_FLASH (0x1U << 22U)
371 #define FL_RCC_GROUP2_OPCLK_RNG (0x1U << 21U)
372 #define FL_RCC_GROUP2_OPCLK_ADC (0x1U << 20U)
373 #define FL_RCC_GROUP2_OPCLK_LPTIM32 (0x1U << 12U)
374 #define FL_RCC_GROUP2_OPCLK_BSTIM32 (0x1U << 4U)
375 #define FL_RCC_RSTAHB_DMA (0x1U << 0U)
376 #define FL_RCC_RSTAHB_USB (0x1U << 1U)
377 #define FL_RCC_RSTAPB_UART5 (0x1U << 31U)
378 #define FL_RCC_RSTAPB_UART4 (0x1U << 30U)
379 #define FL_RCC_RSTAPB_GPTIM1 (0x1U << 25U)
380 #define FL_RCC_RSTAPB_GPTIM0 (0x1U << 24U)
381 #define FL_RCC_RSTAPB_LCD (0x1U << 16U)
382 #define FL_RCC_RSTAPB_U7816 (0x1U << 14U)
383 #define FL_RCC_RSTAPB_SPI2 (0x1U << 10U)
384 #define FL_RCC_RSTAPB_LPUART0 (0x1U << 6U)
385 #define FL_RCC_RSTAPB_I2C (0x1U << 3U)
386 #define FL_RCC_RSTAPB_LPTIM32 (0x1U << 0U)
387 #define FL_RCC_RSTAPB_ATIM (0x1U << 31U)
388 #define FL_RCC_RSTAPB_BSTIM32 (0x1U << 28U)
389 #define FL_RCC_RSTAPB_ADCCR (0x1U << 24U)
390 #define FL_RCC_RSTAPB_ADC (0x1U << 23U)
391 #define FL_RCC_RSTAPB_OPA (0x1U << 22U)
392 #define FL_RCC_RSTAPB_DIVAS (0x1U << 19U)
393 #define FL_RCC_RSTAPB_AES (0x1U << 18U)
394 #define FL_RCC_RSTAPB_CRC (0x1U << 17U)
395 #define FL_RCC_RSTAPB_RNG (0x1U << 16U)
396 #define FL_RCC_RSTAPB_UART1 (0x1U << 12U)
397 #define FL_RCC_RSTAPB_UART0 (0x1U << 11U)
398 #define FL_RCC_RSTAPB_SPI1 (0x1U << 9U)
399 #define FL_RCC_RSTAPB_UCIR (0x1U << 8U)
400 #define FL_RCC_RSTAPB_LPUART1 (0x1U << 7U)
401 #define FL_RCC_PERIPHERAL_RESET_KEY 0x13579BDFU
402 #define FL_RCC_SOFTWARE_RESET_KEY 0x5C5CAABBU
403 #define FL_RCC_LPUART_CLK_SOURCE_LSCLK 0x0U
404 #define FL_RCC_LPUART_CLK_SOURCE_RCHF 0x1U
405 #define FL_RCC_LPUART_CLK_SOURCE_RCMF 0x2U
406
407
408
409 #define FL_RCC_APB2CLK_PSC_DIV1 (0x0U << RCC_SYSCLKCR_APBPRES2_Pos)
410 #define FL_RCC_APB2CLK_PSC_DIV2 (0x4U << RCC_SYSCLKCR_APBPRES2_Pos)
411 #define FL_RCC_APB2CLK_PSC_DIV4 (0x5U << RCC_SYSCLKCR_APBPRES2_Pos)
412 #define FL_RCC_APB2CLK_PSC_DIV8 (0x6U << RCC_SYSCLKCR_APBPRES2_Pos)
413 #define FL_RCC_APB2CLK_PSC_DIV16 (0x7U << RCC_SYSCLKCR_APBPRES2_Pos)
414
415
416 #define FL_RCC_APB1CLK_PSC_DIV1 (0x0U << RCC_SYSCLKCR_APBPRES1_Pos)
417 #define FL_RCC_APB1CLK_PSC_DIV2 (0x4U << RCC_SYSCLKCR_APBPRES1_Pos)
418 #define FL_RCC_APB1CLK_PSC_DIV4 (0x5U << RCC_SYSCLKCR_APBPRES1_Pos)
419 #define FL_RCC_APB1CLK_PSC_DIV8 (0x6U << RCC_SYSCLKCR_APBPRES1_Pos)
420 #define FL_RCC_APB1CLK_PSC_DIV16 (0x7U << RCC_SYSCLKCR_APBPRES1_Pos)
421
422
423 #define FL_RCC_AHBCLK_PSC_DIV1 (0x0U << RCC_SYSCLKCR_AHBPRES_Pos)
424 #define FL_RCC_AHBCLK_PSC_DIV2 (0x4U << RCC_SYSCLKCR_AHBPRES_Pos)
425 #define FL_RCC_AHBCLK_PSC_DIV4 (0x5U << RCC_SYSCLKCR_AHBPRES_Pos)
426 #define FL_RCC_AHBCLK_PSC_DIV8 (0x6U << RCC_SYSCLKCR_AHBPRES_Pos)
427 #define FL_RCC_AHBCLK_PSC_DIV16 (0x7U << RCC_SYSCLKCR_AHBPRES_Pos)
428
429
430 #define FL_RCC_SYSTICK_CLK_SOURCE_SCLK (0x0U << RCC_SYSCLKCR_STCLKSEL_Pos)
431 #define FL_RCC_SYSTICK_CLK_SOURCE_LSCLK (0x1U << RCC_SYSCLKCR_STCLKSEL_Pos)
432 #define FL_RCC_SYSTICK_CLK_SOURCE_RCMF (0x2U << RCC_SYSCLKCR_STCLKSEL_Pos)
433 #define FL_RCC_SYSTICK_CLK_SOURCE_SYSCLK (0x3U << RCC_SYSCLKCR_STCLKSEL_Pos)
434
435
436 #define FL_RCC_USB_CLK_OUT_48M (0x0U << RCC_SYSCLKCR_BCKOSEL_Pos)
437 #define FL_RCC_USB_CLK_OUT_120M (0x1U << RCC_SYSCLKCR_BCKOSEL_Pos)
438
439
440 #define FL_RCC_SYSTEM_CLK_SOURCE_RCHF (0x0U << RCC_SYSCLKCR_SYSCLKSEL_Pos)
441 #define FL_RCC_SYSTEM_CLK_SOURCE_XTHF (0x1U << RCC_SYSCLKCR_SYSCLKSEL_Pos)
442 #define FL_RCC_SYSTEM_CLK_SOURCE_PLL (0x2U << RCC_SYSCLKCR_SYSCLKSEL_Pos)
443 #define FL_RCC_SYSTEM_CLK_SOURCE_RCMF_PSC (0x4U << RCC_SYSCLKCR_SYSCLKSEL_Pos)
444 #define FL_RCC_SYSTEM_CLK_SOURCE_LSCLK (0x5U << RCC_SYSCLKCR_SYSCLKSEL_Pos)
445 #define FL_RCC_SYSTEM_CLK_SOURCE_LPOSC (0x6U << RCC_SYSCLKCR_SYSCLKSEL_Pos)
446 #define FL_RCC_SYSTEM_CLK_SOURCE_USBCLK (0x7U << RCC_SYSCLKCR_SYSCLKSEL_Pos)
447
448
449 #define FL_RCC_RCHF_FREQUENCY_8MHZ (0x0U << RCC_RCHFCR_FSEL_Pos)
450 #define FL_RCC_RCHF_FREQUENCY_16MHZ (0x1U << RCC_RCHFCR_FSEL_Pos)
451 #define FL_RCC_RCHF_FREQUENCY_24MHZ (0x2U << RCC_RCHFCR_FSEL_Pos)
452
453
454 #define FL_RCC_PLL_CLK_SOURCE_RCHF (0x0U << RCC_PLLCR_INSEL_Pos)
455 #define FL_RCC_PLL_CLK_SOURCE_XTHF (0x1U << RCC_PLLCR_INSEL_Pos)
456
457
458 #define FL_RCC_PLL_MUL_32 (0x1fU << RCC_PLLCR_DB_Pos)
459
460 #define FL_RCC_PLL_MUL_48 (0x2fU << RCC_PLLCR_DB_Pos)
461
462 #define FL_RCC_PLL_PSC_DIV1 (0x0U << RCC_PLLCR_REFPRSC_Pos)
463 #define FL_RCC_PLL_PSC_DIV2 (0x1U << RCC_PLLCR_REFPRSC_Pos)
464 #define FL_RCC_PLL_PSC_DIV4 (0x2U << RCC_PLLCR_REFPRSC_Pos)
465 #define FL_RCC_PLL_PSC_DIV8 (0x3U << RCC_PLLCR_REFPRSC_Pos)
466 #define FL_RCC_PLL_PSC_DIV12 (0x4U << RCC_PLLCR_REFPRSC_Pos)
467 #define FL_RCC_PLL_PSC_DIV16 (0x5U << RCC_PLLCR_REFPRSC_Pos)
468 #define FL_RCC_PLL_PSC_DIV24 (0x6U << RCC_PLLCR_REFPRSC_Pos)
469 #define FL_RCC_PLL_PSC_DIV32 (0x7U << RCC_PLLCR_REFPRSC_Pos)
470
471
472 #define FL_RCC_PLL_OUTPUT_X1 (0x0U << RCC_PLLCR_OSEL_Pos)
473 #define FL_RCC_PLL_OUTPUT_X2 (0x1U << RCC_PLLCR_OSEL_Pos)
474
475
476 #define FL_RCC_XTLF_FDET_ENABLE (0x5U << RCC_XTLFCR_EN_Pos)
477 #define FL_RCC_XTLF_FDET_DISABLE (0xaU << RCC_XTLFCR_EN_Pos)
478
479 #define FL_RCC_XTLF_WORK_CURRENT_450NA (0x0U << RCC_XTLFCR_IPW_Pos)
480 #define FL_RCC_XTLF_WORK_CURRENT_400NA (0x1U << RCC_XTLFCR_IPW_Pos)
481 #define FL_RCC_XTLF_WORK_CURRENT_350NA (0x2U << RCC_XTLFCR_IPW_Pos)
482 #define FL_RCC_XTLF_WORK_CURRENT_300NA (0x3U << RCC_XTLFCR_IPW_Pos)
483 #define FL_RCC_XTLF_WORK_CURRENT_250NA (0x4U << RCC_XTLFCR_IPW_Pos)
484 #define FL_RCC_XTLF_WORK_CURRENT_200NA (0x5U << RCC_XTLFCR_IPW_Pos)
485 #define FL_RCC_XTLF_WORK_CURRENT_150NA (0x6U << RCC_XTLFCR_IPW_Pos)
486 #define FL_RCC_XTLF_WORK_CURRENT_100NA (0x7U << RCC_XTLFCR_IPW_Pos)
487
488
489 #define FL_RCC_RCMF_PSC_DIV1 (0x0U << RCC_RCMFCR_PSC_Pos)
490 #define FL_RCC_RCMF_PSC_DIV4 (0x1U << RCC_RCMFCR_PSC_Pos)
491 #define FL_RCC_RCMF_PSC_DIV8 (0x2U << RCC_RCMFCR_PSC_Pos)
492 #define FL_RCC_RCMF_PSC_DIV16 (0x3U << RCC_RCMFCR_PSC_Pos)
493
494
495 #define FL_RCC_EXTI_CLK_SOURCE_LSCLK (0x1U << RCC_OPCCR1_EXTICKS_Pos)
496 #define FL_RCC_EXTI_CLK_SOURCE_HCLK (0x0U << RCC_OPCCR1_EXTICKS_Pos)
497
498
499 #define FL_RCC_LPUART1_CLK_SOURCE_LSCLK (0x0U << RCC_OPCCR1_LPUART1CKS_Pos)
500 #define FL_RCC_LPUART1_CLK_SOURCE_RCHF (0x1U << RCC_OPCCR1_LPUART1CKS_Pos)
501 #define FL_RCC_LPUART1_CLK_SOURCE_RCMF (0x2U << RCC_OPCCR1_LPUART1CKS_Pos)
502
503
504 #define FL_RCC_LPUART0_CLK_SOURCE_LSCLK (0x0U << RCC_OPCCR1_LPUART0CKS_Pos)
505 #define FL_RCC_LPUART0_CLK_SOURCE_RCHF (0x1U << RCC_OPCCR1_LPUART0CKS_Pos)
506 #define FL_RCC_LPUART0_CLK_SOURCE_RCMF (0x2U << RCC_OPCCR1_LPUART0CKS_Pos)
507
508
509 #define FL_RCC_I2C_CLK_SOURCE_APB1CLK (0x0U << RCC_OPCCR1_I2CCKS_Pos)
510 #define FL_RCC_I2C_CLK_SOURCE_RCHF (0x1U << RCC_OPCCR1_I2CCKS_Pos)
511 #define FL_RCC_I2C_CLK_SOURCE_SYSCLK (0x2U << RCC_OPCCR1_I2CCKS_Pos)
512 #define FL_RCC_I2C_CLK_SOURCE_RCMF_PSC (0x3U << RCC_OPCCR1_I2CCKS_Pos)
513
514
515 #define FL_RCC_ATIM_CLK_SOURCE_APB2CLK (0x0U << RCC_OPCCR1_ATCKS_Pos)
516 #define FL_RCC_ATIM_CLK_SOURCE_USBPHYBCK120M (0x1U << RCC_OPCCR1_ATCKS_Pos)
517 #define FL_RCC_ATIM_CLK_SOURCE_PLLx2 (0x3U << RCC_OPCCR1_ATCKS_Pos)
518
519
520 #define FL_RCC_UART1_CLK_SOURCE_APB1CLK (0x0U << RCC_OPCCR1_UART1CKS_Pos)
521 #define FL_RCC_UART1_CLK_SOURCE_RCHF (0x1U << RCC_OPCCR1_UART1CKS_Pos)
522 #define FL_RCC_UART1_CLK_SOURCE_SYSCLK (0x2U << RCC_OPCCR1_UART1CKS_Pos)
523 #define FL_RCC_UART1_CLK_SOURCE_RCMF_PSC (0x3U << RCC_OPCCR1_UART1CKS_Pos)
524
525
526 #define FL_RCC_UART0_CLK_SOURCE_APB1CLK (0x0U << RCC_OPCCR1_UART0CKS_Pos)
527 #define FL_RCC_UART0_CLK_SOURCE_RCHF (0x1U << RCC_OPCCR1_UART0CKS_Pos)
528 #define FL_RCC_UART0_CLK_SOURCE_SYSCLK (0x2U << RCC_OPCCR1_UART0CKS_Pos)
529 #define FL_RCC_UART0_CLK_SOURCE_RCMF_PSC (0x3U << RCC_OPCCR1_UART0CKS_Pos)
530
531
532 #define FL_RCC_RNG_PSC_DIV1 (0x0U << RCC_OPCCR2_RNGPRSC_Pos)
533 #define FL_RCC_RNG_PSC_DIV2 (0x1U << RCC_OPCCR2_RNGPRSC_Pos)
534 #define FL_RCC_RNG_PSC_DIV4 (0x2U << RCC_OPCCR2_RNGPRSC_Pos)
535 #define FL_RCC_RNG_PSC_DIV8 (0x3U << RCC_OPCCR2_RNGPRSC_Pos)
536 #define FL_RCC_RNG_PSC_DIV16 (0x4U << RCC_OPCCR2_RNGPRSC_Pos)
537 #define FL_RCC_RNG_PSC_DIV32 (0x5U << RCC_OPCCR2_RNGPRSC_Pos)
538
539
540 #define FL_RCC_ADC_PSC_DIV1 (0x0U << RCC_OPCCR2_ADCPRSC_Pos)
541 #define FL_RCC_ADC_PSC_DIV2 (0x1U << RCC_OPCCR2_ADCPRSC_Pos)
542 #define FL_RCC_ADC_PSC_DIV4 (0x2U << RCC_OPCCR2_ADCPRSC_Pos)
543 #define FL_RCC_ADC_PSC_DIV8 (0x3U << RCC_OPCCR2_ADCPRSC_Pos)
544 #define FL_RCC_ADC_PSC_DIV16 (0x4U << RCC_OPCCR2_ADCPRSC_Pos)
545 #define FL_RCC_ADC_PSC_DIV32 (0x5U << RCC_OPCCR2_ADCPRSC_Pos)
546
547
548 #define FL_RCC_USB_CLK_REF_XTLF (0x0U << RCC_OPCCR2_USBCKS_Pos)
549 #define FL_RCC_USB_CLK_REF_XTHF (0x1U << RCC_OPCCR2_USBCKS_Pos)
550 #define FL_RCC_USB_CLK_REF_RCHF (0x2U << RCC_OPCCR2_USBCKS_Pos)
551
552
553 #define FL_RCC_ADC_CLK_SOURCE_RCMF_PSC (0x0U << RCC_OPCCR2_ADCCKS_Pos)
554 #define FL_RCC_ADC_CLK_SOURCE_RCHF (0x1U << RCC_OPCCR2_ADCCKS_Pos)
555 #define FL_RCC_ADC_CLK_SOURCE_XTHF (0x2U << RCC_OPCCR2_ADCCKS_Pos)
556 #define FL_RCC_ADC_CLK_SOURCE_PLL (0x3U << RCC_OPCCR2_ADCCKS_Pos)
557
558
559 #define FL_RCC_LPTIM32_CLK_SOURCE_APB1CLK (0x0U << RCC_OPCCR2_LPT32CKS_Pos)
560 #define FL_RCC_LPTIM32_CLK_SOURCE_LSCLK (0x1U << RCC_OPCCR2_LPT32CKS_Pos)
561 #define FL_RCC_LPTIM32_CLK_SOURCE_LPOSC (0x2U << RCC_OPCCR2_LPT32CKS_Pos)
562 #define FL_RCC_LPTIM32_CLK_SOURCE_RCMF_PSC (0x3U << RCC_OPCCR2_LPT32CKS_Pos)
563
564
565 #define FL_RCC_BSTIM32_CLK_SOURCE_APB2CLK (0x0U << RCC_OPCCR2_BT32CKS_Pos)
566 #define FL_RCC_BSTIM32_CLK_SOURCE_LSCLK (0x1U << RCC_OPCCR2_BT32CKS_Pos)
567 #define FL_RCC_BSTIM32_CLK_SOURCE_LPOSC (0x2U << RCC_OPCCR2_BT32CKS_Pos)
568 #define FL_RCC_BSTIM32_CLK_SOURCE_RCMF_PSC (0x3U << RCC_OPCCR2_BT32CKS_Pos)
569
570
571 #define FL_RCC_AHB_MASTER_PRIORITY_DMA_FIRST (0x0U << RCC_AHBMCR_MPRIL_Pos)
572 #define FL_RCC_AHB_MASTER_PRIORITY_CPU_FIRST (0x1U << RCC_AHBMCR_MPRIL_Pos)
573
574
575 #define FL_RCC_LSCLK_CLK_SOURCE_LPOSC (0x55U << RCC_LSCLKSEL_SEL_Pos)
576 #define FL_RCC_LSCLK_CLK_SOURCE_XTLF (0xAAU << RCC_LSCLKSEL_SEL_Pos)
577
578 #define FL_RCC_USB_CLK_REF_SOURCE_SOF (0x0U << RCC_PHYBCKCR_OUTCLKSEL_Pos)
579 #define FL_RCC_USB_CLK_REF_SOURCE_CORECLKIN (0x1U << RCC_PHYBCKCR_OUTCLKSEL_Pos)
580
581
582 /**
583 * @}
584 */
585 /* Exported functions ---------------------------------------------------------------------------------*/
586 /** @defgroup RCC_FL_Exported_Functions RCC Exported Functions
587 * @{
588 */
589
590 /**
591 * @brief Enable XTHF Fail Interrupt
592 * @rmtoll IER HFDET_IE FL_FDET_EnableIT_XTHFFail
593 * @retval None
594 */
FL_FDET_EnableIT_XTHFFail(void)595 __STATIC_INLINE void FL_FDET_EnableIT_XTHFFail(void)
596 {
597 SET_BIT(FDET->IER, FDET_IER_HFDET_IE_Msk);
598 }
599
600 /**
601 * @brief Get XTHF Fail Interrupt Enable Status
602 * @rmtoll IER HFDET_IE FL_FDET_IsEnabledIT_XTHFFail
603 * @retval State of bit (1 or 0).
604 */
FL_FDET_IsEnabledIT_XTHFFail(void)605 __STATIC_INLINE uint32_t FL_FDET_IsEnabledIT_XTHFFail(void)
606 {
607 return (uint32_t)(READ_BIT(FDET->IER, FDET_IER_HFDET_IE_Msk) == FDET_IER_HFDET_IE_Msk);
608 }
609
610 /**
611 * @brief Disable XTHF Fail Interrupt
612 * @rmtoll IER HFDET_IE FL_FDET_DisableIT_XTHFFail
613 * @retval None
614 */
FL_FDET_DisableIT_XTHFFail(void)615 __STATIC_INLINE void FL_FDET_DisableIT_XTHFFail(void)
616 {
617 CLEAR_BIT(FDET->IER, FDET_IER_HFDET_IE_Msk);
618 }
619
620 /**
621 * @brief Enable XTLF Fail Interrupt
622 * @rmtoll IER LFDET_IE FL_FDET_EnableIT_XTLFFail
623 * @retval None
624 */
FL_FDET_EnableIT_XTLFFail(void)625 __STATIC_INLINE void FL_FDET_EnableIT_XTLFFail(void)
626 {
627 SET_BIT(FDET->IER, FDET_IER_LFDET_IE_Msk);
628 }
629
630 /**
631 * @brief Get XTLF Fail Interrupt Enable Status
632 * @rmtoll IER LFDET_IE FL_FDET_IsEnabledIT_XTLFFail
633 * @retval State of bit (1 or 0).
634 */
FL_FDET_IsEnabledIT_XTLFFail(void)635 __STATIC_INLINE uint32_t FL_FDET_IsEnabledIT_XTLFFail(void)
636 {
637 return (uint32_t)(READ_BIT(FDET->IER, FDET_IER_LFDET_IE_Msk) == FDET_IER_LFDET_IE_Msk);
638 }
639
640 /**
641 * @brief Disable XTLF Fail Interrupt
642 * @rmtoll IER LFDET_IE FL_FDET_DisableIT_XTLFFail
643 * @retval None
644 */
FL_FDET_DisableIT_XTLFFail(void)645 __STATIC_INLINE void FL_FDET_DisableIT_XTLFFail(void)
646 {
647 CLEAR_BIT(FDET->IER, FDET_IER_LFDET_IE_Msk);
648 }
649
650 /**
651 * @brief Get XTHF Vibrating Output
652 * @rmtoll ISR HFDETO FL_FDET_IsActiveFlag_XTHFFailOutput
653 * @retval State of bit (1 or 0).
654 */
FL_FDET_IsActiveFlag_XTHFFailOutput(void)655 __STATIC_INLINE uint32_t FL_FDET_IsActiveFlag_XTHFFailOutput(void)
656 {
657 return (uint32_t)(READ_BIT(FDET->ISR, FDET_ISR_HFDETO_Msk) == (FDET_ISR_HFDETO_Msk));
658 }
659
660 /**
661 * @brief Get XTLF Vibrating Output
662 * @rmtoll ISR LFDETO FL_FDET_IsActiveFlag_XTLFFailOutput
663 * @retval State of bit (1 or 0).
664 */
FL_FDET_IsActiveFlag_XTLFFailOutput(void)665 __STATIC_INLINE uint32_t FL_FDET_IsActiveFlag_XTLFFailOutput(void)
666 {
667 return (uint32_t)(READ_BIT(FDET->ISR, FDET_ISR_LFDETO_Msk) == (FDET_ISR_LFDETO_Msk));
668 }
669
670 /**
671 * @brief Get XTHF Vibrating Flag
672 * @rmtoll ISR HFDETIF FL_FDET_IsActiveFlag_XTHFFail
673 * @retval State of bit (1 or 0).
674 */
FL_FDET_IsActiveFlag_XTHFFail(void)675 __STATIC_INLINE uint32_t FL_FDET_IsActiveFlag_XTHFFail(void)
676 {
677 return (uint32_t)(READ_BIT(FDET->ISR, FDET_ISR_HFDETIF_Msk) == (FDET_ISR_HFDETIF_Msk));
678 }
679
680 /**
681 * @brief Clear XTHF Vibrating Flag
682 * @rmtoll ISR HFDETIF FL_FDET_ClearFlag_XTHFFail
683 * @retval None
684 */
FL_FDET_ClearFlag_XTHFFail(void)685 __STATIC_INLINE void FL_FDET_ClearFlag_XTHFFail(void)
686 {
687 WRITE_REG(FDET->ISR, FDET_ISR_LFDETIF_Msk);
688 }
689
690 /**
691 * @brief Get XTLF Vibrating Output
692 * @rmtoll ISR LFDETIF FL_FDET_IsActiveFlag_XTLFFail
693 * @retval State of bit (1 or 0).
694 */
FL_FDET_IsActiveFlag_XTLFFail(void)695 __STATIC_INLINE uint32_t FL_FDET_IsActiveFlag_XTLFFail(void)
696 {
697 return (uint32_t)(READ_BIT(FDET->ISR, FDET_ISR_LFDETIF_Msk) == (FDET_ISR_LFDETIF_Msk));
698 }
699
700 /**
701 * @brief Clear XTLF Vibrating Output
702 * @rmtoll ISR LFDETIF FL_FDET_ClearFlag_XTLFFail
703 * @retval None
704 */
FL_FDET_ClearFlag_XTLFFail(void)705 __STATIC_INLINE void FL_FDET_ClearFlag_XTLFFail(void)
706 {
707 WRITE_REG(FDET->ISR, FDET_ISR_HFDETIF_Msk);
708 }
709
710 /**
711 * @brief Enable LSCLK Auto Switch
712 * @rmtoll SYSCLKCR LSCATS FL_RCC_EnableLSCLKAutoSwitch
713 * @retval None
714 */
FL_RCC_EnableLSCLKAutoSwitch(void)715 __STATIC_INLINE void FL_RCC_EnableLSCLKAutoSwitch(void)
716 {
717 SET_BIT(RCC->SYSCLKCR, RCC_SYSCLKCR_LSCATS_Msk);
718 }
719
720 /**
721 * @brief Get LSCLK Auto Switch Enable Status
722 * @rmtoll SYSCLKCR LSCATS FL_RCC_IsEnabledLSCLKAutoSwitch
723 * @retval State of bit (1 or 0).
724 */
FL_RCC_IsEnabledLSCLKAutoSwitch(void)725 __STATIC_INLINE uint32_t FL_RCC_IsEnabledLSCLKAutoSwitch(void)
726 {
727 return (uint32_t)(READ_BIT(RCC->SYSCLKCR, RCC_SYSCLKCR_LSCATS_Msk) == RCC_SYSCLKCR_LSCATS_Msk);
728 }
729
730 /**
731 * @brief Disable LSCLK Auto Switch
732 * @rmtoll SYSCLKCR LSCATS FL_RCC_DisableLSCLKAutoSwitch
733 * @retval None
734 */
FL_RCC_DisableLSCLKAutoSwitch(void)735 __STATIC_INLINE void FL_RCC_DisableLSCLKAutoSwitch(void)
736 {
737 CLEAR_BIT(RCC->SYSCLKCR, RCC_SYSCLKCR_LSCATS_Msk);
738 }
739
740 /**
741 * @brief Enable Sleep/DeepSleep Mode External Interrupt
742 * @rmtoll SYSCLKCR SLP_ENEXTI FL_RCC_EnableEXTIOnSleep
743 * @retval None
744 */
FL_RCC_EnableEXTIOnSleep(void)745 __STATIC_INLINE void FL_RCC_EnableEXTIOnSleep(void)
746 {
747 SET_BIT(RCC->SYSCLKCR, RCC_SYSCLKCR_SLP_ENEXTI_Msk);
748 }
749
750 /**
751 * @brief Get Sleep/DeepSleep Mode External Interrupt Enable Status
752 * @rmtoll SYSCLKCR SLP_ENEXTI FL_RCC_IsEnabledEXTIOnSleep
753 * @retval State of bit (1 or 0).
754 */
FL_RCC_IsEnabledEXTIOnSleep(void)755 __STATIC_INLINE uint32_t FL_RCC_IsEnabledEXTIOnSleep(void)
756 {
757 return (uint32_t)(READ_BIT(RCC->SYSCLKCR, RCC_SYSCLKCR_SLP_ENEXTI_Msk) == RCC_SYSCLKCR_SLP_ENEXTI_Msk);
758 }
759
760 /**
761 * @brief Disable Sleep/DeepSleep Mode External Interrupt
762 * @rmtoll SYSCLKCR SLP_ENEXTI FL_RCC_DisableEXTIOnSleep
763 * @retval None
764 */
FL_RCC_DisableEXTIOnSleep(void)765 __STATIC_INLINE void FL_RCC_DisableEXTIOnSleep(void)
766 {
767 CLEAR_BIT(RCC->SYSCLKCR, RCC_SYSCLKCR_SLP_ENEXTI_Msk);
768 }
769
770 /**
771 * @brief Set APB2 Prescaler
772 * @rmtoll SYSCLKCR APBPRES2 FL_RCC_SetAPB2Prescaler
773 * @param prescaler This parameter can be one of the following values:
774 * @arg @ref FL_RCC_APB2CLK_PSC_DIV1
775 * @arg @ref FL_RCC_APB2CLK_PSC_DIV2
776 * @arg @ref FL_RCC_APB2CLK_PSC_DIV4
777 * @arg @ref FL_RCC_APB2CLK_PSC_DIV8
778 * @arg @ref FL_RCC_APB2CLK_PSC_DIV16
779 * @retval None
780 */
FL_RCC_SetAPB2Prescaler(uint32_t prescaler)781 __STATIC_INLINE void FL_RCC_SetAPB2Prescaler(uint32_t prescaler)
782 {
783 MODIFY_REG(RCC->SYSCLKCR, RCC_SYSCLKCR_APBPRES2_Msk, prescaler);
784 }
785
786 /**
787 * @brief Get APB2 Prescaler
788 * @rmtoll SYSCLKCR APBPRES2 FL_RCC_GetAPB2Prescaler
789 * @retval Returned value can be one of the following values:
790 * @arg @ref FL_RCC_APB2CLK_PSC_DIV1
791 * @arg @ref FL_RCC_APB2CLK_PSC_DIV2
792 * @arg @ref FL_RCC_APB2CLK_PSC_DIV4
793 * @arg @ref FL_RCC_APB2CLK_PSC_DIV8
794 * @arg @ref FL_RCC_APB2CLK_PSC_DIV16
795 */
FL_RCC_GetAPB2Prescaler(void)796 __STATIC_INLINE uint32_t FL_RCC_GetAPB2Prescaler(void)
797 {
798 return (uint32_t)(READ_BIT(RCC->SYSCLKCR, RCC_SYSCLKCR_APBPRES2_Msk));
799 }
800
801 /**
802 * @brief Set APB1 Prescaler
803 * @rmtoll SYSCLKCR APBPRES1 FL_RCC_SetAPB1Prescaler
804 * @param prescaler This parameter can be one of the following values:
805 * @arg @ref FL_RCC_APB1CLK_PSC_DIV1
806 * @arg @ref FL_RCC_APB1CLK_PSC_DIV2
807 * @arg @ref FL_RCC_APB1CLK_PSC_DIV4
808 * @arg @ref FL_RCC_APB1CLK_PSC_DIV8
809 * @arg @ref FL_RCC_APB1CLK_PSC_DIV16
810 * @retval None
811 */
FL_RCC_SetAPB1Prescaler(uint32_t prescaler)812 __STATIC_INLINE void FL_RCC_SetAPB1Prescaler(uint32_t prescaler)
813 {
814 MODIFY_REG(RCC->SYSCLKCR, RCC_SYSCLKCR_APBPRES1_Msk, prescaler);
815 }
816
817 /**
818 * @brief Get APB1 Prescaler
819 * @rmtoll SYSCLKCR APBPRES1 FL_RCC_GetAPB1Prescaler
820 * @retval Returned value can be one of the following values:
821 * @arg @ref FL_RCC_APB1CLK_PSC_DIV1
822 * @arg @ref FL_RCC_APB1CLK_PSC_DIV2
823 * @arg @ref FL_RCC_APB1CLK_PSC_DIV4
824 * @arg @ref FL_RCC_APB1CLK_PSC_DIV8
825 * @arg @ref FL_RCC_APB1CLK_PSC_DIV16
826 */
FL_RCC_GetAPB1Prescaler(void)827 __STATIC_INLINE uint32_t FL_RCC_GetAPB1Prescaler(void)
828 {
829 return (uint32_t)(READ_BIT(RCC->SYSCLKCR, RCC_SYSCLKCR_APBPRES1_Msk));
830 }
831
832 /**
833 * @brief Set AHB Prescaler
834 * @rmtoll SYSCLKCR AHBPRES FL_RCC_SetAHBPrescaler
835 * @param prescaler This parameter can be one of the following values:
836 * @arg @ref FL_RCC_AHBCLK_PSC_DIV1
837 * @arg @ref FL_RCC_AHBCLK_PSC_DIV2
838 * @arg @ref FL_RCC_AHBCLK_PSC_DIV4
839 * @arg @ref FL_RCC_AHBCLK_PSC_DIV8
840 * @arg @ref FL_RCC_AHBCLK_PSC_DIV16
841 * @retval None
842 */
FL_RCC_SetAHBPrescaler(uint32_t prescaler)843 __STATIC_INLINE void FL_RCC_SetAHBPrescaler(uint32_t prescaler)
844 {
845 MODIFY_REG(RCC->SYSCLKCR, RCC_SYSCLKCR_AHBPRES_Msk, prescaler);
846 }
847
848 /**
849 * @brief Get AHB Prescaler
850 * @rmtoll SYSCLKCR AHBPRES FL_RCC_GetAHBPrescaler
851 * @retval Returned value can be one of the following values:
852 * @arg @ref FL_RCC_AHBCLK_PSC_DIV1
853 * @arg @ref FL_RCC_AHBCLK_PSC_DIV2
854 * @arg @ref FL_RCC_AHBCLK_PSC_DIV4
855 * @arg @ref FL_RCC_AHBCLK_PSC_DIV8
856 * @arg @ref FL_RCC_AHBCLK_PSC_DIV16
857 */
FL_RCC_GetAHBPrescaler(void)858 __STATIC_INLINE uint32_t FL_RCC_GetAHBPrescaler(void)
859 {
860 return (uint32_t)(READ_BIT(RCC->SYSCLKCR, RCC_SYSCLKCR_AHBPRES_Msk));
861 }
862
863 /**
864 * @brief Set USB PHY BCK Output Clock Source
865 * @rmtoll SYSCLKCR BCKOSEL FL_RCC_SetUSBClockOutput
866 * @param output This parameter can be one of the following values:
867 * @arg @ref FL_RCC_USB_CLK_OUT_48M
868 * @arg @ref FL_RCC_USB_CLK_OUT_120M
869 * @retval None
870 */
FL_RCC_SetUSBClockOutput(uint32_t output)871 __STATIC_INLINE void FL_RCC_SetUSBClockOutput(uint32_t output)
872 {
873 MODIFY_REG(RCC->SYSCLKCR, RCC_SYSCLKCR_BCKOSEL_Msk, output);
874 }
875
876 /**
877 * @brief Get USB PHY BCK Output Clock Source Setting
878 * @rmtoll SYSCLKCR BCKOSEL FL_RCC_GetUSBClockOutput
879 * @retval Returned value can be one of the following values:
880 * @arg @ref FL_RCC_USB_CLK_OUT_48M
881 * @arg @ref FL_RCC_USB_CLK_OUT_120M
882 */
FL_RCC_GetUSBClockOutput(void)883 __STATIC_INLINE uint32_t FL_RCC_GetUSBClockOutput(void)
884 {
885 return (uint32_t)(READ_BIT(RCC->SYSCLKCR, RCC_SYSCLKCR_BCKOSEL_Msk));
886 }
887
888 /**
889 * @brief Set System Clock Source
890 * @rmtoll SYSCLKCR SYSCLKSEL FL_RCC_SetSystemClockSource
891 * @param clock This parameter can be one of the following values:
892 * @arg @ref FL_RCC_SYSTEM_CLK_SOURCE_RCHF
893 * @arg @ref FL_RCC_SYSTEM_CLK_SOURCE_XTHF
894 * @arg @ref FL_RCC_SYSTEM_CLK_SOURCE_PLL
895 * @arg @ref FL_RCC_SYSTEM_CLK_SOURCE_RCMF_PSC
896 * @arg @ref FL_RCC_SYSTEM_CLK_SOURCE_LSCLK
897 * @arg @ref FL_RCC_SYSTEM_CLK_SOURCE_LPOSC
898 * @arg @ref FL_RCC_SYSTEM_CLK_SOURCE_USBCLK
899 * @retval None
900 */
FL_RCC_SetSystemClockSource(uint32_t clock)901 __STATIC_INLINE void FL_RCC_SetSystemClockSource(uint32_t clock)
902 {
903 MODIFY_REG(RCC->SYSCLKCR, RCC_SYSCLKCR_SYSCLKSEL_Msk, clock);
904 }
905
906 /**
907 * @brief Set System Clock Source Setting
908 * @rmtoll SYSCLKCR SYSCLKSEL FL_RCC_GetSystemClockSource
909 * @retval Returned value can be one of the following values:
910 * @arg @ref FL_RCC_SYSTEM_CLK_SOURCE_RCHF
911 * @arg @ref FL_RCC_SYSTEM_CLK_SOURCE_XTHF
912 * @arg @ref FL_RCC_SYSTEM_CLK_SOURCE_PLL
913 * @arg @ref FL_RCC_SYSTEM_CLK_SOURCE_RCMF_PSC
914 * @arg @ref FL_RCC_SYSTEM_CLK_SOURCE_LSCLK
915 * @arg @ref FL_RCC_SYSTEM_CLK_SOURCE_LPOSC
916 * @arg @ref FL_RCC_SYSTEM_CLK_SOURCE_USBCLK
917 */
FL_RCC_GetSystemClockSource(void)918 __STATIC_INLINE uint32_t FL_RCC_GetSystemClockSource(void)
919 {
920 return (uint32_t)(READ_BIT(RCC->SYSCLKCR, RCC_SYSCLKCR_SYSCLKSEL_Msk));
921 }
922
923 /**
924 * @brief Set RCHF Frequency
925 * @rmtoll RCHFCR FSEL FL_RCC_RCHF_SetFrequency
926 * @param frequency This parameter can be one of the following values:
927 * @arg @ref FL_RCC_RCHF_FREQUENCY_8MHZ
928 * @arg @ref FL_RCC_RCHF_FREQUENCY_16MHZ
929 * @arg @ref FL_RCC_RCHF_FREQUENCY_24MHZ
930 * @retval None
931 */
FL_RCC_RCHF_SetFrequency(uint32_t frequency)932 __STATIC_INLINE void FL_RCC_RCHF_SetFrequency(uint32_t frequency)
933 {
934 MODIFY_REG(RCC->RCHFCR, RCC_RCHFCR_FSEL_Msk, frequency);
935 }
936
937 /**
938 * @brief Get RCHF Frequency Setting
939 * @rmtoll RCHFCR FSEL FL_RCC_RCHF_GetFrequency
940 * @retval Returned value can be one of the following values:
941 * @arg @ref FL_RCC_RCHF_FREQUENCY_8MHZ
942 * @arg @ref FL_RCC_RCHF_FREQUENCY_16MHZ
943 * @arg @ref FL_RCC_RCHF_FREQUENCY_24MHZ
944 */
FL_RCC_RCHF_GetFrequency(void)945 __STATIC_INLINE uint32_t FL_RCC_RCHF_GetFrequency(void)
946 {
947 return (uint32_t)(READ_BIT(RCC->RCHFCR, RCC_RCHFCR_FSEL_Msk));
948 }
949
950 /**
951 * @brief Enable RCHF
952 * @rmtoll RCHFCR EN FL_RCC_RCHF_Enable
953 * @retval None
954 */
FL_RCC_RCHF_Enable(void)955 __STATIC_INLINE void FL_RCC_RCHF_Enable(void)
956 {
957 SET_BIT(RCC->RCHFCR, RCC_RCHFCR_EN_Msk);
958 }
959
960 /**
961 * @brief Get RCHF Enable Status
962 * @rmtoll RCHFCR EN FL_RCC_RCHF_IsEnabled
963 * @retval State of bit (1 or 0).
964 */
FL_RCC_RCHF_IsEnabled(void)965 __STATIC_INLINE uint32_t FL_RCC_RCHF_IsEnabled(void)
966 {
967 return (uint32_t)(READ_BIT(RCC->RCHFCR, RCC_RCHFCR_EN_Msk) == RCC_RCHFCR_EN_Msk);
968 }
969
970 /**
971 * @brief Disable RCHF
972 * @rmtoll RCHFCR EN FL_RCC_RCHF_Disable
973 * @retval None
974 */
FL_RCC_RCHF_Disable(void)975 __STATIC_INLINE void FL_RCC_RCHF_Disable(void)
976 {
977 CLEAR_BIT(RCC->RCHFCR, RCC_RCHFCR_EN_Msk);
978 }
979
980 /**
981 * @brief Set RCMF Frequency Trim Value
982 * @rmtoll RCMFTR TRIM FL_RCC_RCMF_WriteTrimValue
983 * @param value TrimValue The value of RCMF trim
984 * @retval None
985 */
FL_RCC_RCMF_WriteTrimValue(uint32_t value)986 __STATIC_INLINE void FL_RCC_RCMF_WriteTrimValue(uint32_t value)
987 {
988 MODIFY_REG(RCC->RCMFTR, (0x7fU << 0U), (value << 0U));
989 }
990
991 /**
992 * @brief Get RCMF Frequency Trim Value
993 * @rmtoll RCMFTR TRIM FL_RCC_RCMF_ReadTrimValue
994 * @retval The Value of RCMF trim
995 */
FL_RCC_RCMF_ReadTrimValue(void)996 __STATIC_INLINE uint32_t FL_RCC_RCMF_ReadTrimValue(void)
997 {
998 return (uint32_t)(READ_BIT(RCC->RCMFTR, 0x7fU) >> 0U);
999 }
1000
1001 /**
1002 * @brief Enable PLL
1003 * @rmtoll PLLCR EN FL_RCC_PLL_Enable
1004 * @retval None
1005 */
FL_RCC_PLL_Enable(void)1006 __STATIC_INLINE void FL_RCC_PLL_Enable(void)
1007 {
1008 SET_BIT(RCC->PLLCR, RCC_PLLCR_EN_Msk);
1009 }
1010
1011 /**
1012 * @brief Get PLL Enable Status
1013 * @rmtoll PLLCR EN FL_RCC_PLL_Disable
1014 * @retval None
1015 */
FL_RCC_PLL_Disable(void)1016 __STATIC_INLINE void FL_RCC_PLL_Disable(void)
1017 {
1018 CLEAR_BIT(RCC->PLLCR, RCC_PLLCR_EN_Msk);
1019 }
1020
1021 /**
1022 * @brief Disable PLL
1023 * @rmtoll PLLCR EN FL_RCC_PLL_IsEnabled
1024 * @retval State of bit (1 or 0).
1025 */
FL_RCC_PLL_IsEnabled(void)1026 __STATIC_INLINE uint32_t FL_RCC_PLL_IsEnabled(void)
1027 {
1028 return (uint32_t)(READ_BIT(RCC->PLLCR, RCC_PLLCR_EN_Msk) == RCC_PLLCR_EN_Msk);
1029 }
1030
1031 /**
1032 * @brief Get PLL Ready Status
1033 * @rmtoll PLLCR LOCKED FL_RCC_IsActiveFlag_PLLReady
1034 * @retval State of bit (1 or 0).
1035 */
FL_RCC_IsActiveFlag_PLLReady(void)1036 __STATIC_INLINE uint32_t FL_RCC_IsActiveFlag_PLLReady(void)
1037 {
1038 return (uint32_t)(READ_BIT(RCC->PLLCR, RCC_PLLCR_LOCKED_Msk) == (RCC_PLLCR_LOCKED_Msk));
1039 }
1040
1041 /**
1042 * @brief Set PLL Input Source
1043 * @rmtoll PLLCR INSEL FL_RCC_PLL_SetClockSource
1044 * @param clock This parameter can be one of the following values:
1045 * @arg @ref FL_RCC_PLL_CLK_SOURCE_RCHF
1046 * @arg @ref FL_RCC_PLL_CLK_SOURCE_XTHF
1047 * @retval None
1048 */
FL_RCC_PLL_SetClockSource(uint32_t clock)1049 __STATIC_INLINE void FL_RCC_PLL_SetClockSource(uint32_t clock)
1050 {
1051 MODIFY_REG(RCC->PLLCR, RCC_PLLCR_INSEL_Msk, clock);
1052 }
1053
1054 /**
1055 * @brief Get PLL Input Source Setting
1056 * @rmtoll PLLCR INSEL FL_RCC_PLL_GetClockSource
1057 * @retval Returned value can be one of the following values:
1058 * @arg @ref FL_RCC_PLL_CLK_SOURCE_RCHF
1059 * @arg @ref FL_RCC_PLL_CLK_SOURCE_XTHF
1060 */
FL_RCC_PLL_GetClockSource(void)1061 __STATIC_INLINE uint32_t FL_RCC_PLL_GetClockSource(void)
1062 {
1063 return (uint32_t)(READ_BIT(RCC->PLLCR, RCC_PLLCR_INSEL_Msk));
1064 }
1065
1066 /**
1067 * @brief Set PLL Multiplier
1068 * @rmtoll PLLCR DB FL_RCC_PLL_WriteMultiplier
1069 * @param multiplier
1070 * @retval None
1071 */
FL_RCC_PLL_WriteMultiplier(uint32_t multiplier)1072 __STATIC_INLINE void FL_RCC_PLL_WriteMultiplier(uint32_t multiplier)
1073 {
1074 MODIFY_REG(RCC->PLLCR, (0x7fU << 16U), (multiplier << 16U));
1075 }
1076
1077 /**
1078 * @brief Get PLL Multiplier Setting
1079 * @rmtoll PLLCR DB FL_RCC_PLL_ReadMultiplier
1080 * @retval
1081 */
FL_RCC_PLL_ReadMultiplier(void)1082 __STATIC_INLINE uint32_t FL_RCC_PLL_ReadMultiplier(void)
1083 {
1084 return (uint32_t)(READ_BIT(RCC->PLLCR, (0x7fU << 16U)) >> 16U);
1085 }
1086
1087 /**
1088 * @brief Set PLL Prescaler
1089 * @rmtoll PLLCR REFPRSC FL_RCC_PLL_SetPrescaler
1090 * @param prescaler This parameter can be one of the following values:
1091 * @arg @ref FL_RCC_PLL_PSC_DIV1
1092 * @arg @ref FL_RCC_PLL_PSC_DIV2
1093 * @arg @ref FL_RCC_PLL_PSC_DIV4
1094 * @arg @ref FL_RCC_PLL_PSC_DIV8
1095 * @arg @ref FL_RCC_PLL_PSC_DIV12
1096 * @arg @ref FL_RCC_PLL_PSC_DIV16
1097 * @arg @ref FL_RCC_PLL_PSC_DIV24
1098 * @arg @ref FL_RCC_PLL_PSC_DIV32
1099 * @retval None
1100 */
FL_RCC_PLL_SetPrescaler(uint32_t prescaler)1101 __STATIC_INLINE void FL_RCC_PLL_SetPrescaler(uint32_t prescaler)
1102 {
1103 MODIFY_REG(RCC->PLLCR, RCC_PLLCR_REFPRSC_Msk, prescaler);
1104 }
1105
1106 /**
1107 * @brief Get PLL Prescaler Setting
1108 * @rmtoll PLLCR REFPRSC FL_RCC_PLL_GetPrescaler
1109 * @retval Returned value can be one of the following values:
1110 * @arg @ref FL_RCC_PLL_PSC_DIV1
1111 * @arg @ref FL_RCC_PLL_PSC_DIV2
1112 * @arg @ref FL_RCC_PLL_PSC_DIV4
1113 * @arg @ref FL_RCC_PLL_PSC_DIV8
1114 * @arg @ref FL_RCC_PLL_PSC_DIV12
1115 * @arg @ref FL_RCC_PLL_PSC_DIV16
1116 * @arg @ref FL_RCC_PLL_PSC_DIV24
1117 * @arg @ref FL_RCC_PLL_PSC_DIV32
1118 */
FL_RCC_PLL_GetPrescaler(void)1119 __STATIC_INLINE uint32_t FL_RCC_PLL_GetPrescaler(void)
1120 {
1121 return (uint32_t)(READ_BIT(RCC->PLLCR, RCC_PLLCR_REFPRSC_Msk));
1122 }
1123
1124 /**
1125 * @brief Set PLL Digital Domain Output
1126 * @rmtoll PLLCR OSEL FL_RCC_PLL_SetOutputMultiplier
1127 * @param multiplier This parameter can be one of the following values:
1128 * @arg @ref FL_RCC_PLL_OUTPUT_X1
1129 * @arg @ref FL_RCC_PLL_OUTPUT_X2
1130 * @retval None
1131 */
FL_RCC_PLL_SetOutputMultiplier(uint32_t multiplier)1132 __STATIC_INLINE void FL_RCC_PLL_SetOutputMultiplier(uint32_t multiplier)
1133 {
1134 MODIFY_REG(RCC->PLLCR, RCC_PLLCR_OSEL_Msk, multiplier);
1135 }
1136
1137 /**
1138 * @brief Get PLL Digital Domain Output Setting
1139 * @rmtoll PLLCR OSEL FL_RCC_PLL_GetOutputMultiplier
1140 * @retval Returned value can be one of the following values:
1141 * @arg @ref FL_RCC_PLL_OUTPUT_X1
1142 * @arg @ref FL_RCC_PLL_OUTPUT_X2
1143 */
FL_RCC_PLL_GetOutputMultiplier(void)1144 __STATIC_INLINE uint32_t FL_RCC_PLL_GetOutputMultiplier(void)
1145 {
1146 return (uint32_t)(READ_BIT(RCC->PLLCR, RCC_PLLCR_OSEL_Msk));
1147 }
1148
1149 /**
1150 * @brief Get LPOSC Enable Flag
1151 * @rmtoll LPOSCCR LPOENB FL_RCC_LPOSC_IsEnabled
1152 * @retval State of bit (1 or 0).
1153 */
FL_RCC_LPOSC_IsEnabled(void)1154 __STATIC_INLINE uint32_t FL_RCC_LPOSC_IsEnabled(void)
1155 {
1156 return (uint32_t)!(READ_BIT(RCC->LPOSCCR, RCC_LPOSCCR_LPOENB_Msk) == RCC_LPOSCCR_LPOENB_Msk);
1157 }
1158
1159 /**
1160 * @brief Enable LPOSC On/Off in Low Power Mode
1161 * @rmtoll LPOSCCR LPM_LPO_OFF FL_RCC_LPOSC_EnableSleepModeWork
1162 * @retval None
1163 */
FL_RCC_LPOSC_EnableSleepModeWork(void)1164 __STATIC_INLINE void FL_RCC_LPOSC_EnableSleepModeWork(void)
1165 {
1166 CLEAR_BIT(RCC->LPOSCCR, RCC_LPOSCCR_LPM_LPO_OFF_Msk);
1167 }
1168
1169 /**
1170 * @brief Get LPOSC On/Off Setting in Low Power Mode
1171 * @rmtoll LPOSCCR LPM_LPO_OFF FL_RCC_LPOSC_IsEnableSleepModeWork
1172 * @retval State of bit (1 or 0).
1173 */
FL_RCC_LPOSC_IsEnableSleepModeWork(void)1174 __STATIC_INLINE uint32_t FL_RCC_LPOSC_IsEnableSleepModeWork(void)
1175 {
1176 return (uint32_t)!(READ_BIT(RCC->LPOSCCR, RCC_LPOSCCR_LPM_LPO_OFF_Msk) == RCC_LPOSCCR_LPM_LPO_OFF_Msk);
1177 }
1178
1179 /**
1180 * @brief Disable LPOSC On/Off Setting in Low Power Mode
1181 * @rmtoll LPOSCCR LPM_LPO_OFF FL_RCC_LPOSC_DisableSleepModeWork
1182 * @retval None
1183 */
FL_RCC_LPOSC_DisableSleepModeWork(void)1184 __STATIC_INLINE void FL_RCC_LPOSC_DisableSleepModeWork(void)
1185 {
1186 SET_BIT(RCC->LPOSCCR, RCC_LPOSCCR_LPM_LPO_OFF_Msk);
1187 }
1188
1189 /**
1190 * @brief Enable LPOSC Chopper
1191 * @rmtoll LPOSCCR LPO_CHOP_EN FL_RCC_LPOSC_EnableChopper
1192 * @retval None
1193 */
FL_RCC_LPOSC_EnableChopper(void)1194 __STATIC_INLINE void FL_RCC_LPOSC_EnableChopper(void)
1195 {
1196 SET_BIT(RCC->LPOSCCR, RCC_LPOSCCR_LPO_CHOP_EN_Msk);
1197 }
1198
1199 /**
1200 * @brief Get LPOSC Chopper Enable Status
1201 * @rmtoll LPOSCCR LPO_CHOP_EN FL_RCC_LPOSC_IsEnabledChopper
1202 * @retval State of bit (1 or 0).
1203 */
FL_RCC_LPOSC_IsEnabledChopper(void)1204 __STATIC_INLINE uint32_t FL_RCC_LPOSC_IsEnabledChopper(void)
1205 {
1206 return (uint32_t)(READ_BIT(RCC->LPOSCCR, RCC_LPOSCCR_LPO_CHOP_EN_Msk) == RCC_LPOSCCR_LPO_CHOP_EN_Msk);
1207 }
1208
1209 /**
1210 * @brief Disable LPOSC Chopper
1211 * @rmtoll LPOSCCR LPO_CHOP_EN FL_RCC_LPOSC_DisableChopper
1212 * @retval None
1213 */
FL_RCC_LPOSC_DisableChopper(void)1214 __STATIC_INLINE void FL_RCC_LPOSC_DisableChopper(void)
1215 {
1216 CLEAR_BIT(RCC->LPOSCCR, RCC_LPOSCCR_LPO_CHOP_EN_Msk);
1217 }
1218
1219 /**
1220 * @brief Set LPOSC Frequency Trim Value
1221 * @rmtoll LPOSCTR TRIM FL_RCC_LPOSC_WriteTrimValue
1222 * @param value TrimValue The value of LPOSC trim
1223 * @retval None
1224 */
FL_RCC_LPOSC_WriteTrimValue(uint32_t value)1225 __STATIC_INLINE void FL_RCC_LPOSC_WriteTrimValue(uint32_t value)
1226 {
1227 MODIFY_REG(RCC->LPOSCTR, (0xffU << 0U), (value << 0U));
1228 }
1229
1230 /**
1231 * @brief Get LPOSC Frequency Trim Value
1232 * @rmtoll LPOSCTR TRIM FL_RCC_LPOSC_ReadTrimValue
1233 * @retval The Value of LPOSC trim
1234 */
FL_RCC_LPOSC_ReadTrimValue(void)1235 __STATIC_INLINE uint32_t FL_RCC_LPOSC_ReadTrimValue(void)
1236 {
1237 return (uint32_t)(READ_BIT(RCC->LPOSCTR, 0xffU) >> 0U);
1238 }
1239
1240 /**
1241 * @brief Enable XTLF
1242 * @rmtoll XTLFCR EN FL_RCC_XTLF_Enable
1243 * @retval None
1244 */
FL_RCC_XTLF_Enable(void)1245 __STATIC_INLINE void FL_RCC_XTLF_Enable(void)
1246 {
1247 MODIFY_REG(RCC->XTLFCR, RCC_XTLFCR_EN_Msk, FL_RCC_XTLF_FDET_ENABLE);
1248 }
1249
1250 /**
1251 * @brief Disable XTLF
1252 * @rmtoll XTLFCR EN FL_RCC_XTLF_Disable
1253 * @retval None
1254 */
FL_RCC_XTLF_Disable(void)1255 __STATIC_INLINE void FL_RCC_XTLF_Disable(void)
1256 {
1257 MODIFY_REG(RCC->XTLFCR, RCC_XTLFCR_EN_Msk, FL_RCC_XTLF_FDET_DISABLE);
1258 }
1259
1260 /**
1261 * @brief Set XTLF Current
1262 * @rmtoll XTLFCR IPW FL_RCC_XTLF_SetWorkCurrent
1263 * @param current This parameter can be one of the following values:
1264 * @arg @ref FL_RCC_XTLF_WORK_CURRENT_450NA
1265 * @arg @ref FL_RCC_XTLF_WORK_CURRENT_400NA
1266 * @arg @ref FL_RCC_XTLF_WORK_CURRENT_350NA
1267 * @arg @ref FL_RCC_XTLF_WORK_CURRENT_300NA
1268 * @arg @ref FL_RCC_XTLF_WORK_CURRENT_250NA
1269 * @arg @ref FL_RCC_XTLF_WORK_CURRENT_200NA
1270 * @arg @ref FL_RCC_XTLF_WORK_CURRENT_150NA
1271 * @arg @ref FL_RCC_XTLF_WORK_CURRENT_100NA
1272 * @retval None
1273 */
FL_RCC_XTLF_SetWorkCurrent(uint32_t current)1274 __STATIC_INLINE void FL_RCC_XTLF_SetWorkCurrent(uint32_t current)
1275 {
1276 MODIFY_REG(RCC->XTLFCR, RCC_XTLFCR_IPW_Msk, current);
1277 }
1278
1279 /**
1280 * @brief Get XTLF Current Setting
1281 * @rmtoll XTLFCR IPW FL_RCC_XTLF_GetWorkCurrent
1282 * @retval Returned value can be one of the following values:
1283 * @arg @ref FL_RCC_XTLF_WORK_CURRENT_450NA
1284 * @arg @ref FL_RCC_XTLF_WORK_CURRENT_400NA
1285 * @arg @ref FL_RCC_XTLF_WORK_CURRENT_350NA
1286 * @arg @ref FL_RCC_XTLF_WORK_CURRENT_300NA
1287 * @arg @ref FL_RCC_XTLF_WORK_CURRENT_250NA
1288 * @arg @ref FL_RCC_XTLF_WORK_CURRENT_200NA
1289 * @arg @ref FL_RCC_XTLF_WORK_CURRENT_150NA
1290 * @arg @ref FL_RCC_XTLF_WORK_CURRENT_100NA
1291 */
FL_RCC_XTLF_GetWorkCurrent(void)1292 __STATIC_INLINE uint32_t FL_RCC_XTLF_GetWorkCurrent(void)
1293 {
1294 return (uint32_t)(READ_BIT(RCC->XTLFCR, RCC_XTLFCR_IPW_Msk));
1295 }
1296
1297 /**
1298 * @brief Set XTHF Oscillation Strength
1299 * @rmtoll XTHFCR CFG FL_RCC_XTHF_WriteDriverStrength
1300 * @param strength
1301 * @retval None
1302 */
FL_RCC_XTHF_WriteDriverStrength(uint32_t strength)1303 __STATIC_INLINE void FL_RCC_XTHF_WriteDriverStrength(uint32_t strength)
1304 {
1305 MODIFY_REG(RCC->XTHFCR, (0x7U << 8U), (strength << 8U));
1306 }
1307
1308 /**
1309 * @brief Get XTHF Oscillation Strength Setting
1310 * @rmtoll XTHFCR CFG FL_RCC_XTHF_ReadDriverStrength
1311 * @retval
1312 */
FL_RCC_XTHF_ReadDriverStrength(void)1313 __STATIC_INLINE uint32_t FL_RCC_XTHF_ReadDriverStrength(void)
1314 {
1315 return (uint32_t)(READ_BIT(RCC->XTHFCR, (0x7U << 8U)) >> 8U);
1316 }
1317
1318 /**
1319 * @brief Enable XTHF
1320 * @rmtoll XTHFCR EN FL_RCC_XTHF_Enable
1321 * @retval None
1322 */
FL_RCC_XTHF_Enable(void)1323 __STATIC_INLINE void FL_RCC_XTHF_Enable(void)
1324 {
1325 SET_BIT(RCC->XTHFCR, RCC_XTHFCR_EN_Msk);
1326 }
1327
1328 /**
1329 * @brief Get XTHF Enable Status
1330 * @rmtoll XTHFCR EN FL_RCC_XTHF_IsEnabled
1331 * @retval State of bit (1 or 0).
1332 */
FL_RCC_XTHF_IsEnabled(void)1333 __STATIC_INLINE uint32_t FL_RCC_XTHF_IsEnabled(void)
1334 {
1335 return (uint32_t)(READ_BIT(RCC->XTHFCR, RCC_XTHFCR_EN_Msk) == RCC_XTHFCR_EN_Msk);
1336 }
1337
1338 /**
1339 * @brief Disable XTHF
1340 * @rmtoll XTHFCR EN FL_RCC_XTHF_Disable
1341 * @retval None
1342 */
FL_RCC_XTHF_Disable(void)1343 __STATIC_INLINE void FL_RCC_XTHF_Disable(void)
1344 {
1345 CLEAR_BIT(RCC->XTHFCR, RCC_XTHFCR_EN_Msk);
1346 }
1347
1348 /**
1349 * @brief Set RCMF Output Prescaler
1350 * @rmtoll RCMFCR PSC FL_RCC_RCMF_SetPrescaler
1351 * @param Prescaler This parameter can be one of the following values:
1352 * @arg @ref FL_RCC_RCMF_PSC_DIV1
1353 * @arg @ref FL_RCC_RCMF_PSC_DIV4
1354 * @arg @ref FL_RCC_RCMF_PSC_DIV8
1355 * @arg @ref FL_RCC_RCMF_PSC_DIV16
1356 * @retval None
1357 */
FL_RCC_RCMF_SetPrescaler(uint32_t Prescaler)1358 __STATIC_INLINE void FL_RCC_RCMF_SetPrescaler(uint32_t Prescaler)
1359 {
1360 MODIFY_REG(RCC->RCMFCR, RCC_RCMFCR_PSC_Msk, Prescaler);
1361 }
1362
1363 /**
1364 * @brief Get RCMF Output Prescaler Setting
1365 * @rmtoll RCMFCR PSC FL_RCC_RCMF_GetPrescaler
1366 * @retval Returned value can be one of the following values:
1367 * @arg @ref FL_RCC_RCMF_PSC_DIV1
1368 * @arg @ref FL_RCC_RCMF_PSC_DIV4
1369 * @arg @ref FL_RCC_RCMF_PSC_DIV8
1370 * @arg @ref FL_RCC_RCMF_PSC_DIV16
1371 */
FL_RCC_RCMF_GetPrescaler(void)1372 __STATIC_INLINE uint32_t FL_RCC_RCMF_GetPrescaler(void)
1373 {
1374 return (uint32_t)(READ_BIT(RCC->RCMFCR, RCC_RCMFCR_PSC_Msk));
1375 }
1376
1377 /**
1378 * @brief Enable RCMF
1379 * @rmtoll RCMFCR EN FL_RCC_RCMF_Enable
1380 * @retval None
1381 */
FL_RCC_RCMF_Enable(void)1382 __STATIC_INLINE void FL_RCC_RCMF_Enable(void)
1383 {
1384 SET_BIT(RCC->RCMFCR, RCC_RCMFCR_EN_Msk);
1385 }
1386
1387 /**
1388 * @brief Get RCMF Enable Status
1389 * @rmtoll RCMFCR EN FL_RCC_RCMF_IsEnabled
1390 * @retval State of bit (1 or 0).
1391 */
FL_RCC_RCMF_IsEnabled(void)1392 __STATIC_INLINE uint32_t FL_RCC_RCMF_IsEnabled(void)
1393 {
1394 return (uint32_t)(READ_BIT(RCC->RCMFCR, RCC_RCMFCR_EN_Msk) == RCC_RCMFCR_EN_Msk);
1395 }
1396
1397 /**
1398 * @brief Disable RCMF
1399 * @rmtoll RCMFCR EN FL_RCC_RCMF_Disable
1400 * @retval None
1401 */
FL_RCC_RCMF_Disable(void)1402 __STATIC_INLINE void FL_RCC_RCMF_Disable(void)
1403 {
1404 CLEAR_BIT(RCC->RCMFCR, RCC_RCMFCR_EN_Msk);
1405 }
1406
1407 /**
1408 * @brief Set RCHF Freqency Trim Value
1409 * @rmtoll RCHFTR TRIM FL_RCC_RCHF_WriteTrimValue
1410 * @param value TrimValue The value of RCHF trim
1411 * @retval None
1412 */
FL_RCC_RCHF_WriteTrimValue(uint32_t value)1413 __STATIC_INLINE void FL_RCC_RCHF_WriteTrimValue(uint32_t value)
1414 {
1415 MODIFY_REG(RCC->RCHFTR, (0x7fU << 0U), (value << 0U));
1416 }
1417
1418 /**
1419 * @brief Get RCHF Freqency Trim Value
1420 * @rmtoll RCHFTR TRIM FL_RCC_RCHF_ReadTrimValue
1421 * @retval The value of RCHF trim
1422 */
FL_RCC_RCHF_ReadTrimValue(void)1423 __STATIC_INLINE uint32_t FL_RCC_RCHF_ReadTrimValue(void)
1424 {
1425 return (uint32_t)(READ_BIT(RCC->RCHFTR, 0x7fU) >> 0U);
1426 }
1427
1428 /**
1429 * @brief Enable Group1 Periph Bus Clock
1430 * @rmtoll PCLKCR1 FL_RCC_EnableGroup1BusClock
1431 * @param Peripheral This parameter can be one of the following values:
1432 * @arg @ref FL_RCC_GROUP1_BUSCLK_LPTIM32
1433 * @arg @ref FL_RCC_GROUP1_BUSCLK_USB
1434 * @arg @ref FL_RCC_GROUP1_BUSCLK_RTC
1435 * @arg @ref FL_RCC_GROUP1_BUSCLK_PMU
1436 * @arg @ref FL_RCC_GROUP1_BUSCLK_SCU
1437 * @arg @ref FL_RCC_GROUP1_BUSCLK_IWDT
1438 * @arg @ref FL_RCC_GROUP1_BUSCLK_ANAC
1439 * @arg @ref FL_RCC_GROUP1_BUSCLK_PAD
1440 * @arg @ref FL_RCC_GROUP1_BUSCLK_DCU
1441 * @retval None
1442 */
FL_RCC_EnableGroup1BusClock(uint32_t Peripheral)1443 __STATIC_INLINE void FL_RCC_EnableGroup1BusClock(uint32_t Peripheral)
1444 {
1445 SET_BIT(RCC->PCLKCR1, ((Peripheral & 0xffffffff) << 0x0U));
1446 }
1447
1448 /**
1449 * @brief Enable Group2 Periph Bus Clock
1450 * @rmtoll PCLKCR2 FL_RCC_EnableGroup2BusClock
1451 * @param Peripheral This parameter can be one of the following values:
1452 * @arg @ref FL_RCC_GROUP2_BUSCLK_CRC
1453 * @arg @ref FL_RCC_GROUP2_BUSCLK_RNG
1454 * @arg @ref FL_RCC_GROUP2_BUSCLK_AES
1455 * @arg @ref FL_RCC_GROUP2_BUSCLK_LCD
1456 * @arg @ref FL_RCC_GROUP2_BUSCLK_DMA
1457 * @arg @ref FL_RCC_GROUP2_BUSCLK_FLASH
1458 * @arg @ref FL_RCC_GROUP2_BUSCLK_RAMBIST
1459 * @arg @ref FL_RCC_GROUP2_BUSCLK_WWDT
1460 * @arg @ref FL_RCC_GROUP2_BUSCLK_ADC
1461 * @arg @ref FL_RCC_GROUP2_BUSCLK_HDIV
1462 * @retval None
1463 */
FL_RCC_EnableGroup2BusClock(uint32_t Peripheral)1464 __STATIC_INLINE void FL_RCC_EnableGroup2BusClock(uint32_t Peripheral)
1465 {
1466 SET_BIT(RCC->PCLKCR2, ((Peripheral & 0xffffffff) << 0x0U));
1467 }
1468
1469 /**
1470 * @brief Enable Group3 Periph Bus Clock
1471 * @rmtoll PCLKCR3 FL_RCC_EnableGroup3BusClock
1472 * @param Peripheral This parameter can be one of the following values:
1473 * @arg @ref FL_RCC_GROUP3_BUSCLK_SPI1
1474 * @arg @ref FL_RCC_GROUP3_BUSCLK_SPI2
1475 * @arg @ref FL_RCC_GROUP3_BUSCLK_UART0
1476 * @arg @ref FL_RCC_GROUP3_BUSCLK_UART1
1477 * @arg @ref FL_RCC_GROUP3_BUSCLK_UART4
1478 * @arg @ref FL_RCC_GROUP3_BUSCLK_UART5
1479 * @arg @ref FL_RCC_GROUP3_BUSCLK_UARTIR
1480 * @arg @ref FL_RCC_GROUP3_BUSCLK_LPUART0
1481 * @arg @ref FL_RCC_GROUP3_BUSCLK_U7816
1482 * @arg @ref FL_RCC_GROUP3_BUSCLK_LPUART1
1483 * @arg @ref FL_RCC_GROUP3_BUSCLK_I2C
1484 * @retval None
1485 */
FL_RCC_EnableGroup3BusClock(uint32_t Peripheral)1486 __STATIC_INLINE void FL_RCC_EnableGroup3BusClock(uint32_t Peripheral)
1487 {
1488 SET_BIT(RCC->PCLKCR3, ((Peripheral & 0xffffffff) << 0x0U));
1489 }
1490
1491 /**
1492 * @brief Enable Group4 Periph Bus Clock
1493 * @rmtoll PCLKCR4 FL_RCC_EnableGroup4BusClock
1494 * @param Peripheral This parameter can be one of the following values:
1495 * @arg @ref FL_RCC_GROUP4_BUSCLK_BSTIM32
1496 * @arg @ref FL_RCC_GROUP4_BUSCLK_GPTIM0
1497 * @arg @ref FL_RCC_GROUP4_BUSCLK_GPTIM1
1498 * @arg @ref FL_RCC_GROUP4_BUSCLK_ATIM
1499 * @retval None
1500 */
FL_RCC_EnableGroup4BusClock(uint32_t Peripheral)1501 __STATIC_INLINE void FL_RCC_EnableGroup4BusClock(uint32_t Peripheral)
1502 {
1503 SET_BIT(RCC->PCLKCR4, ((Peripheral & 0xffffffff) << 0x0U));
1504 }
1505
1506 /**
1507 * @brief Disable Group1 Periph Bus Clock
1508 * @rmtoll PCLKCR1 FL_RCC_DisableGroup1BusClock
1509 * @param Peripheral This parameter can be one of the following values:
1510 * @arg @ref FL_RCC_GROUP1_BUSCLK_LPTIM32
1511 * @arg @ref FL_RCC_GROUP1_BUSCLK_USB
1512 * @arg @ref FL_RCC_GROUP1_BUSCLK_RTC
1513 * @arg @ref FL_RCC_GROUP1_BUSCLK_PMU
1514 * @arg @ref FL_RCC_GROUP1_BUSCLK_SCU
1515 * @arg @ref FL_RCC_GROUP1_BUSCLK_IWDT
1516 * @arg @ref FL_RCC_GROUP1_BUSCLK_ANAC
1517 * @arg @ref FL_RCC_GROUP1_BUSCLK_PAD
1518 * @arg @ref FL_RCC_GROUP1_BUSCLK_DCU
1519 * @retval None
1520 */
FL_RCC_DisableGroup1BusClock(uint32_t Peripheral)1521 __STATIC_INLINE void FL_RCC_DisableGroup1BusClock(uint32_t Peripheral)
1522 {
1523 CLEAR_BIT(RCC->PCLKCR1, ((Peripheral & 0xffffffff) << 0x0U));
1524 }
1525
1526 /**
1527 * @brief Disable Group2 Periph Bus Clock
1528 * @rmtoll PCLKCR2 FL_RCC_DisableGroup2BusClock
1529 * @param Peripheral This parameter can be one of the following values:
1530 * @arg @ref FL_RCC_GROUP2_BUSCLK_CRC
1531 * @arg @ref FL_RCC_GROUP2_BUSCLK_RNG
1532 * @arg @ref FL_RCC_GROUP2_BUSCLK_AES
1533 * @arg @ref FL_RCC_GROUP2_BUSCLK_LCD
1534 * @arg @ref FL_RCC_GROUP2_BUSCLK_DMA
1535 * @arg @ref FL_RCC_GROUP2_BUSCLK_FLASH
1536 * @arg @ref FL_RCC_GROUP2_BUSCLK_RAMBIST
1537 * @arg @ref FL_RCC_GROUP2_BUSCLK_WWDT
1538 * @arg @ref FL_RCC_GROUP2_BUSCLK_ADC
1539 * @arg @ref FL_RCC_GROUP2_BUSCLK_HDIV
1540 * @retval None
1541 */
FL_RCC_DisableGroup2BusClock(uint32_t Peripheral)1542 __STATIC_INLINE void FL_RCC_DisableGroup2BusClock(uint32_t Peripheral)
1543 {
1544 CLEAR_BIT(RCC->PCLKCR2, ((Peripheral & 0xffffffff) << 0x0U));
1545 }
1546
1547 /**
1548 * @brief Disable Group3 Periph Bus Clock
1549 * @rmtoll PCLKCR3 FL_RCC_DisableGroup3BusClock
1550 * @param Peripheral This parameter can be one of the following values:
1551 * @arg @ref FL_RCC_GROUP3_BUSCLK_SPI1
1552 * @arg @ref FL_RCC_GROUP3_BUSCLK_SPI2
1553 * @arg @ref FL_RCC_GROUP3_BUSCLK_UART0
1554 * @arg @ref FL_RCC_GROUP3_BUSCLK_UART1
1555 * @arg @ref FL_RCC_GROUP3_BUSCLK_UART4
1556 * @arg @ref FL_RCC_GROUP3_BUSCLK_UART5
1557 * @arg @ref FL_RCC_GROUP3_BUSCLK_UARTIR
1558 * @arg @ref FL_RCC_GROUP3_BUSCLK_LPUART0
1559 * @arg @ref FL_RCC_GROUP3_BUSCLK_U7816
1560 * @arg @ref FL_RCC_GROUP3_BUSCLK_LPUART1
1561 * @arg @ref FL_RCC_GROUP3_BUSCLK_I2C
1562 * @retval None
1563 */
FL_RCC_DisableGroup3BusClock(uint32_t Peripheral)1564 __STATIC_INLINE void FL_RCC_DisableGroup3BusClock(uint32_t Peripheral)
1565 {
1566 CLEAR_BIT(RCC->PCLKCR3, ((Peripheral & 0xffffffff) << 0x0U));
1567 }
1568
1569 /**
1570 * @brief Disable Group4 Periph Bus Clock
1571 * @rmtoll PCLKCR4 FL_RCC_DisableGroup4BusClock
1572 * @param Peripheral This parameter can be one of the following values:
1573 * @arg @ref FL_RCC_GROUP4_BUSCLK_BSTIM32
1574 * @arg @ref FL_RCC_GROUP4_BUSCLK_GPTIM0
1575 * @arg @ref FL_RCC_GROUP4_BUSCLK_GPTIM1
1576 * @arg @ref FL_RCC_GROUP4_BUSCLK_ATIM
1577 * @retval None
1578 */
FL_RCC_DisableGroup4BusClock(uint32_t Peripheral)1579 __STATIC_INLINE void FL_RCC_DisableGroup4BusClock(uint32_t Peripheral)
1580 {
1581 CLEAR_BIT(RCC->PCLKCR4, ((Peripheral & 0xffffffff) << 0x0U));
1582 }
1583
1584 /**
1585 * @brief Get Group1 Periph Bus Clock Enable Status
1586 * @rmtoll PCLKCR1 FL_RCC_IsEnabledGroup1BusClock
1587 * @param Peripheral This parameter can be one of the following values:
1588 * @arg @ref FL_RCC_GROUP1_BUSCLK_LPTIM32
1589 * @arg @ref FL_RCC_GROUP1_BUSCLK_USB
1590 * @arg @ref FL_RCC_GROUP1_BUSCLK_RTC
1591 * @arg @ref FL_RCC_GROUP1_BUSCLK_PMU
1592 * @arg @ref FL_RCC_GROUP1_BUSCLK_SCU
1593 * @arg @ref FL_RCC_GROUP1_BUSCLK_IWDT
1594 * @arg @ref FL_RCC_GROUP1_BUSCLK_ANAC
1595 * @arg @ref FL_RCC_GROUP1_BUSCLK_PAD
1596 * @arg @ref FL_RCC_GROUP1_BUSCLK_DCU
1597 * @retval State of bit (1 or 0).
1598 */
FL_RCC_IsEnabledGroup1BusClock(uint32_t Peripheral)1599 __STATIC_INLINE uint32_t FL_RCC_IsEnabledGroup1BusClock(uint32_t Peripheral)
1600 {
1601 return (uint32_t)(READ_BIT(RCC->PCLKCR1, ((Peripheral & 0xffffffff) << 0x0U)) == ((Peripheral & 0xffffffff) << 0x0U));
1602 }
1603
1604 /**
1605 * @brief Get Group2 Periph Bus Clock Enable Status
1606 * @rmtoll PCLKCR2 FL_RCC_IsEnabledGroup2BusClock
1607 * @param Peripheral This parameter can be one of the following values:
1608 * @arg @ref FL_RCC_GROUP2_BUSCLK_CRC
1609 * @arg @ref FL_RCC_GROUP2_BUSCLK_RNG
1610 * @arg @ref FL_RCC_GROUP2_BUSCLK_AES
1611 * @arg @ref FL_RCC_GROUP2_BUSCLK_LCD
1612 * @arg @ref FL_RCC_GROUP2_BUSCLK_DMA
1613 * @arg @ref FL_RCC_GROUP2_BUSCLK_FLASH
1614 * @arg @ref FL_RCC_GROUP2_BUSCLK_RAMBIST
1615 * @arg @ref FL_RCC_GROUP2_BUSCLK_WWDT
1616 * @arg @ref FL_RCC_GROUP2_BUSCLK_ADC
1617 * @retval State of bit (1 or 0).
1618 */
FL_RCC_IsEnabledGroup2BusClock(uint32_t Peripheral)1619 __STATIC_INLINE uint32_t FL_RCC_IsEnabledGroup2BusClock(uint32_t Peripheral)
1620 {
1621 return (uint32_t)(READ_BIT(RCC->PCLKCR2, ((Peripheral & 0xffffffff) << 0x0U)) == ((Peripheral & 0xffffffff) << 0x0U));
1622 }
1623
1624 /**
1625 * @brief Get Group3 Periph Bus Clock Enable Status
1626 * @rmtoll PCLKCR3 FL_RCC_IsEnabledGroup3BusClock
1627 * @param Peripheral This parameter can be one of the following values:
1628 * @arg @ref FL_RCC_GROUP3_BUSCLK_SPI1
1629 * @arg @ref FL_RCC_GROUP3_BUSCLK_SPI2
1630 * @arg @ref FL_RCC_GROUP3_BUSCLK_UART0
1631 * @arg @ref FL_RCC_GROUP3_BUSCLK_UART1
1632 * @arg @ref FL_RCC_GROUP3_BUSCLK_UART4
1633 * @arg @ref FL_RCC_GROUP3_BUSCLK_UART5
1634 * @arg @ref FL_RCC_GROUP3_BUSCLK_UARTIR
1635 * @arg @ref FL_RCC_GROUP3_BUSCLK_LPUART0
1636 * @arg @ref FL_RCC_GROUP3_BUSCLK_U7816
1637 * @arg @ref FL_RCC_GROUP3_BUSCLK_LPUART1
1638 * @arg @ref FL_RCC_GROUP3_BUSCLK_I2C
1639 * @retval State of bit (1 or 0).
1640 */
FL_RCC_IsEnabledGroup3BusClock(uint32_t Peripheral)1641 __STATIC_INLINE uint32_t FL_RCC_IsEnabledGroup3BusClock(uint32_t Peripheral)
1642 {
1643 return (uint32_t)(READ_BIT(RCC->PCLKCR3, ((Peripheral & 0xffffffff) << 0x0U)) == ((Peripheral & 0xffffffff) << 0x0U));
1644 }
1645
1646 /**
1647 * @brief Get Group4 Periph Bus Clock Enable Status
1648 * @rmtoll PCLKCR4 FL_RCC_IsEnabledGroup4BusClock
1649 * @param Peripheral This parameter can be one of the following values:
1650 * @arg @ref FL_RCC_GROUP4_BUSCLK_BSTIM32
1651 * @arg @ref FL_RCC_GROUP4_BUSCLK_GPTIM0
1652 * @arg @ref FL_RCC_GROUP4_BUSCLK_GPTIM1
1653 * @arg @ref FL_RCC_GROUP4_BUSCLK_ATIM
1654 * @retval State of bit (1 or 0).
1655 */
FL_RCC_IsEnabledGroup4BusClock(uint32_t Peripheral)1656 __STATIC_INLINE uint32_t FL_RCC_IsEnabledGroup4BusClock(uint32_t Peripheral)
1657 {
1658 return (uint32_t)(READ_BIT(RCC->PCLKCR4, ((Peripheral & 0xffffffff) << 0x0U)) == ((Peripheral & 0xffffffff) << 0x0U));
1659 }
1660
1661 /**
1662 * @brief Enable Group1 Periph Operation Clock
1663 * @rmtoll OPCCR1 FL_RCC_EnableGroup1OperationClock
1664 * @param Peripheral This parameter can be one of the following values:
1665 * @arg @ref FL_RCC_GROUP1_OPCLK_EXTI
1666 * @arg @ref FL_RCC_GROUP1_OPCLK_LPUART1
1667 * @arg @ref FL_RCC_GROUP1_OPCLK_LPUART0
1668 * @arg @ref FL_RCC_GROUP1_OPCLK_I2C
1669 * @arg @ref FL_RCC_GROUP1_OPCLK_ATIM
1670 * @arg @ref FL_RCC_GROUP1_OPCLK_UART1
1671 * @arg @ref FL_RCC_GROUP1_OPCLK_UART0
1672 * @retval None
1673 */
FL_RCC_EnableGroup1OperationClock(uint32_t Peripheral)1674 __STATIC_INLINE void FL_RCC_EnableGroup1OperationClock(uint32_t Peripheral)
1675 {
1676 SET_BIT(RCC->OPCCR1, ((Peripheral & 0xffffffff) << 0x0U));
1677 }
1678
1679 /**
1680 * @brief Enable Group2 Periph Operation Clock
1681 * @rmtoll OPCCR2 FL_RCC_EnableGroup2OperationClock
1682 * @param Peripheral This parameter can be one of the following values:
1683 * @arg @ref FL_RCC_GROUP2_OPCLK_USB
1684 * @arg @ref FL_RCC_GROUP2_OPCLK_FLASH
1685 * @arg @ref FL_RCC_GROUP2_OPCLK_RNG
1686 * @arg @ref FL_RCC_GROUP2_OPCLK_ADC
1687 * @arg @ref FL_RCC_GROUP2_OPCLK_LPTIM32
1688 * @arg @ref FL_RCC_GROUP2_OPCLK_BSTIM32
1689 * @retval None
1690 */
FL_RCC_EnableGroup2OperationClock(uint32_t Peripheral)1691 __STATIC_INLINE void FL_RCC_EnableGroup2OperationClock(uint32_t Peripheral)
1692 {
1693 SET_BIT(RCC->OPCCR2, ((Peripheral & 0xffffffff) << 0x0U));
1694 }
1695
1696 /**
1697 * @brief Disable Group1 Periph Operation Clock
1698 * @rmtoll OPCCR1 FL_RCC_DisableGroup1OperationClock
1699 * @param Peripheral This parameter can be one of the following values:
1700 * @arg @ref FL_RCC_GROUP1_OPCLK_EXTI
1701 * @arg @ref FL_RCC_GROUP1_OPCLK_LPUART1
1702 * @arg @ref FL_RCC_GROUP1_OPCLK_LPUART0
1703 * @arg @ref FL_RCC_GROUP1_OPCLK_I2C
1704 * @arg @ref FL_RCC_GROUP1_OPCLK_ATIM
1705 * @arg @ref FL_RCC_GROUP1_OPCLK_UART1
1706 * @retval None
1707 */
FL_RCC_DisableGroup1OperationClock(uint32_t Peripheral)1708 __STATIC_INLINE void FL_RCC_DisableGroup1OperationClock(uint32_t Peripheral)
1709 {
1710 CLEAR_BIT(RCC->OPCCR1, ((Peripheral & 0xffffffff) << 0x0U));
1711 }
1712
1713 /**
1714 * @brief Disable Group2 Periph Operation Clock
1715 * @rmtoll OPCCR2 FL_RCC_DisableGroup2OperationClock
1716 * @param Peripheral This parameter can be one of the following values:
1717 * @arg @ref FL_RCC_GROUP2_OPCLK_USB
1718 * @arg @ref FL_RCC_GROUP2_OPCLK_FLASH
1719 * @arg @ref FL_RCC_GROUP2_OPCLK_RNG
1720 * @arg @ref FL_RCC_GROUP2_OPCLK_ADC
1721 * @arg @ref FL_RCC_GROUP2_OPCLK_LPTIM32
1722 * @arg @ref FL_RCC_GROUP2_OPCLK_BSTIM32
1723 * @retval None
1724 */
FL_RCC_DisableGroup2OperationClock(uint32_t Peripheral)1725 __STATIC_INLINE void FL_RCC_DisableGroup2OperationClock(uint32_t Peripheral)
1726 {
1727 CLEAR_BIT(RCC->OPCCR2, ((Peripheral & 0xffffffff) << 0x0U));
1728 }
1729
1730 /**
1731 * @brief Get Group1 Periph Operation Clock Enable Status
1732 * @rmtoll OPCCR1 FL_RCC_IsEnabledGroup1OperationClock
1733 * @param Peripheral This parameter can be one of the following values:
1734 * @arg @ref FL_RCC_GROUP1_OPCLK_EXTI
1735 * @arg @ref FL_RCC_GROUP1_OPCLK_LPUART1
1736 * @arg @ref FL_RCC_GROUP1_OPCLK_LPUART0
1737 * @arg @ref FL_RCC_GROUP1_OPCLK_I2C
1738 * @arg @ref FL_RCC_GROUP1_OPCLK_ATIM
1739 * @arg @ref FL_RCC_GROUP1_OPCLK_UART1
1740 * @arg @ref FL_RCC_GROUP1_OPCLK_UART0
1741 * @retval State of bit (1 or 0).
1742 */
FL_RCC_IsEnabledGroup1OperationClock(uint32_t Peripheral)1743 __STATIC_INLINE uint32_t FL_RCC_IsEnabledGroup1OperationClock(uint32_t Peripheral)
1744 {
1745 return (uint32_t)(READ_BIT(RCC->OPCCR1, ((Peripheral & 0xffffffff) << 0x0U)) == ((Peripheral & 0xffffffff) << 0x0U));
1746 }
1747
1748 /**
1749 * @brief Get Group2 Periph Operation Clock Enable Status
1750 * @rmtoll OPCCR2 FL_RCC_IsEnabledGroup2OperationClock
1751 * @param Peripheral This parameter can be one of the following values:
1752 * @arg @ref FL_RCC_GROUP2_OPCLK_USB
1753 * @arg @ref FL_RCC_GROUP2_OPCLK_FLASH
1754 * @arg @ref FL_RCC_GROUP2_OPCLK_RNG
1755 * @arg @ref FL_RCC_GROUP2_OPCLK_ADC
1756 * @arg @ref FL_RCC_GROUP2_OPCLK_LPTIM32
1757 * @arg @ref FL_RCC_GROUP2_OPCLK_BSTIM32
1758 * @retval State of bit (1 or 0).
1759 */
FL_RCC_IsEnabledGroup2OperationClock(uint32_t Peripheral)1760 __STATIC_INLINE uint32_t FL_RCC_IsEnabledGroup2OperationClock(uint32_t Peripheral)
1761 {
1762 return (uint32_t)(READ_BIT(RCC->OPCCR2, ((Peripheral & 0xffffffff) << 0x0U)) == ((Peripheral & 0xffffffff) << 0x0U));
1763 }
1764
1765 /**
1766 * @brief Set EXTI Clock Source
1767 * @rmtoll OPCCR1 EXTICKS FL_RCC_SetEXTIClockSource
1768 * @param clock This parameter can be one of the following values:
1769 * @arg @ref FL_RCC_EXTI_CLK_SOURCE_LSCLK
1770 * @arg @ref FL_RCC_EXTI_CLK_SOURCE_HCLK
1771 * @retval None
1772 */
FL_RCC_SetEXTIClockSource(uint32_t clock)1773 __STATIC_INLINE void FL_RCC_SetEXTIClockSource(uint32_t clock)
1774 {
1775 MODIFY_REG(RCC->OPCCR1, RCC_OPCCR1_EXTICKS_Msk, clock);
1776 }
1777
1778 /**
1779 * @brief Get EXTI Clock Source Setting
1780 * @rmtoll OPCCR1 EXTICKS FL_RCC_GetEXTIClockSource
1781 * @retval Returned value can be one of the following values:
1782 * @arg @ref FL_RCC_EXTI_CLK_SOURCE_LSCLK
1783 * @arg @ref FL_RCC_EXTI_CLK_SOURCE_HCLK
1784 */
FL_RCC_GetEXTIClockSource(void)1785 __STATIC_INLINE uint32_t FL_RCC_GetEXTIClockSource(void)
1786 {
1787 return (uint32_t)(READ_BIT(RCC->OPCCR1, RCC_OPCCR1_EXTICKS_Msk));
1788 }
1789
1790 /**
1791 * @brief Set LPUART1 Clock Source
1792 * @rmtoll OPCCR1 LPUART1CKS FL_RCC_SetLPUART1ClockSource
1793 * @param clock This parameter can be one of the following values:
1794 * @arg @ref FL_RCC_LPUART1_CLK_SOURCE_LSCLK
1795 * @arg @ref FL_RCC_LPUART1_CLK_SOURCE_RCHF
1796 * @arg @ref FL_RCC_LPUART1_CLK_SOURCE_RCMF
1797 * @retval None
1798 */
FL_RCC_SetLPUART1ClockSource(uint32_t clock)1799 __STATIC_INLINE void FL_RCC_SetLPUART1ClockSource(uint32_t clock)
1800 {
1801 MODIFY_REG(RCC->OPCCR1, RCC_OPCCR1_LPUART1CKS_Msk, clock);
1802 }
1803
1804 /**
1805 * @brief Get LPUART1 Clock Source Setting
1806 * @rmtoll OPCCR1 LPUART1CKS FL_RCC_GetLPUART1ClockSource
1807 * @retval Returned value can be one of the following values:
1808 * @arg @ref FL_RCC_LPUART1_CLK_SOURCE_LSCLK
1809 * @arg @ref FL_RCC_LPUART1_CLK_SOURCE_RCHF
1810 * @arg @ref FL_RCC_LPUART1_CLK_SOURCE_RCMF
1811 */
FL_RCC_GetLPUART1ClockSource(void)1812 __STATIC_INLINE uint32_t FL_RCC_GetLPUART1ClockSource(void)
1813 {
1814 return (uint32_t)(READ_BIT(RCC->OPCCR1, RCC_OPCCR1_LPUART1CKS_Msk));
1815 }
1816
1817 /**
1818 * @brief Set LPUART0 Clock Source
1819 * @rmtoll OPCCR1 LPUART0CKS FL_RCC_SetLPUART0ClockSource
1820 * @param clock This parameter can be one of the following values:
1821 * @arg @ref FL_RCC_LPUART0_CLK_SOURCE_LSCLK
1822 * @arg @ref FL_RCC_LPUART0_CLK_SOURCE_RCHF
1823 * @arg @ref FL_RCC_LPUART0_CLK_SOURCE_RCMF
1824 * @retval None
1825 */
FL_RCC_SetLPUART0ClockSource(uint32_t clock)1826 __STATIC_INLINE void FL_RCC_SetLPUART0ClockSource(uint32_t clock)
1827 {
1828 MODIFY_REG(RCC->OPCCR1, RCC_OPCCR1_LPUART0CKS_Msk, clock);
1829 }
1830
1831 /**
1832 * @brief Get LPUART0 Clock Source Setting
1833 * @rmtoll OPCCR1 LPUART0CKS FL_RCC_GetLPUART0ClockSource
1834 * @retval Returned value can be one of the following values:
1835 * @arg @ref FL_RCC_LPUART0_CLK_SOURCE_LSCLK
1836 * @arg @ref FL_RCC_LPUART0_CLK_SOURCE_RCHF
1837 * @arg @ref FL_RCC_LPUART0_CLK_SOURCE_RCMF
1838 */
FL_RCC_GetLPUART0ClockSource(void)1839 __STATIC_INLINE uint32_t FL_RCC_GetLPUART0ClockSource(void)
1840 {
1841 return (uint32_t)(READ_BIT(RCC->OPCCR1, RCC_OPCCR1_LPUART0CKS_Msk));
1842 }
1843
1844 /**
1845 * @brief Set I2C Clock Source
1846 * @rmtoll OPCCR1 I2CCKS FL_RCC_SetI2CClockSource
1847 * @param clock This parameter can be one of the following values:
1848 * @arg @ref FL_RCC_I2C_CLK_SOURCE_APB1CLK
1849 * @arg @ref FL_RCC_I2C_CLK_SOURCE_RCHF
1850 * @arg @ref FL_RCC_I2C_CLK_SOURCE_SYSCLK
1851 * @arg @ref FL_RCC_I2C_CLK_SOURCE_RCMF_PSC
1852 * @retval None
1853 */
FL_RCC_SetI2CClockSource(uint32_t clock)1854 __STATIC_INLINE void FL_RCC_SetI2CClockSource(uint32_t clock)
1855 {
1856 MODIFY_REG(RCC->OPCCR1, RCC_OPCCR1_I2CCKS_Msk, clock);
1857 }
1858
1859 /**
1860 * @brief Get I2C Clock Source Setting
1861 * @rmtoll OPCCR1 I2CCKS FL_RCC_GetI2CClockSource
1862 * @retval Returned value can be one of the following values:
1863 * @arg @ref FL_RCC_I2C_CLK_SOURCE_APB1CLK
1864 * @arg @ref FL_RCC_I2C_CLK_SOURCE_RCHF
1865 * @arg @ref FL_RCC_I2C_CLK_SOURCE_SYSCLK
1866 * @arg @ref FL_RCC_I2C_CLK_SOURCE_RCMF_PSC
1867 */
FL_RCC_GetI2CClockSource(void)1868 __STATIC_INLINE uint32_t FL_RCC_GetI2CClockSource(void)
1869 {
1870 return (uint32_t)(READ_BIT(RCC->OPCCR1, RCC_OPCCR1_I2CCKS_Msk));
1871 }
1872
1873 /**
1874 * @brief Set ATIM Clock Source
1875 * @rmtoll OPCCR1 ATCKS FL_RCC_SetATIMClockSource
1876 * @param clock This parameter can be one of the following values:
1877 * @arg @ref FL_RCC_ATIM_CLK_SOURCE_APB2CLK
1878 * @arg @ref FL_RCC_ATIM_CLK_SOURCE_USBPHYBCK120M
1879 * @arg @ref FL_RCC_ATIM_CLK_SOURCE_PLLx2
1880 * @retval None
1881 */
FL_RCC_SetATIMClockSource(uint32_t clock)1882 __STATIC_INLINE void FL_RCC_SetATIMClockSource(uint32_t clock)
1883 {
1884 MODIFY_REG(RCC->OPCCR1, RCC_OPCCR1_ATCKS_Msk, clock);
1885 }
1886
1887 /**
1888 * @brief Get ATIM Clock Source Setting
1889 * @rmtoll OPCCR1 ATCKS FL_RCC_GetATIMClockSource
1890 * @retval Returned value can be one of the following values:
1891 * @arg @ref FL_RCC_ATIM_CLK_SOURCE_APB2CLK
1892 * @arg @ref FL_RCC_ATIM_CLK_SOURCE_USBPHYBCK120M
1893 * @arg @ref FL_RCC_ATIM_CLK_SOURCE_PLLx2
1894 */
FL_RCC_GetATIMClockSource(void)1895 __STATIC_INLINE uint32_t FL_RCC_GetATIMClockSource(void)
1896 {
1897 return (uint32_t)(READ_BIT(RCC->OPCCR1, RCC_OPCCR1_ATCKS_Msk));
1898 }
1899
1900 /**
1901 * @brief Set UART1 Clock Source
1902 * @rmtoll OPCCR1 UART1CKS FL_RCC_SetUART1ClockSource
1903 * @param clock This parameter can be one of the following values:
1904 * @arg @ref FL_RCC_UART1_CLK_SOURCE_APB1CLK
1905 * @arg @ref FL_RCC_UART1_CLK_SOURCE_RCHF
1906 * @arg @ref FL_RCC_UART1_CLK_SOURCE_SYSCLK
1907 * @arg @ref FL_RCC_UART1_CLK_SOURCE_RCMF_PSC
1908 * @retval None
1909 */
FL_RCC_SetUART1ClockSource(uint32_t clock)1910 __STATIC_INLINE void FL_RCC_SetUART1ClockSource(uint32_t clock)
1911 {
1912 MODIFY_REG(RCC->OPCCR1, RCC_OPCCR1_UART1CKS_Msk, clock);
1913 }
1914
1915 /**
1916 * @brief Get UART1 Clock Source Setting
1917 * @rmtoll OPCCR1 UART1CKS FL_RCC_GetUART1ClockSource
1918 * @retval Returned value can be one of the following values:
1919 * @arg @ref FL_RCC_UART1_CLK_SOURCE_APB1CLK
1920 * @arg @ref FL_RCC_UART1_CLK_SOURCE_RCHF
1921 * @arg @ref FL_RCC_UART1_CLK_SOURCE_SYSCLK
1922 * @arg @ref FL_RCC_UART1_CLK_SOURCE_RCMF_PSC
1923 */
FL_RCC_GetUART1ClockSource(void)1924 __STATIC_INLINE uint32_t FL_RCC_GetUART1ClockSource(void)
1925 {
1926 return (uint32_t)(READ_BIT(RCC->OPCCR1, RCC_OPCCR1_UART1CKS_Msk));
1927 }
1928
1929 /**
1930 * @brief Set UART0 Clock Source
1931 * @rmtoll OPCCR1 UART0CKS FL_RCC_SetUART0ClockSource
1932 * @param clock This parameter can be one of the following values:
1933 * @arg @ref FL_RCC_UART0_CLK_SOURCE_APB1CLK
1934 * @arg @ref FL_RCC_UART0_CLK_SOURCE_RCHF
1935 * @arg @ref FL_RCC_UART0_CLK_SOURCE_SYSCLK
1936 * @arg @ref FL_RCC_UART0_CLK_SOURCE_RCMF_PSC
1937 * @retval None
1938 */
FL_RCC_SetUART0ClockSource(uint32_t clock)1939 __STATIC_INLINE void FL_RCC_SetUART0ClockSource(uint32_t clock)
1940 {
1941 MODIFY_REG(RCC->OPCCR1, RCC_OPCCR1_UART0CKS_Msk, clock);
1942 }
1943
1944 /**
1945 * @brief Get UART0 Clock Source Setting
1946 * @rmtoll OPCCR1 UART0CKS FL_RCC_GetUART0ClockSource
1947 * @retval Returned value can be one of the following values:
1948 * @arg @ref FL_RCC_UART0_CLK_SOURCE_APB1CLK
1949 * @arg @ref FL_RCC_UART0_CLK_SOURCE_RCHF
1950 * @arg @ref FL_RCC_UART0_CLK_SOURCE_SYSCLK
1951 * @arg @ref FL_RCC_UART0_CLK_SOURCE_RCMF_PSC
1952 */
FL_RCC_GetUART0ClockSource(void)1953 __STATIC_INLINE uint32_t FL_RCC_GetUART0ClockSource(void)
1954 {
1955 return (uint32_t)(READ_BIT(RCC->OPCCR1, RCC_OPCCR1_UART0CKS_Msk));
1956 }
1957
1958 /**
1959 * @brief Set RNG Prescaler
1960 * @rmtoll OPCCR2 RNGPRSC FL_RCC_SetRNGPrescaler
1961 * @param prescaler This parameter can be one of the following values:
1962 * @arg @ref FL_RCC_RNG_PSC_DIV1
1963 * @arg @ref FL_RCC_RNG_PSC_DIV2
1964 * @arg @ref FL_RCC_RNG_PSC_DIV4
1965 * @arg @ref FL_RCC_RNG_PSC_DIV8
1966 * @arg @ref FL_RCC_RNG_PSC_DIV16
1967 * @arg @ref FL_RCC_RNG_PSC_DIV32
1968 * @retval None
1969 */
FL_RCC_SetRNGPrescaler(uint32_t prescaler)1970 __STATIC_INLINE void FL_RCC_SetRNGPrescaler(uint32_t prescaler)
1971 {
1972 MODIFY_REG(RCC->OPCCR2, RCC_OPCCR2_RNGPRSC_Msk, prescaler);
1973 }
1974
1975 /**
1976 * @brief Get RNG Prescaler Setting
1977 * @rmtoll OPCCR2 RNGPRSC FL_RCC_GetRNGPrescaler
1978 * @retval Returned value can be one of the following values:
1979 * @arg @ref FL_RCC_RNG_PSC_DIV1
1980 * @arg @ref FL_RCC_RNG_PSC_DIV2
1981 * @arg @ref FL_RCC_RNG_PSC_DIV4
1982 * @arg @ref FL_RCC_RNG_PSC_DIV8
1983 * @arg @ref FL_RCC_RNG_PSC_DIV16
1984 * @arg @ref FL_RCC_RNG_PSC_DIV32
1985 */
FL_RCC_GetRNGPrescaler(void)1986 __STATIC_INLINE uint32_t FL_RCC_GetRNGPrescaler(void)
1987 {
1988 return (uint32_t)(READ_BIT(RCC->OPCCR2, RCC_OPCCR2_RNGPRSC_Msk));
1989 }
1990
1991 /**
1992 * @brief Set ADC Prescaler
1993 * @rmtoll OPCCR2 ADCPRSC FL_RCC_SetADCPrescaler
1994 * @param prescaler This parameter can be one of the following values:
1995 * @arg @ref FL_RCC_ADC_PSC_DIV1
1996 * @arg @ref FL_RCC_ADC_PSC_DIV2
1997 * @arg @ref FL_RCC_ADC_PSC_DIV4
1998 * @arg @ref FL_RCC_ADC_PSC_DIV8
1999 * @arg @ref FL_RCC_ADC_PSC_DIV16
2000 * @arg @ref FL_RCC_ADC_PSC_DIV32
2001 * @retval None
2002 */
FL_RCC_SetADCPrescaler(uint32_t prescaler)2003 __STATIC_INLINE void FL_RCC_SetADCPrescaler(uint32_t prescaler)
2004 {
2005 MODIFY_REG(RCC->OPCCR2, RCC_OPCCR2_ADCPRSC_Msk, prescaler);
2006 }
2007
2008 /**
2009 * @brief Get ADC Prescaler Setting
2010 * @rmtoll OPCCR2 ADCPRSC FL_RCC_GetADCPrescaler
2011 * @retval Returned value can be one of the following values:
2012 * @arg @ref FL_RCC_ADC_PSC_DIV1
2013 * @arg @ref FL_RCC_ADC_PSC_DIV2
2014 * @arg @ref FL_RCC_ADC_PSC_DIV4
2015 * @arg @ref FL_RCC_ADC_PSC_DIV8
2016 * @arg @ref FL_RCC_ADC_PSC_DIV16
2017 * @arg @ref FL_RCC_ADC_PSC_DIV32
2018 */
FL_RCC_GetADCPrescaler(void)2019 __STATIC_INLINE uint32_t FL_RCC_GetADCPrescaler(void)
2020 {
2021 return (uint32_t)(READ_BIT(RCC->OPCCR2, RCC_OPCCR2_ADCPRSC_Msk));
2022 }
2023
2024 /**
2025 * @brief Set USB Reference Clock
2026 * @rmtoll OPCCR2 USBCKS FL_RCC_SetUSBClockReference
2027 * @param ref This parameter can be one of the following values:
2028 * @arg @ref FL_RCC_USB_CLK_REF_XTLF
2029 * @arg @ref FL_RCC_USB_CLK_REF_XTHF
2030 * @arg @ref FL_RCC_USB_CLK_REF_RCHF
2031 * @retval None
2032 */
FL_RCC_SetUSBClockReference(uint32_t ref)2033 __STATIC_INLINE void FL_RCC_SetUSBClockReference(uint32_t ref)
2034 {
2035 MODIFY_REG(RCC->OPCCR2, RCC_OPCCR2_USBCKS_Msk, ref);
2036 }
2037
2038 /**
2039 * @brief Get USB Reference Clock Setting
2040 * @rmtoll OPCCR2 USBCKS FL_RCC_GetUSBClockReference
2041 * @retval Returned value can be one of the following values:
2042 * @arg @ref FL_RCC_USB_CLK_REF_XTLF
2043 * @arg @ref FL_RCC_USB_CLK_REF_XTHF
2044 * @arg @ref FL_RCC_USB_CLK_REF_RCHF
2045 */
FL_RCC_GetUSBClockReference(void)2046 __STATIC_INLINE uint32_t FL_RCC_GetUSBClockReference(void)
2047 {
2048 return (uint32_t)(READ_BIT(RCC->OPCCR2, RCC_OPCCR2_USBCKS_Msk));
2049 }
2050
2051 /**
2052 * @brief Set ADC Clock Source
2053 * @rmtoll OPCCR2 ADCCKS FL_RCC_SetADCClockSource
2054 * @param clock This parameter can be one of the following values:
2055 * @arg @ref FL_RCC_ADC_CLK_SOURCE_RCMF_PSC
2056 * @arg @ref FL_RCC_ADC_CLK_SOURCE_RCHF
2057 * @arg @ref FL_RCC_ADC_CLK_SOURCE_XTHF
2058 * @arg @ref FL_RCC_ADC_CLK_SOURCE_PLL
2059 * @retval None
2060 */
FL_RCC_SetADCClockSource(uint32_t clock)2061 __STATIC_INLINE void FL_RCC_SetADCClockSource(uint32_t clock)
2062 {
2063 MODIFY_REG(RCC->OPCCR2, RCC_OPCCR2_ADCCKS_Msk, clock);
2064 }
2065
2066 /**
2067 * @brief Get ADC Clock Source Setting
2068 * @rmtoll OPCCR2 ADCCKS FL_RCC_GetADCClockSource
2069 * @retval Returned value can be one of the following values:
2070 * @arg @ref FL_RCC_ADC_CLK_SOURCE_RCMF_PSC
2071 * @arg @ref FL_RCC_ADC_CLK_SOURCE_RCHF
2072 * @arg @ref FL_RCC_ADC_CLK_SOURCE_XTHF
2073 * @arg @ref FL_RCC_ADC_CLK_SOURCE_PLL
2074 */
FL_RCC_GetADCClockSource(void)2075 __STATIC_INLINE uint32_t FL_RCC_GetADCClockSource(void)
2076 {
2077 return (uint32_t)(READ_BIT(RCC->OPCCR2, RCC_OPCCR2_ADCCKS_Msk));
2078 }
2079
2080 /**
2081 * @brief Set LPTIM Clock Source
2082 * @rmtoll OPCCR2 LPT32CKS FL_RCC_SetLPTIM32ClockSource
2083 * @param clock This parameter can be one of the following values:
2084 * @arg @ref FL_RCC_LPTIM32_CLK_SOURCE_APB1CLK
2085 * @arg @ref FL_RCC_LPTIM32_CLK_SOURCE_LSCLK
2086 * @arg @ref FL_RCC_LPTIM32_CLK_SOURCE_LPOSC
2087 * @arg @ref FL_RCC_LPTIM32_CLK_SOURCE_RCMF_PSC
2088 * @retval None
2089 */
FL_RCC_SetLPTIM32ClockSource(uint32_t clock)2090 __STATIC_INLINE void FL_RCC_SetLPTIM32ClockSource(uint32_t clock)
2091 {
2092 MODIFY_REG(RCC->OPCCR2, RCC_OPCCR2_LPT32CKS_Msk, clock);
2093 }
2094
2095 /**
2096 * @brief Get LPTIM Clock Source Setting
2097 * @rmtoll OPCCR2 LPT32CKS FL_RCC_GetLPTIM32ClockSource
2098 * @retval Returned value can be one of the following values:
2099 * @arg @ref FL_RCC_LPTIM32_CLK_SOURCE_APB1CLK
2100 * @arg @ref FL_RCC_LPTIM32_CLK_SOURCE_LSCLK
2101 * @arg @ref FL_RCC_LPTIM32_CLK_SOURCE_LPOSC
2102 * @arg @ref FL_RCC_LPTIM32_CLK_SOURCE_RCMF_PSC
2103 */
FL_RCC_GetLPTIM32ClockSource(void)2104 __STATIC_INLINE uint32_t FL_RCC_GetLPTIM32ClockSource(void)
2105 {
2106 return (uint32_t)(READ_BIT(RCC->OPCCR2, RCC_OPCCR2_LPT32CKS_Msk));
2107 }
2108
2109 /**
2110 * @brief Set BSTIM Clock Source
2111 * @rmtoll OPCCR2 BT32CKS FL_RCC_SetBSTIM32ClockSource
2112 * @param clock This parameter can be one of the following values:
2113 * @arg @ref FL_RCC_BSTIM32_CLK_SOURCE_APB2CLK
2114 * @arg @ref FL_RCC_BSTIM32_CLK_SOURCE_LSCLK
2115 * @arg @ref FL_RCC_BSTIM32_CLK_SOURCE_LPOSC
2116 * @arg @ref FL_RCC_BSTIM32_CLK_SOURCE_RCMF_PSC
2117 * @retval None
2118 */
FL_RCC_SetBSTIM32ClockSource(uint32_t clock)2119 __STATIC_INLINE void FL_RCC_SetBSTIM32ClockSource(uint32_t clock)
2120 {
2121 MODIFY_REG(RCC->OPCCR2, RCC_OPCCR2_BT32CKS_Msk, clock);
2122 }
2123
2124 /**
2125 * @brief Get BSTIM Clock Source Setting
2126 * @rmtoll OPCCR2 BT32CKS FL_RCC_GetBSTIM32ClockSource
2127 * @retval Returned value can be one of the following values:
2128 * @arg @ref FL_RCC_BSTIM32_CLK_SOURCE_APB2CLK
2129 * @arg @ref FL_RCC_BSTIM32_CLK_SOURCE_LSCLK
2130 * @arg @ref FL_RCC_BSTIM32_CLK_SOURCE_LPOSC
2131 * @arg @ref FL_RCC_BSTIM32_CLK_SOURCE_RCMF_PSC
2132 */
FL_RCC_GetBSTIM32ClockSource(void)2133 __STATIC_INLINE uint32_t FL_RCC_GetBSTIM32ClockSource(void)
2134 {
2135 return (uint32_t)(READ_BIT(RCC->OPCCR2, RCC_OPCCR2_BT32CKS_Msk));
2136 }
2137
2138 /**
2139 * @brief Set AHB Master Priority
2140 * @rmtoll AHBMCR MPRIL FL_RCC_SetAHBMasterPriority
2141 * @param priority This parameter can be one of the following values:
2142 * @arg @ref FL_RCC_AHB_MASTER_PRIORITY_DMA_FIRST
2143 * @arg @ref FL_RCC_AHB_MASTER_PRIORITY_CPU_FIRST
2144 * @retval None
2145 */
FL_RCC_SetAHBMasterPriority(uint32_t priority)2146 __STATIC_INLINE void FL_RCC_SetAHBMasterPriority(uint32_t priority)
2147 {
2148 MODIFY_REG(RCC->AHBMCR, RCC_AHBMCR_MPRIL_Msk, priority);
2149 }
2150
2151 /**
2152 * @brief Get AHB Master Priority Setting
2153 * @rmtoll AHBMCR MPRIL FL_RCC_GetAHBMasterPriority
2154 * @retval Returned value can be one of the following values:
2155 * @arg @ref FL_RCC_AHB_MASTER_PRIORITY_DMA_FIRST
2156 * @arg @ref FL_RCC_AHB_MASTER_PRIORITY_CPU_FIRST
2157 */
FL_RCC_GetAHBMasterPriority(void)2158 __STATIC_INLINE uint32_t FL_RCC_GetAHBMasterPriority(void)
2159 {
2160 return (uint32_t)(READ_BIT(RCC->AHBMCR, RCC_AHBMCR_MPRIL_Msk));
2161 }
2162
2163 /**
2164 * @brief Set LSCLK Clock Source
2165 * @rmtoll LSCLKSEL SEL FL_RCC_SetLSCLKClockSource
2166 * @param clock This parameter can be one of the following values:
2167 * @arg @ref FL_RCC_LSCLK_CLK_SOURCE_LPOSC
2168 * @arg @ref FL_RCC_LSCLK_CLK_SOURCE_XTLF
2169 * @retval None
2170 */
FL_RCC_SetLSCLKClockSource(uint32_t clock)2171 __STATIC_INLINE void FL_RCC_SetLSCLKClockSource(uint32_t clock)
2172 {
2173 MODIFY_REG(RCC->LSCLKSEL, RCC_LSCLKSEL_SEL_Msk, clock);
2174 }
2175
2176 /**
2177 * @brief Enable USB PHY Reset
2178 * @rmtoll PHYCR PHYRST FL_RCC_EnableUSBPHYReset
2179 * @retval None
2180 */
FL_RCC_EnableUSBPHYReset(void)2181 __STATIC_INLINE void FL_RCC_EnableUSBPHYReset(void)
2182 {
2183 CLEAR_BIT(RCC->PHYCR, RCC_PHYCR_PHYRST_Msk);
2184 }
2185
2186 /**
2187 * @brief Get USB PHY Enable Status
2188 * @rmtoll PHYCR PHYRST FL_RCC_IsEnabledUSBPHYReset
2189 * @retval State of bit (1 or 0).
2190 */
FL_RCC_IsEnabledUSBPHYReset(void)2191 __STATIC_INLINE uint32_t FL_RCC_IsEnabledUSBPHYReset(void)
2192 {
2193 return (uint32_t)!(READ_BIT(RCC->PHYCR, RCC_PHYCR_PHYRST_Msk) == RCC_PHYCR_PHYRST_Msk);
2194 }
2195
2196 /**
2197 * @brief Disable USB PHY Reset
2198 * @rmtoll PHYCR PHYRST FL_RCC_DisableUSBPHYReset
2199 * @retval None
2200 */
FL_RCC_DisableUSBPHYReset(void)2201 __STATIC_INLINE void FL_RCC_DisableUSBPHYReset(void)
2202 {
2203 SET_BIT(RCC->PHYCR, RCC_PHYCR_PHYRST_Msk);
2204 }
2205
2206 /**
2207 * @brief Enable USB PHY Power Down
2208 * @rmtoll PHYCR PD FL_RCC_EnableUSBPHYPowerDown
2209 * @retval None
2210 */
FL_RCC_EnableUSBPHYPowerDown(void)2211 __STATIC_INLINE void FL_RCC_EnableUSBPHYPowerDown(void)
2212 {
2213 SET_BIT(RCC->PHYCR, RCC_PHYCR_PD_Msk);
2214 }
2215
2216 /**
2217 * @brief Get USB PHY Power Down Enable Status
2218 * @rmtoll PHYCR PD FL_RCC_IsEnabledUSBPHYPowerDown
2219 * @retval State of bit (1 or 0).
2220 */
FL_RCC_IsEnabledUSBPHYPowerDown(void)2221 __STATIC_INLINE uint32_t FL_RCC_IsEnabledUSBPHYPowerDown(void)
2222 {
2223 return (uint32_t)(READ_BIT(RCC->PHYCR, RCC_PHYCR_PD_Msk) == RCC_PHYCR_PD_Msk);
2224 }
2225
2226 /**
2227 * @brief Disable USB PHY Power Down
2228 * @rmtoll PHYCR PD FL_RCC_DisableUSBPHYPowerDown
2229 * @retval None
2230 */
FL_RCC_DisableUSBPHYPowerDown(void)2231 __STATIC_INLINE void FL_RCC_DisableUSBPHYPowerDown(void)
2232 {
2233 CLEAR_BIT(RCC->PHYCR, RCC_PHYCR_PD_Msk);
2234 }
2235
2236 /**
2237 * @brief Set USB PHY Power Ready Flag
2238 * @rmtoll PHYCR PLVREADY FL_RCC_SetUSBPHYPowerReadyFlag
2239 * @retval None
2240 */
FL_RCC_SetUSBPHYPowerReadyFlag(void)2241 __STATIC_INLINE void FL_RCC_SetUSBPHYPowerReadyFlag(void)
2242 {
2243 SET_BIT(RCC->PHYCR, RCC_PHYCR_PLVREADY_Msk);
2244 }
2245
2246 /**
2247 * @brief Reset USB PHY Power Ready Flag
2248 * @rmtoll PHYCR PLVREADY FL_RCC_ResetUSBPHYPowerReadyFlag
2249 * @retval None
2250 */
FL_RCC_ResetUSBPHYPowerReadyFlag(void)2251 __STATIC_INLINE void FL_RCC_ResetUSBPHYPowerReadyFlag(void)
2252 {
2253 CLEAR_BIT(RCC->PHYCR, RCC_PHYCR_PLVREADY_Msk);
2254 }
2255
2256 /**
2257 * @brief Enable USB BCK
2258 * @rmtoll PHYCR BCKPD FL_RCC_EnableUSBBCK
2259 * @retval None
2260 */
FL_RCC_EnableUSBBCK(void)2261 __STATIC_INLINE void FL_RCC_EnableUSBBCK(void)
2262 {
2263 CLEAR_BIT(RCC->PHYCR, RCC_PHYCR_BCKPD_Msk);
2264 }
2265
2266 /**
2267 * @brief Get USB BCK Enable Status
2268 * @rmtoll PHYCR BCKPD FL_RCC_IsEnabledUSBBCK
2269 * @retval State of bit (1 or 0).
2270 */
FL_RCC_IsEnabledUSBBCK(void)2271 __STATIC_INLINE uint32_t FL_RCC_IsEnabledUSBBCK(void)
2272 {
2273 return (uint32_t)(READ_BIT(RCC->PHYCR, RCC_PHYCR_BCKPD_Msk) == RCC_PHYCR_BCKPD_Msk);
2274 }
2275
2276 /**
2277 * @brief Disable USB BCK
2278 * @rmtoll PHYCR BCKPD FL_RCC_DisableUSBBCK
2279 * @retval None
2280 */
FL_RCC_DisableUSBBCK(void)2281 __STATIC_INLINE void FL_RCC_DisableUSBBCK(void)
2282 {
2283 SET_BIT(RCC->PHYCR, RCC_PHYCR_BCKPD_Msk);
2284 }
2285
2286 /**
2287 * @brief Enable USB BCK Reset
2288 * @rmtoll PHYCR BCKRST FL_RCC_EnableUSBBCKReset
2289 * @retval None
2290 */
FL_RCC_EnableUSBBCKReset(void)2291 __STATIC_INLINE void FL_RCC_EnableUSBBCKReset(void)
2292 {
2293 CLEAR_BIT(RCC->PHYCR, RCC_PHYCR_BCKRST_Msk);
2294 }
2295
2296 /**
2297 * @brief Get USB BCK Reset Enable Status
2298 * @rmtoll PHYCR BCKRST FL_RCC_IsEnabledUSBBCKReset
2299 * @retval State of bit (1 or 0).
2300 */
FL_RCC_IsEnabledUSBBCKReset(void)2301 __STATIC_INLINE uint32_t FL_RCC_IsEnabledUSBBCKReset(void)
2302 {
2303 return (uint32_t)!(READ_BIT(RCC->PHYCR, RCC_PHYCR_BCKRST_Msk) == RCC_PHYCR_BCKRST_Msk);
2304 }
2305
2306 /**
2307 * @brief Disable USB BCK Reset
2308 * @rmtoll PHYCR BCKRST FL_RCC_DisableUSBBCKReset
2309 * @retval None
2310 */
FL_RCC_DisableUSBBCKReset(void)2311 __STATIC_INLINE void FL_RCC_DisableUSBBCKReset(void)
2312 {
2313 SET_BIT(RCC->PHYCR, RCC_PHYCR_BCKRST_Msk);
2314 }
2315
2316 /**
2317 * @brief Enable USB 48M Clock
2318 * @rmtoll PHYBCKCR CK48M_EN FL_RCC_EnableUSB48MClock
2319 * @retval None
2320 */
FL_RCC_EnableUSB48MClock(void)2321 __STATIC_INLINE void FL_RCC_EnableUSB48MClock(void)
2322 {
2323 SET_BIT(RCC->PHYBCKCR, RCC_PHYBCKCR_CK48M_EN_Msk);
2324 }
2325
2326 /**
2327 * @brief Get USB 48M Clock Enable Status
2328 * @rmtoll PHYBCKCR CK48M_EN FL_RCC_IsEnabledUSB48MClock
2329 * @retval State of bit (1 or 0).
2330 */
FL_RCC_IsEnabledUSB48MClock(void)2331 __STATIC_INLINE uint32_t FL_RCC_IsEnabledUSB48MClock(void)
2332 {
2333 return (uint32_t)(READ_BIT(RCC->PHYBCKCR, RCC_PHYBCKCR_CK48M_EN_Msk) == RCC_PHYBCKCR_CK48M_EN_Msk);
2334 }
2335
2336 /**
2337 * @brief Disable USB 48M Clock
2338 * @rmtoll PHYBCKCR CK48M_EN FL_RCC_DisableUSB48MClock
2339 * @retval None
2340 */
FL_RCC_DisableUSB48MClock(void)2341 __STATIC_INLINE void FL_RCC_DisableUSB48MClock(void)
2342 {
2343 CLEAR_BIT(RCC->PHYBCKCR, RCC_PHYBCKCR_CK48M_EN_Msk);
2344 }
2345
2346 /**
2347 * @brief Get USB Clock Ready Flag
2348 * @rmtoll PHYBCKCR CLKRDY FL_RCC_IsActiveFlag_USBClockReady
2349 * @retval State of bit (1 or 0).
2350 */
FL_RCC_IsActiveFlag_USBClockReady(void)2351 __STATIC_INLINE uint32_t FL_RCC_IsActiveFlag_USBClockReady(void)
2352 {
2353 return (uint32_t)(READ_BIT(RCC->PHYBCKCR, RCC_PHYBCKCR_CLKRDY_Msk) == RCC_PHYBCKCR_CLKRDY_Msk);
2354 }
2355
2356 /**
2357 * @brief Set USB Reference Clock Source
2358 * @rmtoll PHYBCKCR OUTCLKSEL FL_RCC_SetUSBClockReferenceSource
2359 * @param clock This parameter can be one of the following values:
2360 * @arg @ref FL_RCC_USB_CLK_REF_SOURCE_SOF
2361 * @arg @ref FL_RCC_USB_CLK_REF_SOURCE_CORECLKIN
2362 * @retval None
2363 */
FL_RCC_SetUSBClockReferenceSource(uint32_t clock)2364 __STATIC_INLINE void FL_RCC_SetUSBClockReferenceSource(uint32_t clock)
2365 {
2366 MODIFY_REG(RCC->PHYBCKCR, RCC_PHYBCKCR_OUTCLKSEL_Msk, clock);
2367 }
2368
2369 /**
2370 * @brief Get USB Reference Clock Source
2371 * @rmtoll PHYBCKCR OUTCLKSEL FL_RCC_GetUSBClockReferenceSource
2372 * @retval Returned value can be one of the following values:
2373 * @arg @ref FL_RCC_USB_CLK_REF_SOURCE_SOF
2374 * @arg @ref FL_RCC_USB_CLK_REF_SOURCE_CORECLKIN
2375 */
FL_RCC_GetUSBClockReferenceSource(void)2376 __STATIC_INLINE uint32_t FL_RCC_GetUSBClockReferenceSource(void)
2377 {
2378 return (uint32_t)(READ_BIT(RCC->PHYBCKCR, RCC_PHYBCKCR_OUTCLKSEL_Msk));
2379 }
2380
2381 /**
2382 * @brief Get LockUp Reset Enable Status
2383 * @rmtoll LKPCR RST_EN FL_RCC_IsEnabledLockUpReset
2384 * @retval State of bit (1 or 0).
2385 */
FL_RCC_IsEnabledLockUpReset(void)2386 __STATIC_INLINE uint32_t FL_RCC_IsEnabledLockUpReset(void)
2387 {
2388 return (uint32_t)(READ_BIT(RCC->LKPCR, RCC_LKPCR_RST_EN_Msk) == RCC_LKPCR_RST_EN_Msk);
2389 }
2390
2391 /**
2392 * @brief Disable LockUp Reset
2393 * @rmtoll LKPCR RST_EN FL_RCC_DisableLockUpReset
2394 * @retval None
2395 */
FL_RCC_DisableLockUpReset(void)2396 __STATIC_INLINE void FL_RCC_DisableLockUpReset(void)
2397 {
2398 CLEAR_BIT(RCC->LKPCR, RCC_LKPCR_RST_EN_Msk);
2399 }
2400
2401 /**
2402 * @brief Enable LockUp Reset
2403 * @rmtoll LKPCR RST_EN FL_RCC_EnableLockUpReset
2404 * @retval None
2405 */
FL_RCC_EnableLockUpReset(void)2406 __STATIC_INLINE void FL_RCC_EnableLockUpReset(void)
2407 {
2408 SET_BIT(RCC->LKPCR, RCC_LKPCR_RST_EN_Msk);
2409 }
2410
2411 /**
2412 * @brief SoftReset Chip
2413 * @rmtoll SOFTRST FL_RCC_SetSoftReset
2414 * @retval None
2415 */
FL_RCC_SetSoftReset(void)2416 __STATIC_INLINE void FL_RCC_SetSoftReset(void)
2417 {
2418 WRITE_REG(RCC->SOFTRST, FL_RCC_SOFTWARE_RESET_KEY);
2419 }
2420
2421 /**
2422 * @brief Get MDFN Reset Flag
2423 * @rmtoll RSTFR MDFN_FLAG FL_RCC_IsActiveFlag_MDF
2424 * @retval State of bit (1 or 0).
2425 */
FL_RCC_IsActiveFlag_MDF(void)2426 __STATIC_INLINE uint32_t FL_RCC_IsActiveFlag_MDF(void)
2427 {
2428 return (uint32_t)(READ_BIT(RCC->RSTFR, RCC_RSTFR_MDFN_FLAG_Msk) == (RCC_RSTFR_MDFN_FLAG_Msk));
2429 }
2430
2431 /**
2432 * @brief Clear MDFN Reset Flag
2433 * @rmtoll RSTFR MDFN_FLAG FL_RCC_ClearFlag_MDF
2434 * @retval None
2435 */
FL_RCC_ClearFlag_MDF(void)2436 __STATIC_INLINE void FL_RCC_ClearFlag_MDF(void)
2437 {
2438 WRITE_REG(RCC->RSTFR, RCC_RSTFR_MDFN_FLAG_Msk);
2439 }
2440
2441 /**
2442 * @brief Get NRST Reset Flag
2443 * @rmtoll RSTFR NRSTN_FLAG FL_RCC_IsActiveFlag_NRSTN
2444 * @retval State of bit (1 or 0).
2445 */
FL_RCC_IsActiveFlag_NRSTN(void)2446 __STATIC_INLINE uint32_t FL_RCC_IsActiveFlag_NRSTN(void)
2447 {
2448 return (uint32_t)(READ_BIT(RCC->RSTFR, RCC_RSTFR_NRSTN_FLAG_Msk) == (RCC_RSTFR_NRSTN_FLAG_Msk));
2449 }
2450
2451 /**
2452 * @brief Clear NRST Reset Flag
2453 * @rmtoll RSTFR NRSTN_FLAG FL_RCC_ClearFlag_NRSTN
2454 * @retval None
2455 */
FL_RCC_ClearFlag_NRSTN(void)2456 __STATIC_INLINE void FL_RCC_ClearFlag_NRSTN(void)
2457 {
2458 WRITE_REG(RCC->RSTFR, RCC_RSTFR_NRSTN_FLAG_Msk);
2459 }
2460
2461 /**
2462 * @brief Get TESTN Reset Flag
2463 * @rmtoll RSTFR TESTN_FLAG FL_RCC_IsActiveFlag_TESTN
2464 * @retval State of bit (1 or 0).
2465 */
FL_RCC_IsActiveFlag_TESTN(void)2466 __STATIC_INLINE uint32_t FL_RCC_IsActiveFlag_TESTN(void)
2467 {
2468 return (uint32_t)(READ_BIT(RCC->RSTFR, RCC_RSTFR_TESTN_FLAG_Msk) == (RCC_RSTFR_TESTN_FLAG_Msk));
2469 }
2470
2471 /**
2472 * @brief Clear TESTN Reset Flag
2473 * @rmtoll RSTFR TESTN_FLAG FL_RCC_ClearFlag_TESTN
2474 * @retval None
2475 */
FL_RCC_ClearFlag_TESTN(void)2476 __STATIC_INLINE void FL_RCC_ClearFlag_TESTN(void)
2477 {
2478 WRITE_REG(RCC->RSTFR, RCC_RSTFR_TESTN_FLAG_Msk);
2479 }
2480
2481 /**
2482 * @brief Get Power Up Reset Flag
2483 * @rmtoll RSTFR PORN_FLAG FL_RCC_IsActiveFlag_PORN
2484 * @retval State of bit (1 or 0).
2485 */
FL_RCC_IsActiveFlag_PORN(void)2486 __STATIC_INLINE uint32_t FL_RCC_IsActiveFlag_PORN(void)
2487 {
2488 return (uint32_t)(READ_BIT(RCC->RSTFR, RCC_RSTFR_PORN_FLAG_Msk) == (RCC_RSTFR_PORN_FLAG_Msk));
2489 }
2490
2491 /**
2492 * @brief Clear Power Up Reset Flag
2493 * @rmtoll RSTFR PORN_FLAG FL_RCC_ClearFlag_PORN
2494 * @retval None
2495 */
FL_RCC_ClearFlag_PORN(void)2496 __STATIC_INLINE void FL_RCC_ClearFlag_PORN(void)
2497 {
2498 WRITE_REG(RCC->RSTFR, RCC_RSTFR_PORN_FLAG_Msk);
2499 }
2500
2501 /**
2502 * @brief Get Power Down Reset Flag
2503 * @rmtoll RSTFR PDRN_FLAG FL_RCC_IsActiveFlag_PDRN
2504 * @retval State of bit (1 or 0).
2505 */
FL_RCC_IsActiveFlag_PDRN(void)2506 __STATIC_INLINE uint32_t FL_RCC_IsActiveFlag_PDRN(void)
2507 {
2508 return (uint32_t)(READ_BIT(RCC->RSTFR, RCC_RSTFR_PDRN_FLAG_Msk) == (RCC_RSTFR_PDRN_FLAG_Msk));
2509 }
2510
2511 /**
2512 * @brief Clear Power Down Reset Flag
2513 * @rmtoll RSTFR PDRN_FLAG FL_RCC_ClearFlag_PDRN
2514 * @retval None
2515 */
FL_RCC_ClearFlag_PDRN(void)2516 __STATIC_INLINE void FL_RCC_ClearFlag_PDRN(void)
2517 {
2518 WRITE_REG(RCC->RSTFR, RCC_RSTFR_PDRN_FLAG_Msk);
2519 }
2520
2521 /**
2522 * @brief Get Software Reset Flag
2523 * @rmtoll RSTFR SOFTN_FLAG FL_RCC_IsActiveFlag_SOFTN
2524 * @retval State of bit (1 or 0).
2525 */
FL_RCC_IsActiveFlag_SOFTN(void)2526 __STATIC_INLINE uint32_t FL_RCC_IsActiveFlag_SOFTN(void)
2527 {
2528 return (uint32_t)(READ_BIT(RCC->RSTFR, RCC_RSTFR_SOFTN_FLAG_Msk) == (RCC_RSTFR_SOFTN_FLAG_Msk));
2529 }
2530
2531 /**
2532 * @brief Clear Software Reset Flag
2533 * @rmtoll RSTFR SOFTN_FLAG FL_RCC_ClearFlag_SOFTN
2534 * @retval None
2535 */
FL_RCC_ClearFlag_SOFTN(void)2536 __STATIC_INLINE void FL_RCC_ClearFlag_SOFTN(void)
2537 {
2538 WRITE_REG(RCC->RSTFR, RCC_RSTFR_SOFTN_FLAG_Msk);
2539 }
2540
2541 /**
2542 * @brief Get IWDT Reset Flag
2543 * @rmtoll RSTFR IWDTN_FLAG FL_RCC_IsActiveFlag_IWDTN
2544 * @retval State of bit (1 or 0).
2545 */
FL_RCC_IsActiveFlag_IWDTN(void)2546 __STATIC_INLINE uint32_t FL_RCC_IsActiveFlag_IWDTN(void)
2547 {
2548 return (uint32_t)(READ_BIT(RCC->RSTFR, RCC_RSTFR_IWDTN_FLAG_Msk) == (RCC_RSTFR_IWDTN_FLAG_Msk));
2549 }
2550
2551 /**
2552 * @brief Clear IWDT Reset Flag
2553 * @rmtoll RSTFR IWDTN_FLAG FL_RCC_ClearFlag_IWDTN
2554 * @retval None
2555 */
FL_RCC_ClearFlag_IWDTN(void)2556 __STATIC_INLINE void FL_RCC_ClearFlag_IWDTN(void)
2557 {
2558 WRITE_REG(RCC->RSTFR, RCC_RSTFR_IWDTN_FLAG_Msk);
2559 }
2560
2561 /**
2562 * @brief Get WWDT Reset Flag
2563 * @rmtoll RSTFR WWDTN_FLAG FL_RCC_IsActiveFlag_WWDTN
2564 * @retval State of bit (1 or 0).
2565 */
FL_RCC_IsActiveFlag_WWDTN(void)2566 __STATIC_INLINE uint32_t FL_RCC_IsActiveFlag_WWDTN(void)
2567 {
2568 return (uint32_t)(READ_BIT(RCC->RSTFR, RCC_RSTFR_WWDTN_FLAG_Msk) == (RCC_RSTFR_WWDTN_FLAG_Msk));
2569 }
2570
2571 /**
2572 * @brief Clear WWDT Reset Flag
2573 * @rmtoll RSTFR WWDTN_FLAG FL_RCC_ClearFlag_WWDTN
2574 * @retval None
2575 */
FL_RCC_ClearFlag_WWDTN(void)2576 __STATIC_INLINE void FL_RCC_ClearFlag_WWDTN(void)
2577 {
2578 WRITE_REG(RCC->RSTFR, RCC_RSTFR_WWDTN_FLAG_Msk);
2579 }
2580
2581 /**
2582 * @brief Get LockUp Reset Flag
2583 * @rmtoll RSTFR LKUPN_FLAG FL_RCC_IsActiveFlag_LKUPN
2584 * @retval State of bit (1 or 0).
2585 */
FL_RCC_IsActiveFlag_LKUPN(void)2586 __STATIC_INLINE uint32_t FL_RCC_IsActiveFlag_LKUPN(void)
2587 {
2588 return (uint32_t)(READ_BIT(RCC->RSTFR, RCC_RSTFR_LKUPN_FLAG_Msk) == (RCC_RSTFR_LKUPN_FLAG_Msk));
2589 }
2590
2591 /**
2592 * @brief Clear LockUp Reset Flag
2593 * @rmtoll RSTFR LKUPN_FLAG FL_RCC_ClearFlag_LKUPN
2594 * @retval None
2595 */
FL_RCC_ClearFlag_LKUPN(void)2596 __STATIC_INLINE void FL_RCC_ClearFlag_LKUPN(void)
2597 {
2598 WRITE_REG(RCC->RSTFR, RCC_RSTFR_LKUPN_FLAG_Msk);
2599 }
2600
2601 /**
2602 * @brief Get NVIC Reset Flag
2603 * @rmtoll RSTFR NVICN_FLAG FL_RCC_IsActiveFlag_NVICN
2604 * @retval State of bit (1 or 0).
2605 */
FL_RCC_IsActiveFlag_NVICN(void)2606 __STATIC_INLINE uint32_t FL_RCC_IsActiveFlag_NVICN(void)
2607 {
2608 return (uint32_t)(READ_BIT(RCC->RSTFR, RCC_RSTFR_NVICN_FLAG_Msk) == (RCC_RSTFR_NVICN_FLAG_Msk));
2609 }
2610
2611 /**
2612 * @brief Clear NVIC Reset Flag
2613 * @rmtoll RSTFR NVICN_FLAG FL_RCC_ClearFlag_NVICN
2614 * @retval None
2615 */
FL_RCC_ClearFlag_NVICN(void)2616 __STATIC_INLINE void FL_RCC_ClearFlag_NVICN(void)
2617 {
2618 WRITE_REG(RCC->RSTFR, RCC_RSTFR_NVICN_FLAG_Msk);
2619 }
2620
2621 /**
2622 * @brief Disable Peripheral Reset
2623 * @rmtoll PRSTEN FL_RCC_DisablePeripheralReset
2624 * @retval None
2625 */
FL_RCC_DisablePeripheralReset(void)2626 __STATIC_INLINE void FL_RCC_DisablePeripheralReset(void)
2627 {
2628 WRITE_REG(RCC->PRSTEN, (~FL_RCC_PERIPHERAL_RESET_KEY));
2629 }
2630
2631 /**
2632 * @brief Enable Peripheral Reset
2633 * @rmtoll PRSTEN FL_RCC_EnablePeripheralReset
2634 * @retval None
2635 */
FL_RCC_EnablePeripheralReset(void)2636 __STATIC_INLINE void FL_RCC_EnablePeripheralReset(void)
2637 {
2638 WRITE_REG(RCC->PRSTEN, FL_RCC_PERIPHERAL_RESET_KEY);
2639 }
2640
2641 /**
2642 * @brief Enable AHB Peripheral Reset
2643 * @rmtoll AHBRSTCR FL_RCC_EnableResetAHBPeripheral
2644 * @param peripheral This parameter can be one of the following values:
2645 * @arg @ref FL_RCC_RSTAHB_DMA
2646 * @arg @ref FL_RCC_RSTAHB_USB
2647 * @retval None
2648 */
FL_RCC_EnableResetAHBPeripheral(uint32_t peripheral)2649 __STATIC_INLINE void FL_RCC_EnableResetAHBPeripheral(uint32_t peripheral)
2650 {
2651 SET_BIT(RCC->AHBRSTCR, ((peripheral & 0xffffffff) << 0x0U));
2652 }
2653
2654 /**
2655 * @brief Enable APB1 Peripheral Reset
2656 * @rmtoll APBRSTCR1 FL_RCC_EnableResetAPB1Peripheral
2657 * @param peripheral This parameter can be one of the following values:
2658 * @arg @ref FL_RCC_RSTAPB_UART5
2659 * @arg @ref FL_RCC_RSTAPB_UART4
2660 * @arg @ref FL_RCC_RSTAPB_GPTIM1
2661 * @arg @ref FL_RCC_RSTAPB_GPTIM0
2662 * @arg @ref FL_RCC_RSTAPB_LCD
2663 * @arg @ref FL_RCC_RSTAPB_U7816
2664 * @arg @ref FL_RCC_RSTAPB_SPI2
2665 * @arg @ref FL_RCC_RSTAPB_LPUART0
2666 * @arg @ref FL_RCC_RSTAPB_I2C
2667 * @arg @ref FL_RCC_RSTAPB_LPTIM32
2668 * @retval None
2669 */
FL_RCC_EnableResetAPB1Peripheral(uint32_t peripheral)2670 __STATIC_INLINE void FL_RCC_EnableResetAPB1Peripheral(uint32_t peripheral)
2671 {
2672 SET_BIT(RCC->APBRSTCR1, ((peripheral & 0xffffffff) << 0x0U));
2673 }
2674
2675 /**
2676 * @brief Enable APB2 Peripheral Reset
2677 * @rmtoll APBRSTCR2 FL_RCC_EnableResetAPB2Peripheral
2678 * @param peripheral This parameter can be one of the following values:
2679 * @arg @ref FL_RCC_RSTAPB_ATIM
2680 * @arg @ref FL_RCC_RSTAPB_BSTIM32
2681 * @arg @ref FL_RCC_RSTAPB_ADCCR
2682 * @arg @ref FL_RCC_RSTAPB_ADC
2683 * @arg @ref FL_RCC_RSTAPB_OPA
2684 * @arg @ref FL_RCC_RSTAPB_DIVAS
2685 * @arg @ref FL_RCC_RSTAPB_AES
2686 * @arg @ref FL_RCC_RSTAPB_CRC
2687 * @arg @ref FL_RCC_RSTAPB_RNG
2688 * @arg @ref FL_RCC_RSTAPB_UART1
2689 * @arg @ref FL_RCC_RSTAPB_UART0
2690 * @arg @ref FL_RCC_RSTAPB_SPI1
2691 * @arg @ref FL_RCC_RSTAPB_UCIR
2692 * @arg @ref FL_RCC_RSTAPB_LPUART1
2693 * @retval None
2694 */
FL_RCC_EnableResetAPB2Peripheral(uint32_t peripheral)2695 __STATIC_INLINE void FL_RCC_EnableResetAPB2Peripheral(uint32_t peripheral)
2696 {
2697 SET_BIT(RCC->APBRSTCR2, ((peripheral & 0xffffffff) << 0x0U));
2698 }
2699
2700 /**
2701 * @brief Disable AHB Peripheral Reset
2702 * @rmtoll AHBRSTCR FL_RCC_DisableResetAHBPeripheral
2703 * @param peripheral This parameter can be one of the following values:
2704 * @arg @ref FL_RCC_RSTAHB_DMA
2705 * @arg @ref FL_RCC_RSTAHB_USB
2706 * @retval None
2707 */
FL_RCC_DisableResetAHBPeripheral(uint32_t peripheral)2708 __STATIC_INLINE void FL_RCC_DisableResetAHBPeripheral(uint32_t peripheral)
2709 {
2710 CLEAR_BIT(RCC->AHBRSTCR, ((peripheral & 0xffffffff) << 0x0U));
2711 }
2712
2713 /**
2714 * @brief Disable APB1 Peripheral Reset
2715 * @rmtoll APBRSTCR1 FL_RCC_DisableResetAPB1Peripheral
2716 * @param peripheral This parameter can be one of the following values:
2717 * @arg @ref FL_RCC_RSTAPB_UART5
2718 * @arg @ref FL_RCC_RSTAPB_UART4
2719 * @arg @ref FL_RCC_RSTAPB_GPTIM1
2720 * @arg @ref FL_RCC_RSTAPB_GPTIM0
2721 * @arg @ref FL_RCC_RSTAPB_LCD
2722 * @arg @ref FL_RCC_RSTAPB_U7816
2723 * @arg @ref FL_RCC_RSTAPB_SPI2
2724 * @arg @ref FL_RCC_RSTAPB_LPUART0
2725 * @arg @ref FL_RCC_RSTAPB_I2C
2726 * @arg @ref FL_RCC_RSTAPB_LPTIM32
2727 * @retval None
2728 */
FL_RCC_DisableResetAPB1Peripheral(uint32_t peripheral)2729 __STATIC_INLINE void FL_RCC_DisableResetAPB1Peripheral(uint32_t peripheral)
2730 {
2731 CLEAR_BIT(RCC->APBRSTCR1, ((peripheral & 0xffffffff) << 0x0U));
2732 }
2733
2734 /**
2735 * @brief Disable APB2 Peripheral Reset
2736 * @rmtoll APBRSTCR2 FL_RCC_DisableResetAPB2Peripheral
2737 * @param peripheral This parameter can be one of the following values:
2738 * @arg @ref FL_RCC_RSTAPB_ATIM
2739 * @arg @ref FL_RCC_RSTAPB_BSTIM32
2740 * @arg @ref FL_RCC_RSTAPB_ADCCR
2741 * @arg @ref FL_RCC_RSTAPB_ADC
2742 * @arg @ref FL_RCC_RSTAPB_OPA
2743 * @arg @ref FL_RCC_RSTAPB_DIVAS
2744 * @arg @ref FL_RCC_RSTAPB_AES
2745 * @arg @ref FL_RCC_RSTAPB_CRC
2746 * @arg @ref FL_RCC_RSTAPB_RNG
2747 * @arg @ref FL_RCC_RSTAPB_UART1
2748 * @arg @ref FL_RCC_RSTAPB_UART0
2749 * @arg @ref FL_RCC_RSTAPB_SPI1
2750 * @arg @ref FL_RCC_RSTAPB_UCIR
2751 * @arg @ref FL_RCC_RSTAPB_LPUART1
2752 * @retval None
2753 */
FL_RCC_DisableResetAPB2Peripheral(uint32_t peripheral)2754 __STATIC_INLINE void FL_RCC_DisableResetAPB2Peripheral(uint32_t peripheral)
2755 {
2756 CLEAR_BIT(RCC->APBRSTCR2, ((peripheral & 0xffffffff) << 0x0U));
2757 }
2758
2759 /**
2760 * @}
2761 */
2762
2763 /** @defgroup RCC_FL_EF_Init Initialization and de-initialization functions
2764 * @{
2765 */
2766
2767 /**
2768 * @}
2769 */
2770
2771
2772 /** @defgroup RCC_FL_EF_Operation Opeartion functions
2773 * @{
2774 */
2775
2776 uint32_t FL_RCC_GetSystemClockFreq(void);
2777 uint32_t FL_RCC_GetAHBClockFreq(void);
2778 uint32_t FL_RCC_GetAPB1ClockFreq(void);
2779 uint32_t FL_RCC_GetAPB2ClockFreq(void);
2780
2781 uint32_t FL_RCC_GetRCMFClockFreq(void);
2782 uint32_t FL_RCC_GetRCHFClockFreq(void);
2783 uint32_t FL_RCC_GetPLLClockFreq(void);
2784
2785 /**
2786 * @}
2787 */
2788
2789 /**
2790 * @}
2791 */
2792
2793 /**
2794 * @}
2795 */
2796
2797 #ifdef __cplusplus
2798 }
2799 #endif
2800
2801 #endif /* __FM33LC0XX_FL_RCC_H*/
2802
2803 /*************************Py_Code_Generator Version: 0.1-0.14-0.2 @ 2021-07-08*************************/
2804 /********************** (C) COPYRIGHT Fudan Microelectronics **** END OF FILE ***********************/
2805