You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 

3220 lines
174 KiB

  1. /**
  2. ******************************************************************************
  3. * @file stm32wbxx_hal_rcc.h
  4. * @author MCD Application Team
  5. * @brief Header file of RCC HAL module.
  6. ******************************************************************************
  7. * @attention
  8. *
  9. * <h2><center>&copy; Copyright (c) 2019 STMicroelectronics.
  10. * All rights reserved.</center></h2>
  11. *
  12. * This software component is licensed by ST under BSD 3-Clause license,
  13. * the "License"; You may not use this file except in compliance with the
  14. * License. You may obtain a copy of the License at:
  15. * opensource.org/licenses/BSD-3-Clause
  16. *
  17. ******************************************************************************
  18. */
  19. /* Define to prevent recursive inclusion -------------------------------------*/
  20. #ifndef STM32WBxx_HAL_RCC_H
  21. #define STM32WBxx_HAL_RCC_H
  22. #ifdef __cplusplus
  23. extern "C" {
  24. #endif
  25. /* Includes ------------------------------------------------------------------*/
  26. #include "stm32wbxx_hal_def.h"
  27. #include "stm32wbxx_ll_rcc.h"
  28. #include "stm32wbxx_ll_bus.h"
  29. /** @addtogroup STM32WBxx_HAL_Driver
  30. * @{
  31. */
  32. /** @addtogroup RCC
  33. * @{
  34. */
  35. /* Private constants ---------------------------------------------------------*/
  36. /** @addtogroup RCC_Private_Constants
  37. * @{
  38. */
  39. /* Defines used for Flags */
  40. #define CR_REG_INDEX 1U
  41. #define BDCR_REG_INDEX 2U
  42. #define CSR_REG_INDEX 3U
  43. #define CRRCR_REG_INDEX 4U
  44. #define RCC_FLAG_MASK 0x1FU
  45. /**
  46. * @}
  47. */
  48. /* Private macros ------------------------------------------------------------*/
  49. /** @addtogroup RCC_Private_Macros
  50. * @{
  51. */
  52. #define IS_RCC_OSCILLATORTYPE(__OSCILLATOR__) (((__OSCILLATOR__) == RCC_OSCILLATORTYPE_NONE) || \
  53. (((__OSCILLATOR__) & RCC_OSCILLATORTYPE_HSE) == RCC_OSCILLATORTYPE_HSE) || \
  54. (((__OSCILLATOR__) & RCC_OSCILLATORTYPE_HSI) == RCC_OSCILLATORTYPE_HSI) || \
  55. (((__OSCILLATOR__) & RCC_OSCILLATORTYPE_HSI48) == RCC_OSCILLATORTYPE_HSI48) || \
  56. (((__OSCILLATOR__) & RCC_OSCILLATORTYPE_MSI) == RCC_OSCILLATORTYPE_MSI) || \
  57. (((__OSCILLATOR__) & RCC_OSCILLATORTYPE_LSI1) == RCC_OSCILLATORTYPE_LSI1) || \
  58. (((__OSCILLATOR__) & RCC_OSCILLATORTYPE_LSI2) == RCC_OSCILLATORTYPE_LSI2) || \
  59. (((__OSCILLATOR__) & RCC_OSCILLATORTYPE_LSE) == RCC_OSCILLATORTYPE_LSE))
  60. #define IS_RCC_HSE(__HSE__) (((__HSE__) == RCC_HSE_OFF) || ((__HSE__) == RCC_HSE_ON) || \
  61. ((__HSE__) == RCC_HSE_BYPASS))
  62. #define IS_RCC_LSE(__LSE__) (((__LSE__) == RCC_LSE_OFF) || ((__LSE__) == RCC_LSE_ON) || \
  63. ((__LSE__) == RCC_LSE_BYPASS))
  64. #define IS_RCC_HSI(__HSI__) (((__HSI__) == RCC_HSI_OFF) || ((__HSI__) == RCC_HSI_ON))
  65. #define IS_RCC_HSI_CALIBRATION_VALUE(__VALUE__) ((__VALUE__) <= (uint32_t)127U)
  66. #define IS_RCC_LSI(__LSI__) (((__LSI__) == RCC_LSI_OFF) || ((__LSI__) == RCC_LSI_ON))
  67. #define IS_RCC_LSI2_CALIBRATION_VALUE(__VALUE__) ((__VALUE__) <= (uint32_t)15U)
  68. #define IS_RCC_MSI(__MSI__) (((__MSI__) == RCC_MSI_OFF) || ((__MSI__) == RCC_MSI_ON))
  69. #define IS_RCC_MSICALIBRATION_VALUE(__VALUE__) ((__VALUE__) <= (uint32_t)255U)
  70. #define IS_RCC_HSI48(__HSI48__) (((__HSI48__) == RCC_HSI48_OFF) || ((__HSI48__) == RCC_HSI48_ON))
  71. #define IS_RCC_PLL(__PLL__) (((__PLL__) == RCC_PLL_NONE) ||((__PLL__) == RCC_PLL_OFF) || \
  72. ((__PLL__) == RCC_PLL_ON))
  73. #define IS_RCC_PLLSOURCE(__SOURCE__) (((__SOURCE__) == RCC_PLLSOURCE_NONE) || \
  74. ((__SOURCE__) == RCC_PLLSOURCE_MSI) || \
  75. ((__SOURCE__) == RCC_PLLSOURCE_HSI) || \
  76. ((__SOURCE__) == RCC_PLLSOURCE_HSE))
  77. #define IS_RCC_PLLM_VALUE(__VALUE__) (((__VALUE__) == RCC_PLLM_DIV1) || \
  78. ((__VALUE__) == RCC_PLLM_DIV2) || \
  79. ((__VALUE__) == RCC_PLLM_DIV3) || \
  80. ((__VALUE__) == RCC_PLLM_DIV4) || \
  81. ((__VALUE__) == RCC_PLLM_DIV5) || \
  82. ((__VALUE__) == RCC_PLLM_DIV6) || \
  83. ((__VALUE__) == RCC_PLLM_DIV7) || \
  84. ((__VALUE__) == RCC_PLLM_DIV8))
  85. #define IS_RCC_PLLN_VALUE(__VALUE__) ((6U <= (__VALUE__)) && ((__VALUE__) <= 127U))
  86. #define IS_RCC_PLLP_VALUE(__VALUE__) ((RCC_PLLP_DIV2 <= (__VALUE__)) && ((__VALUE__) <= RCC_PLLP_DIV32))
  87. #define IS_RCC_PLLQ_VALUE(__VALUE__) ((RCC_PLLQ_DIV2 <= (__VALUE__)) && ((__VALUE__) <= RCC_PLLQ_DIV8))
  88. #define IS_RCC_PLLR_VALUE(__VALUE__) ((RCC_PLLR_DIV2 <= (__VALUE__)) && ((__VALUE__) <= RCC_PLLR_DIV8))
  89. #if defined(SAI1)
  90. #define IS_RCC_PLLSAI1CLOCKOUT_VALUE(__VALUE__) (((((__VALUE__) & RCC_PLLSAI1_ADCCLK) == RCC_PLLSAI1_ADCCLK) || \
  91. (((__VALUE__) & RCC_PLLSAI1_SAI1CLK) == RCC_PLLSAI1_SAI1CLK) || \
  92. (((__VALUE__) & RCC_PLLSAI1_USBCLK) == RCC_PLLSAI1_USBCLK)) && \
  93. (((__VALUE__) & ~(RCC_PLLSAI1_ADCCLK | RCC_PLLSAI1_SAI1CLK | RCC_PLLSAI1_USBCLK)) == 0U))
  94. #endif
  95. #define IS_RCC_MSI_CLOCK_RANGE(__RANGE__) (((__RANGE__) == RCC_MSIRANGE_0) || \
  96. ((__RANGE__) == RCC_MSIRANGE_1) || \
  97. ((__RANGE__) == RCC_MSIRANGE_2) || \
  98. ((__RANGE__) == RCC_MSIRANGE_3) || \
  99. ((__RANGE__) == RCC_MSIRANGE_4) || \
  100. ((__RANGE__) == RCC_MSIRANGE_5) || \
  101. ((__RANGE__) == RCC_MSIRANGE_6) || \
  102. ((__RANGE__) == RCC_MSIRANGE_7) || \
  103. ((__RANGE__) == RCC_MSIRANGE_8) || \
  104. ((__RANGE__) == RCC_MSIRANGE_9) || \
  105. ((__RANGE__) == RCC_MSIRANGE_10) || \
  106. ((__RANGE__) == RCC_MSIRANGE_11))
  107. #define IS_RCC_CLOCKTYPE(__CLK__) ((1U <= (__CLK__)) && ((__CLK__) <= (RCC_CLOCKTYPE_SYSCLK | \
  108. RCC_CLOCKTYPE_HCLK | \
  109. RCC_CLOCKTYPE_PCLK1 | \
  110. RCC_CLOCKTYPE_PCLK2 | \
  111. RCC_CLOCKTYPE_HCLK2 | \
  112. RCC_CLOCKTYPE_HCLK4)))
  113. #define IS_RCC_SYSCLKSOURCE(__SOURCE__) (((__SOURCE__) == RCC_SYSCLKSOURCE_MSI) || \
  114. ((__SOURCE__) == RCC_SYSCLKSOURCE_HSI) || \
  115. ((__SOURCE__) == RCC_SYSCLKSOURCE_HSE) || \
  116. ((__SOURCE__) == RCC_SYSCLKSOURCE_PLLCLK))
  117. #define IS_RCC_HCLKx(__HCLK__) (((__HCLK__) == RCC_SYSCLK_DIV1) || ((__HCLK__) == RCC_SYSCLK_DIV2) || ((__HCLK__) == RCC_SYSCLK_DIV3) || \
  118. ((__HCLK__) == RCC_SYSCLK_DIV4) || ((__HCLK__) == RCC_SYSCLK_DIV5) || ((__HCLK__) == RCC_SYSCLK_DIV6) || \
  119. ((__HCLK__) == RCC_SYSCLK_DIV8) || ((__HCLK__) == RCC_SYSCLK_DIV10) || ((__HCLK__) == RCC_SYSCLK_DIV16) || \
  120. ((__HCLK__) == RCC_SYSCLK_DIV32) || ((__HCLK__) == RCC_SYSCLK_DIV64) || ((__HCLK__) == RCC_SYSCLK_DIV128) || \
  121. ((__HCLK__) == RCC_SYSCLK_DIV256) || ((__HCLK__) == RCC_SYSCLK_DIV512))
  122. #define IS_RCC_PCLKx(__PCLK__) (((__PCLK__) == RCC_HCLK_DIV1) || ((__PCLK__) == RCC_HCLK_DIV2) || \
  123. ((__PCLK__) == RCC_HCLK_DIV4) || ((__PCLK__) == RCC_HCLK_DIV8) || \
  124. ((__PCLK__) == RCC_HCLK_DIV16))
  125. #define IS_RCC_RTCCLKSOURCE(__SOURCE__) (((__SOURCE__) == RCC_RTCCLKSOURCE_NONE) || \
  126. ((__SOURCE__) == RCC_RTCCLKSOURCE_LSE) || \
  127. ((__SOURCE__) == RCC_RTCCLKSOURCE_LSI) || \
  128. ((__SOURCE__) == RCC_RTCCLKSOURCE_HSE_DIV32))
  129. #if defined(RCC_MCO3_SUPPORT)
  130. #define IS_RCC_MCO(__MCOX__) (((__MCOX__) == RCC_MCO1) || \
  131. ((__MCOX__) == RCC_MCO2) || \
  132. ((__MCOX__) == RCC_MCO3))
  133. #else
  134. #define IS_RCC_MCO(__MCOX__) (((__MCOX__) == RCC_MCO1) || \
  135. ((__MCOX__) == RCC_MCO2))
  136. #endif
  137. #define IS_RCC_MCO1SOURCE(__SOURCE__) (((__SOURCE__) == RCC_MCO1SOURCE_NOCLOCK) || \
  138. ((__SOURCE__) == RCC_MCO1SOURCE_SYSCLK) || \
  139. ((__SOURCE__) == RCC_MCO1SOURCE_MSI) || \
  140. ((__SOURCE__) == RCC_MCO1SOURCE_HSI) || \
  141. ((__SOURCE__) == RCC_MCO1SOURCE_HSE) || \
  142. ((__SOURCE__) == RCC_MCO1SOURCE_PLLCLK) || \
  143. ((__SOURCE__) == RCC_MCO1SOURCE_LSI1) || \
  144. ((__SOURCE__) == RCC_MCO1SOURCE_LSI2) || \
  145. ((__SOURCE__) == RCC_MCO1SOURCE_LSE) || \
  146. ((__SOURCE__) == RCC_MCO1SOURCE_HSI48))
  147. #define IS_RCC_MCO2SOURCE(__SOURCE__) IS_RCC_MCO1SOURCE((__SOURCE__))
  148. #define IS_RCC_MCO3SOURCE(__SOURCE__) IS_RCC_MCO1SOURCE((__SOURCE__))
  149. #define IS_RCC_MCODIV(__DIV__) (((__DIV__) == RCC_MCODIV_1) || ((__DIV__) == RCC_MCODIV_2) || \
  150. ((__DIV__) == RCC_MCODIV_4) || ((__DIV__) == RCC_MCODIV_8) || \
  151. ((__DIV__) == RCC_MCODIV_16))
  152. #define IS_RCC_LSE_DRIVE(__DRIVE__) (((__DRIVE__) == RCC_LSEDRIVE_LOW) || \
  153. ((__DRIVE__) == RCC_LSEDRIVE_MEDIUMLOW) || \
  154. ((__DRIVE__) == RCC_LSEDRIVE_MEDIUMHIGH) || \
  155. ((__DRIVE__) == RCC_LSEDRIVE_HIGH))
  156. #define IS_RCC_STOP_WAKEUPCLOCK(__SOURCE__) (((__SOURCE__) == RCC_STOP_WAKEUPCLOCK_MSI) || \
  157. ((__SOURCE__) == RCC_STOP_WAKEUPCLOCK_HSI))
  158. /**
  159. * @}
  160. */
  161. /* Exported types ------------------------------------------------------------*/
  162. /** @defgroup RCC_Exported_Types RCC Exported Types
  163. * @{
  164. */
  165. /**
  166. * @brief RCC PLL configuration structure definition
  167. */
  168. typedef struct
  169. {
  170. uint32_t PLLState; /*!< The new state of the PLL.
  171. This parameter must be a value of @ref RCC_PLL_Config */
  172. uint32_t PLLSource; /*!< RCC_PLLSource: PLL entry clock source.
  173. This parameter must be a value of @ref RCC_PLL_Clock_Source */
  174. uint32_t PLLM; /*!< PLLM: Division factor for PLL VCO input clock.
  175. This parameter must be a value of @ref RCC_PLLM_Clock_Divider */
  176. uint32_t PLLN; /*!< PLLN: Multiplication factor for PLL VCO output clock.
  177. This parameter must be a number between Min_Data = 6 and Max_Data = 127 */
  178. uint32_t PLLP; /*!< PLLP: Division factor for SAI & ADC clock.
  179. This parameter must be a value of @ref RCC_PLLP_Clock_Divider */
  180. uint32_t PLLQ; /*!< PLLQ: Division factor for RNG and USB clocks.
  181. This parameter must be a value of @ref RCC_PLLQ_Clock_Divider */
  182. uint32_t PLLR; /*!< PLLR: Division for the main system clock.
  183. User have to set the PLLR parameter correctly to not exceed max frequency 64MHZ.
  184. This parameter must be a value of @ref RCC_PLLR_Clock_Divider */
  185. } RCC_PLLInitTypeDef;
  186. /**
  187. * @brief RCC Internal/External Oscillator (HSE, HSI, HSI48, MSI, LSE and LSI) configuration structure definition
  188. */
  189. typedef struct
  190. {
  191. uint32_t OscillatorType; /*!< The oscillators to be configured.
  192. This parameter can be a combination of @ref RCC_Oscillator_Type */
  193. uint32_t HSEState; /*!< The new state of the HSE.
  194. This parameter can be a value of @ref RCC_HSE_Config */
  195. uint32_t LSEState; /*!< The new state of the LSE.
  196. This parameter can be a value of @ref RCC_LSE_Config */
  197. uint32_t HSIState; /*!< The new state of the HSI.
  198. This parameter can be a value of @ref RCC_HSI_Config */
  199. uint32_t HSICalibrationValue; /*!< The calibration trimming value (default is @ref RCC_HSICALIBRATION_DEFAULT).*/
  200. uint32_t LSIState; /*!< The new state of the LSI.
  201. This parameter can be a value of @ref RCC_LSI_Config */
  202. uint32_t LSI2CalibrationValue; /*!< The LSI2 calibration trimming value .
  203. This parameter must be a number between Min_Data = 0x0 and Max_Data = 0xF */
  204. uint32_t MSIState; /*!< The new state of the MSI.
  205. This parameter can be a value of @ref RCC_MSI_Config */
  206. uint32_t MSICalibrationValue; /*!< The calibration trimming value (default is @ref RCC_MSICALIBRATION_DEFAULT).
  207. This parameter must be a number between Min_Data = 0x00 and Max_Data = 0xFF */
  208. uint32_t MSIClockRange; /*!< The MSI frequency range.
  209. This parameter can be a value of @ref RCC_MSI_Clock_Range */
  210. uint32_t HSI48State; /*!< The new state of the HSI48 .
  211. This parameter can be a value of @ref RCC_HSI48_Config */
  212. RCC_PLLInitTypeDef PLL; /*!< Main PLL structure parameters */
  213. } RCC_OscInitTypeDef;
  214. /**
  215. * @brief RCC System, AHB and APB buses clock configuration structure definition
  216. */
  217. typedef struct
  218. {
  219. uint32_t ClockType; /*!< The clock to be configured.
  220. This parameter can be a combination of @ref RCC_System_Clock_Type */
  221. uint32_t SYSCLKSource; /*!< The clock source used as system clock (SYSCLK).
  222. This parameter can be a value of @ref RCC_System_Clock_Source */
  223. uint32_t AHBCLKDivider; /*!< The AHBx clock (HCLK1) divider. This clock is derived from the system clock (SYSCLK).
  224. This parameter can be a value of @ref RCC_AHBx_Clock_Source */
  225. uint32_t APB1CLKDivider; /*!< The APB1 clock (PCLK1) divider. This clock is derived from the AHB clock (HCLK).
  226. This parameter can be a value of @ref RCC_APBx_Clock_Source */
  227. uint32_t APB2CLKDivider; /*!< The APB2 clock (PCLK2) divider. This clock is derived from the AHB clock (HCLK).
  228. This parameter can be a value of @ref RCC_APBx_Clock_Source */
  229. uint32_t AHBCLK2Divider; /*!< The AHB clock (HCLK2) divider. This clock is derived from the system clock (SYSCLK).
  230. This parameter can be a value of @ref RCC_AHBx_Clock_Source */
  231. uint32_t AHBCLK4Divider; /*!< The AHB shared clock (HCLK4) divider. This clock is derived from the system clock (SYSCLK).
  232. This parameter can be a value of @ref RCC_AHBx_Clock_Source */
  233. } RCC_ClkInitTypeDef;
  234. /**
  235. * @}
  236. */
  237. /* Exported constants --------------------------------------------------------*/
  238. /** @defgroup RCC_Exported_Constants RCC Exported Constants
  239. * @{
  240. */
  241. /** @defgroup RCC_Timeout_Value Timeout Values
  242. * @{
  243. */
  244. #define RCC_DBP_TIMEOUT_VALUE 2U /* 2 ms (minimum Tick + 1) */
  245. #define RCC_LSE_TIMEOUT_VALUE LSE_STARTUP_TIMEOUT /* LSE timeout in ms */
  246. /**
  247. * @}
  248. */
  249. /** @defgroup RCC_Oscillator_Type Oscillator Type
  250. * @{
  251. */
  252. #define RCC_OSCILLATORTYPE_NONE 0x00000000U /*!< Oscillator configuration unchanged */
  253. #define RCC_OSCILLATORTYPE_HSE 0x00000001U /*!< HSE to configure */
  254. #define RCC_OSCILLATORTYPE_HSI 0x00000002U /*!< HSI to configure */
  255. #define RCC_OSCILLATORTYPE_LSE 0x00000004U /*!< LSE to configure */
  256. #define RCC_OSCILLATORTYPE_LSI1 0x00000008U /*!< LSI1 to configure */
  257. #define RCC_OSCILLATORTYPE_LSI2 0x00000010U /*!< LSI2 to configure */
  258. #define RCC_OSCILLATORTYPE_MSI 0x00000020U /*!< MSI to configure */
  259. #define RCC_OSCILLATORTYPE_HSI48 0x00000040U /*!< HSI48 to configure */
  260. /**
  261. * @}
  262. */
  263. /** @defgroup RCC_HSE_Config HSE Config
  264. * @{
  265. */
  266. #define RCC_HSE_OFF 0x00000000U /*!< HSE clock deactivation */
  267. #define RCC_HSE_ON RCC_CR_HSEON /*!< HSE clock activation */
  268. #define RCC_HSE_BYPASS ((uint32_t)(RCC_CR_HSEBYP | RCC_CR_HSEON)) /*!< External clock source for HSE clock */
  269. /**
  270. * @}
  271. */
  272. /** @defgroup RCC_LSE_Config LSE Config
  273. * @{
  274. */
  275. #define RCC_LSE_OFF 0x00000000U /*!< LSE clock deactivation */
  276. #define RCC_LSE_ON RCC_BDCR_LSEON /*!< LSE clock activation */
  277. #define RCC_LSE_BYPASS ((uint32_t)(RCC_BDCR_LSEBYP | RCC_BDCR_LSEON)) /*!< External clock source for LSE clock */
  278. /**
  279. * @}
  280. */
  281. /** @defgroup RCC_HSI_Config HSI Config
  282. * @{
  283. */
  284. #define RCC_HSI_OFF 0x00000000U /*!< HSI clock deactivation */
  285. #define RCC_HSI_ON RCC_CR_HSION /*!< HSI clock activation */
  286. #define RCC_HSICALIBRATION_DEFAULT 64U /*!< Default HSI calibration trimming value */
  287. /**
  288. * @}
  289. */
  290. /** @defgroup RCC_LSI_Config LSI Config
  291. * @{
  292. */
  293. #define RCC_LSI_OFF 0x00000000U /*!< LSI clock deactivation */
  294. #define RCC_LSI_ON (RCC_CSR_LSI1ON | RCC_CSR_LSI2ON) /*!< LSI1 or LSI2 clock activation */
  295. /**
  296. * @}
  297. */
  298. /** @defgroup RCC_MSI_Config MSI Config
  299. * @{
  300. */
  301. #define RCC_MSI_OFF 0x00000000U /*!< MSI clock deactivation */
  302. #define RCC_MSI_ON RCC_CR_MSION /*!< MSI clock activation */
  303. #define RCC_MSICALIBRATION_DEFAULT 0U /*!< Default MSI calibration trimming value */
  304. /**
  305. * @}
  306. */
  307. /** @defgroup RCC_HSI48_Config HSI48 Config
  308. * @{
  309. */
  310. #define RCC_HSI48_OFF 0x00000000U /*!< HSI48 clock deactivation */
  311. #define RCC_HSI48_ON RCC_CRRCR_HSI48ON /*!< HSI48 clock activation */
  312. /**
  313. * @}
  314. */
  315. /** @defgroup RCC_PLL_Config PLL Config
  316. * @{
  317. */
  318. #define RCC_PLL_NONE 0x00000000U /*!< PLL configuration unchanged */
  319. #define RCC_PLL_OFF 0x00000001U /*!< PLL deactivation */
  320. #define RCC_PLL_ON 0x00000002U /*!< PLL activation */
  321. /**
  322. * @}
  323. */
  324. /** @defgroup RCC_PLLM_Clock_Divider PLLM Clock Divider
  325. * @{
  326. */
  327. #define RCC_PLLM_DIV1 LL_RCC_PLLM_DIV_1 /*!< PLLM division factor = 1 */
  328. #define RCC_PLLM_DIV2 LL_RCC_PLLM_DIV_2 /*!< PLLM division factor = 2 */
  329. #define RCC_PLLM_DIV3 LL_RCC_PLLM_DIV_3 /*!< PLLM division factor = 3 */
  330. #define RCC_PLLM_DIV4 LL_RCC_PLLM_DIV_4 /*!< PLLM division factor = 4 */
  331. #define RCC_PLLM_DIV5 LL_RCC_PLLM_DIV_5 /*!< PLLM division factor = 5 */
  332. #define RCC_PLLM_DIV6 LL_RCC_PLLM_DIV_6 /*!< PLLM division factor = 6 */
  333. #define RCC_PLLM_DIV7 LL_RCC_PLLM_DIV_7 /*!< PLLM division factor = 7 */
  334. #define RCC_PLLM_DIV8 LL_RCC_PLLM_DIV_8 /*!< PLLM division factor = 8 */
  335. /**
  336. * @}
  337. */
  338. /** @defgroup RCC_PLLP_Clock_Divider PLLP Clock Divider
  339. * @{
  340. */
  341. #define RCC_PLLP_DIV2 LL_RCC_PLLP_DIV_2 /*!< PLLP division factor = 2 */
  342. #define RCC_PLLP_DIV3 LL_RCC_PLLP_DIV_3 /*!< PLLP division factor = 3 */
  343. #define RCC_PLLP_DIV4 LL_RCC_PLLP_DIV_4 /*!< PLLP division factor = 4 */
  344. #define RCC_PLLP_DIV5 LL_RCC_PLLP_DIV_5 /*!< PLLP division factor = 5 */
  345. #define RCC_PLLP_DIV6 LL_RCC_PLLP_DIV_6 /*!< PLLP division factor = 6 */
  346. #define RCC_PLLP_DIV7 LL_RCC_PLLP_DIV_7 /*!< PLLP division factor = 7 */
  347. #define RCC_PLLP_DIV8 LL_RCC_PLLP_DIV_8 /*!< PLLP division factor = 8 */
  348. #define RCC_PLLP_DIV9 LL_RCC_PLLP_DIV_9 /*!< PLLP division factor = 9 */
  349. #define RCC_PLLP_DIV10 LL_RCC_PLLP_DIV_10 /*!< PLLP division factor = 10 */
  350. #define RCC_PLLP_DIV11 LL_RCC_PLLP_DIV_11 /*!< PLLP division factor = 11 */
  351. #define RCC_PLLP_DIV12 LL_RCC_PLLP_DIV_12 /*!< PLLP division factor = 12 */
  352. #define RCC_PLLP_DIV13 LL_RCC_PLLP_DIV_13 /*!< PLLP division factor = 13 */
  353. #define RCC_PLLP_DIV14 LL_RCC_PLLP_DIV_14 /*!< PLLP division factor = 14 */
  354. #define RCC_PLLP_DIV15 LL_RCC_PLLP_DIV_15 /*!< PLLP division factor = 15 */
  355. #define RCC_PLLP_DIV16 LL_RCC_PLLP_DIV_16 /*!< PLLP division factor = 16 */
  356. #define RCC_PLLP_DIV17 LL_RCC_PLLP_DIV_17 /*!< PLLP division factor = 17 */
  357. #define RCC_PLLP_DIV18 LL_RCC_PLLP_DIV_18 /*!< PLLP division factor = 18 */
  358. #define RCC_PLLP_DIV19 LL_RCC_PLLP_DIV_19 /*!< PLLP division factor = 19 */
  359. #define RCC_PLLP_DIV20 LL_RCC_PLLP_DIV_20 /*!< PLLP division factor = 20 */
  360. #define RCC_PLLP_DIV21 LL_RCC_PLLP_DIV_21 /*!< PLLP division factor = 21 */
  361. #define RCC_PLLP_DIV22 LL_RCC_PLLP_DIV_22 /*!< PLLP division factor = 22 */
  362. #define RCC_PLLP_DIV23 LL_RCC_PLLP_DIV_23 /*!< PLLP division factor = 23 */
  363. #define RCC_PLLP_DIV24 LL_RCC_PLLP_DIV_24 /*!< PLLP division factor = 24 */
  364. #define RCC_PLLP_DIV25 LL_RCC_PLLP_DIV_25 /*!< PLLP division factor = 25 */
  365. #define RCC_PLLP_DIV26 LL_RCC_PLLP_DIV_26 /*!< PLLP division factor = 26 */
  366. #define RCC_PLLP_DIV27 LL_RCC_PLLP_DIV_27 /*!< PLLP division factor = 27 */
  367. #define RCC_PLLP_DIV28 LL_RCC_PLLP_DIV_28 /*!< PLLP division factor = 28 */
  368. #define RCC_PLLP_DIV29 LL_RCC_PLLP_DIV_29 /*!< PLLP division factor = 29 */
  369. #define RCC_PLLP_DIV30 LL_RCC_PLLP_DIV_30 /*!< PLLP division factor = 30 */
  370. #define RCC_PLLP_DIV31 LL_RCC_PLLP_DIV_31 /*!< PLLP division factor = 31 */
  371. #define RCC_PLLP_DIV32 LL_RCC_PLLP_DIV_32 /*!< PLLP division factor = 32 */
  372. /**
  373. * @}
  374. */
  375. /** @defgroup RCC_PLLQ_Clock_Divider PLLQ Clock Divider
  376. * @{
  377. */
  378. #define RCC_PLLQ_DIV2 LL_RCC_PLLQ_DIV_2 /*!< PLLQ division factor = 2 */
  379. #define RCC_PLLQ_DIV3 LL_RCC_PLLQ_DIV_3 /*!< PLLQ division factor = 3 */
  380. #define RCC_PLLQ_DIV4 LL_RCC_PLLQ_DIV_4 /*!< PLLQ division factor = 4 */
  381. #define RCC_PLLQ_DIV5 LL_RCC_PLLQ_DIV_5 /*!< PLLQ division factor = 5 */
  382. #define RCC_PLLQ_DIV6 LL_RCC_PLLQ_DIV_6 /*!< PLLQ division factor = 6 */
  383. #define RCC_PLLQ_DIV7 LL_RCC_PLLQ_DIV_7 /*!< PLLQ division factor = 7 */
  384. #define RCC_PLLQ_DIV8 LL_RCC_PLLQ_DIV_8 /*!< PLLQ division factor = 8 */
  385. /**
  386. * @}
  387. */
  388. /** @defgroup RCC_PLLR_Clock_Divider PLLR Clock Divider
  389. * @{
  390. */
  391. #define RCC_PLLR_DIV2 LL_RCC_PLLR_DIV_2 /*!< PLLR division factor = 2 */
  392. #define RCC_PLLR_DIV3 LL_RCC_PLLR_DIV_3 /*!< PLLR division factor = 3 */
  393. #define RCC_PLLR_DIV4 LL_RCC_PLLR_DIV_4 /*!< PLLR division factor = 4 */
  394. #define RCC_PLLR_DIV5 LL_RCC_PLLR_DIV_5 /*!< PLLR division factor = 5 */
  395. #define RCC_PLLR_DIV6 LL_RCC_PLLR_DIV_6 /*!< PLLR division factor = 6 */
  396. #define RCC_PLLR_DIV7 LL_RCC_PLLR_DIV_7 /*!< PLLR division factor = 7 */
  397. #define RCC_PLLR_DIV8 LL_RCC_PLLR_DIV_8 /*!< PLLR division factor = 8 */
  398. /**
  399. * @}
  400. */
  401. /** @defgroup RCC_PLL_Clock_Source PLL Clock Source
  402. * @{
  403. */
  404. #define RCC_PLLSOURCE_NONE LL_RCC_PLLSOURCE_NONE /*!< No clock selected as PLL entry clock source */
  405. #define RCC_PLLSOURCE_MSI LL_RCC_PLLSOURCE_MSI /*!< MSI clock selected as PLL entry clock source */
  406. #define RCC_PLLSOURCE_HSI LL_RCC_PLLSOURCE_HSI /*!< HSI clock selected as PLL entry clock source */
  407. #define RCC_PLLSOURCE_HSE LL_RCC_PLLSOURCE_HSE /*!< HSE clock selected as PLL entry clock source */
  408. /**
  409. * @}
  410. */
  411. /** @defgroup RCC_PLL_Clock_Output PLL Clock Output
  412. * @{
  413. */
  414. #define RCC_PLL_SYSCLK RCC_PLLCFGR_PLLREN /*!< PLLCLK selection from main PLL */
  415. #define RCC_PLL_USBCLK RCC_PLLCFGR_PLLQEN /*!< PLLUSBCLK selection from main PLL */
  416. #define RCC_PLL_RNGCLK RCC_PLLCFGR_PLLQEN /*!< PLLRNGCLK selection from main PLL */
  417. #if defined(SAI1)
  418. #define RCC_PLL_SAI1CLK RCC_PLLCFGR_PLLPEN /*!< PLLSAI1CLK selection from main PLL */
  419. #endif
  420. #define RCC_PLL_ADCCLK RCC_PLLCFGR_PLLPEN /*!< PLLADCCLK selection from main PLL */
  421. #if defined(SPI_I2S_SUPPORT)
  422. #define RCC_PLL_I2SCLK RCC_PLLCFGR_PLLPEN /*!< PLLI2SCLK selection from main PLL */
  423. #endif
  424. /**
  425. * @}
  426. */
  427. #if defined(SAI1)
  428. /** @defgroup RCC_PLLSAI1_Clock_Output PLLSAI1 Clock Output
  429. * @{
  430. */
  431. #define RCC_PLLSAI1_ADCCLK RCC_PLLSAI1CFGR_PLLREN /*!< PLLADCCLK selection from PLLSAI1 */
  432. #define RCC_PLLSAI1_USBCLK RCC_PLLSAI1CFGR_PLLQEN /*!< USBCLK selection from PLLSAI1 */
  433. #define RCC_PLLSAI1_SAI1CLK RCC_PLLSAI1CFGR_PLLPEN /*!< PLLSAI1CLK selection from PLLSAI1 */
  434. /**
  435. * @}
  436. */
  437. #endif
  438. /** @defgroup RCC_MSI_Clock_Range MSI Clock Range
  439. * @{
  440. */
  441. #define RCC_MSIRANGE_0 LL_RCC_MSIRANGE_0 /*!< MSI = 100 KHz */
  442. #define RCC_MSIRANGE_1 LL_RCC_MSIRANGE_1 /*!< MSI = 200 KHz */
  443. #define RCC_MSIRANGE_2 LL_RCC_MSIRANGE_2 /*!< MSI = 400 KHz */
  444. #define RCC_MSIRANGE_3 LL_RCC_MSIRANGE_3 /*!< MSI = 800 KHz */
  445. #define RCC_MSIRANGE_4 LL_RCC_MSIRANGE_4 /*!< MSI = 1 MHz */
  446. #define RCC_MSIRANGE_5 LL_RCC_MSIRANGE_5 /*!< MSI = 2 MHz */
  447. #define RCC_MSIRANGE_6 LL_RCC_MSIRANGE_6 /*!< MSI = 4 MHz */
  448. #define RCC_MSIRANGE_7 LL_RCC_MSIRANGE_7 /*!< MSI = 8 MHz */
  449. #define RCC_MSIRANGE_8 LL_RCC_MSIRANGE_8 /*!< MSI = 16 MHz */
  450. #define RCC_MSIRANGE_9 LL_RCC_MSIRANGE_9 /*!< MSI = 24 MHz */
  451. #define RCC_MSIRANGE_10 LL_RCC_MSIRANGE_10 /*!< MSI = 32 MHz */
  452. #define RCC_MSIRANGE_11 LL_RCC_MSIRANGE_11 /*!< MSI = 48 MHz */
  453. /**
  454. * @}
  455. */
  456. /** @defgroup RCC_System_Clock_Type System Clock Type
  457. * @{
  458. */
  459. #define RCC_CLOCKTYPE_SYSCLK 0x00000001U /*!< SYSCLK to configure */
  460. #define RCC_CLOCKTYPE_HCLK 0x00000002U /*!< HCLK to configure */
  461. #define RCC_CLOCKTYPE_PCLK1 0x00000004U /*!< PCLK1 to configure */
  462. #define RCC_CLOCKTYPE_PCLK2 0x00000008U /*!< PCLK2 to configure */
  463. #define RCC_CLOCKTYPE_HCLK2 0x00000020U /*!< HCLK2 to configure */
  464. #define RCC_CLOCKTYPE_HCLK4 0x00000040U /*!< HCLK4 to configure */
  465. /**
  466. * @}
  467. */
  468. /** @defgroup RCC_System_Clock_Source System Clock Source
  469. * @{
  470. */
  471. #define RCC_SYSCLKSOURCE_MSI LL_RCC_SYS_CLKSOURCE_MSI /*!< MSI selection as system clock */
  472. #define RCC_SYSCLKSOURCE_HSI LL_RCC_SYS_CLKSOURCE_HSI /*!< HSI selection as system clock */
  473. #define RCC_SYSCLKSOURCE_HSE LL_RCC_SYS_CLKSOURCE_HSE /*!< HSE selection as system clock */
  474. #define RCC_SYSCLKSOURCE_PLLCLK LL_RCC_SYS_CLKSOURCE_PLL /*!< PLL selection as system clock */
  475. /**
  476. * @}
  477. */
  478. /** @defgroup RCC_System_Clock_Source_Status System Clock Source Status
  479. * @{
  480. */
  481. #define RCC_SYSCLKSOURCE_STATUS_MSI LL_RCC_SYS_CLKSOURCE_STATUS_MSI /*!< MSI used as system clock */
  482. #define RCC_SYSCLKSOURCE_STATUS_HSI LL_RCC_SYS_CLKSOURCE_STATUS_HSI /*!< HSI used as system clock */
  483. #define RCC_SYSCLKSOURCE_STATUS_HSE LL_RCC_SYS_CLKSOURCE_STATUS_HSE /*!< HSE used as system clock */
  484. #define RCC_SYSCLKSOURCE_STATUS_PLLCLK LL_RCC_SYS_CLKSOURCE_STATUS_PLL /*!< PLL used as system clock */
  485. /**
  486. * @}
  487. */
  488. /** @defgroup RCC_AHBx_Clock_Source AHB Clock Source
  489. * @{
  490. */
  491. #define RCC_SYSCLK_DIV1 LL_RCC_SYSCLK_DIV_1 /*!< SYSCLK not divided */
  492. #define RCC_SYSCLK_DIV2 LL_RCC_SYSCLK_DIV_2 /*!< SYSCLK divided by 2 */
  493. #define RCC_SYSCLK_DIV3 LL_RCC_SYSCLK_DIV_3 /*!< SYSCLK divided by 3 */
  494. #define RCC_SYSCLK_DIV4 LL_RCC_SYSCLK_DIV_4 /*!< SYSCLK divided by 4 */
  495. #define RCC_SYSCLK_DIV5 LL_RCC_SYSCLK_DIV_5 /*!< SYSCLK divided by 5 */
  496. #define RCC_SYSCLK_DIV6 LL_RCC_SYSCLK_DIV_6 /*!< SYSCLK divided by 6 */
  497. #define RCC_SYSCLK_DIV8 LL_RCC_SYSCLK_DIV_8 /*!< SYSCLK divided by 8 */
  498. #define RCC_SYSCLK_DIV10 LL_RCC_SYSCLK_DIV_10 /*!< SYSCLK divided by 10 */
  499. #define RCC_SYSCLK_DIV16 LL_RCC_SYSCLK_DIV_16 /*!< SYSCLK divided by 16 */
  500. #define RCC_SYSCLK_DIV32 LL_RCC_SYSCLK_DIV_32 /*!< SYSCLK divided by 32 */
  501. #define RCC_SYSCLK_DIV64 LL_RCC_SYSCLK_DIV_64 /*!< SYSCLK divided by 64 */
  502. #define RCC_SYSCLK_DIV128 LL_RCC_SYSCLK_DIV_128 /*!< SYSCLK divided by 128 */
  503. #define RCC_SYSCLK_DIV256 LL_RCC_SYSCLK_DIV_256 /*!< SYSCLK divided by 256 */
  504. #define RCC_SYSCLK_DIV512 LL_RCC_SYSCLK_DIV_512 /*!< SYSCLK divided by 512 */
  505. /**
  506. * @}
  507. */
  508. /** @defgroup RCC_APBx_Clock_Source APB1 Clock Source
  509. * @{
  510. */
  511. #define RCC_HCLK_DIV1 LL_RCC_APB1_DIV_1 /*!< HCLK not divided */
  512. #define RCC_HCLK_DIV2 LL_RCC_APB1_DIV_2 /*!< HCLK divided by 2 */
  513. #define RCC_HCLK_DIV4 LL_RCC_APB1_DIV_4 /*!< HCLK divided by 4 */
  514. #define RCC_HCLK_DIV8 LL_RCC_APB1_DIV_8 /*!< HCLK divided by 8 */
  515. #define RCC_HCLK_DIV16 LL_RCC_APB1_DIV_16 /*!< HCLK divided by 16 */
  516. /**
  517. * @}
  518. */
  519. /** @defgroup RCC_RTC_Clock_Source RTC Clock Source
  520. * @{
  521. */
  522. #define RCC_RTCCLKSOURCE_NONE LL_RCC_RTC_CLKSOURCE_NONE /*!< No clock used as RTC clock */
  523. #define RCC_RTCCLKSOURCE_LSE LL_RCC_RTC_CLKSOURCE_LSE /*!< LSE oscillator clock used as RTC clock */
  524. #define RCC_RTCCLKSOURCE_LSI LL_RCC_RTC_CLKSOURCE_LSI /*!< LSI oscillator clock used as RTC clock */
  525. #define RCC_RTCCLKSOURCE_HSE_DIV32 LL_RCC_RTC_CLKSOURCE_HSE_DIV32 /*!< HSE oscillator clock divided by 32 used as RTC clock */
  526. /**
  527. * @}
  528. */
  529. /** @defgroup RCC_MCO_Index MCO Index
  530. * @{
  531. */
  532. #define RCC_MCO1 0x00000000U /*!< MCO1 index */
  533. #define RCC_MCO2 0x00000001U /*!< MCO2 index */
  534. #if defined(RCC_MCO3_SUPPORT)
  535. #define RCC_MCO3 0x00000002U /*!< MCO3 index */
  536. #endif
  537. #define RCC_MCO RCC_MCO1 /*!< MCO1 to be compliant with other families with 1 MCO*/
  538. /**
  539. * @}
  540. */
  541. /** @defgroup RCC_MCO1_Clock_Source MCO1 Clock Source
  542. * @{
  543. */
  544. #define RCC_MCO1SOURCE_NOCLOCK LL_RCC_MCO1SOURCE_NOCLOCK /*!< MCO1 output disabled, no clock on MCO1 */
  545. #define RCC_MCO1SOURCE_SYSCLK LL_RCC_MCO1SOURCE_SYSCLK /*!< SYSCLK selection as MCO1 source */
  546. #define RCC_MCO1SOURCE_MSI LL_RCC_MCO1SOURCE_MSI /*!< MSI selection as MCO1 source */
  547. #define RCC_MCO1SOURCE_HSI LL_RCC_MCO1SOURCE_HSI /*!< HSI selection as MCO1 source */
  548. #define RCC_MCO1SOURCE_HSE LL_RCC_MCO1SOURCE_HSE /*!< HSE after stabilization selection as MCO1 source */
  549. #define RCC_MCO1SOURCE_PLLCLK LL_RCC_MCO1SOURCE_PLLCLK /*!< PLLCLK selection as MCO1 source */
  550. #define RCC_MCO1SOURCE_LSI1 LL_RCC_MCO1SOURCE_LSI1 /*!< LSI1 selection as MCO1 source */
  551. #define RCC_MCO1SOURCE_LSI2 LL_RCC_MCO1SOURCE_LSI2 /*!< LSI2 selection as MCO1 source */
  552. #define RCC_MCO1SOURCE_LSE LL_RCC_MCO1SOURCE_LSE /*!< LSE selection as MCO1 source */
  553. #define RCC_MCO1SOURCE_HSI48 LL_RCC_MCO1SOURCE_HSI48 /*!< HSI48 selection as MCO1 source */
  554. #define RCC_MCO1SOURCE_HSE_BEFORE_STAB LL_RCC_MCO1SOURCE_HSE_BEFORE_STAB /*!< HSE before stabilization selection as MCO1 source */
  555. /**
  556. * @}
  557. */
  558. /** @defgroup RCC_MCOx_Clock_Prescaler MCO Clock Prescaler
  559. * @{
  560. */
  561. #define RCC_MCODIV_1 LL_RCC_MCO1_DIV_1 /*!< MCO not divided */
  562. #define RCC_MCODIV_2 LL_RCC_MCO1_DIV_2 /*!< MCO divided by 2 */
  563. #define RCC_MCODIV_4 LL_RCC_MCO1_DIV_4 /*!< MCO divided by 4 */
  564. #define RCC_MCODIV_8 LL_RCC_MCO1_DIV_8 /*!< MCO divided by 8 */
  565. #define RCC_MCODIV_16 LL_RCC_MCO1_DIV_16 /*!< MCO divided by 16 */
  566. /**
  567. * @}
  568. */
  569. /** @defgroup RCC_HSEAMPTHRESHOLD HSE bias current factor
  570. * @{
  571. */
  572. #define RCC_HSEAMPTHRESHOLD_1_2 LL_RCC_HSEAMPTHRESHOLD_1_2 /*!< HSE bias current factor 1/2 */
  573. #define RCC_HSEAMPTHRESHOLD_3_4 LL_RCC_HSEAMPTHRESHOLD_3_4 /*!< HSE bias current factor 3/4 */
  574. /**
  575. * @}
  576. */
  577. /** @defgroup RCC_HSE_CURRENTMAX HSE current max limit
  578. * @{
  579. */
  580. #define RCC_HSE_CURRENTMAX_0 LL_RCC_HSE_CURRENTMAX_0 /*!< HSE current max limit 0.18 mA/V */
  581. #define RCC_HSE_CURRENTMAX_1 LL_RCC_HSE_CURRENTMAX_1 /*!< HSE current max limit 0.57 mA/V */
  582. #define RCC_HSE_CURRENTMAX_2 LL_RCC_HSE_CURRENTMAX_2 /*!< HSE current max limit 0.78 mA/V */
  583. #define RCC_HSE_CURRENTMAX_3 LL_RCC_HSE_CURRENTMAX_3 /*!< HSE current max limit 1.13 mA/V */
  584. #define RCC_HSE_CURRENTMAX_4 LL_RCC_HSE_CURRENTMAX_4 /*!< HSE current max limit 0.61 mA/V */
  585. #define RCC_HSE_CURRENTMAX_5 LL_RCC_HSE_CURRENTMAX_5 /*!< HSE current max limit 1.65 mA/V */
  586. #define RCC_HSE_CURRENTMAX_6 LL_RCC_HSE_CURRENTMAX_6 /*!< HSE current max limit 2.12 mA/V */
  587. #define RCC_HSE_CURRENTMAX_7 LL_RCC_HSE_CURRENTMAX_7 /*!< HSE current max limit 2.84 mA/V */
  588. /**
  589. * @}
  590. */
  591. /** @defgroup RCC_Interrupt Interrupts
  592. * @{
  593. */
  594. #define RCC_IT_LSI1RDY LL_RCC_CIFR_LSI1RDYF /*!< LSI1 Ready Interrupt flag */
  595. #define RCC_IT_LSI2RDY LL_RCC_CIFR_LSI2RDYF /*!< LSI2 Ready Interrupt flag */
  596. #define RCC_IT_LSERDY LL_RCC_CIFR_LSERDYF /*!< LSE Ready Interrupt flag */
  597. #define RCC_IT_MSIRDY LL_RCC_CIFR_MSIRDYF /*!< MSI Ready Interrupt flag */
  598. #define RCC_IT_HSIRDY LL_RCC_CIFR_HSIRDYF /*!< HSI Ready Interrupt flag */
  599. #define RCC_IT_HSERDY LL_RCC_CIFR_HSERDYF /*!< HSE Ready Interrupt flag */
  600. #define RCC_IT_PLLRDY LL_RCC_CIFR_PLLRDYF /*!< PLL Ready Interrupt flag */
  601. #if defined(SAI1)
  602. #define RCC_IT_PLLSAI1RDY LL_RCC_CIFR_PLLSAI1RDYF /*!< PLLSAI1 Ready Interrupt flag */
  603. #endif
  604. #define RCC_IT_HSECSS LL_RCC_CIFR_CSSF /*!< HSE Clock Security System Interrupt flag */
  605. #define RCC_IT_LSECSS LL_RCC_CIFR_LSECSSF /*!< LSE Clock Security System Interrupt flag */
  606. #define RCC_IT_HSI48RDY LL_RCC_CIFR_HSI48RDYF /*!< HSI48 Ready Interrupt flag */
  607. /**
  608. * @}
  609. */
  610. /** @defgroup RCC_Flag Flags
  611. * Elements values convention: XXXYYYYYb
  612. * - YYYYY : Flag position in the register
  613. * - XXX : Register index
  614. * - 001: CR register
  615. * - 010: BDCR register
  616. * - 011: CSR register
  617. * - 100: CRRCR register
  618. * @{
  619. */
  620. /* Flags in the CR register */
  621. #define RCC_FLAG_MSIRDY ((CR_REG_INDEX << 5U) | RCC_CR_MSIRDY_Pos) /*!< MSI Ready flag */
  622. #define RCC_FLAG_HSIRDY ((CR_REG_INDEX << 5U) | RCC_CR_HSIRDY_Pos) /*!< HSI Ready flag */
  623. #define RCC_FLAG_HSERDY ((CR_REG_INDEX << 5U) | RCC_CR_HSERDY_Pos) /*!< HSE Ready flag */
  624. #define RCC_FLAG_PLLRDY ((CR_REG_INDEX << 5U) | RCC_CR_PLLRDY_Pos) /*!< PLL Ready flag */
  625. #if defined(SAI1)
  626. #define RCC_FLAG_PLLSAI1RDY ((CR_REG_INDEX << 5U) | RCC_CR_PLLSAI1RDY_Pos) /*!< PLLSAI1 Ready flag */
  627. #endif
  628. /* Flags in the BDCR register */
  629. #define RCC_FLAG_LSERDY ((BDCR_REG_INDEX << 5U) | RCC_BDCR_LSERDY_Pos) /*!< LSE Ready flag */
  630. #define RCC_FLAG_LSECSSD ((BDCR_REG_INDEX << 5U) | RCC_BDCR_LSECSSD_Pos) /*!< LSE Clock Security System failure detection flag */
  631. /* Flags in the CSR register */
  632. #define RCC_FLAG_LSI1RDY ((CSR_REG_INDEX << 5U) | RCC_CSR_LSI1RDY_Pos) /*!< LSI1 Ready flag */
  633. #define RCC_FLAG_LSI2RDY ((CSR_REG_INDEX << 5U) | RCC_CSR_LSI2RDY_Pos) /*!< LSI2 Ready flag */
  634. #define RCC_FLAG_OBLRST ((CSR_REG_INDEX << 5U) | RCC_CSR_OBLRSTF_Pos) /*!< Option Byte Loader reset flag */
  635. #define RCC_FLAG_PINRST ((CSR_REG_INDEX << 5U) | RCC_CSR_PINRSTF_Pos) /*!< Pin reset flag (NRST pin) */
  636. #define RCC_FLAG_BORRST ((CSR_REG_INDEX << 5U) | RCC_CSR_BORRSTF_Pos) /*!< BOR reset flag */
  637. #define RCC_FLAG_SFTRST ((CSR_REG_INDEX << 5U) | RCC_CSR_SFTRSTF_Pos) /*!< Software Reset flag */
  638. #define RCC_FLAG_IWDGRST ((CSR_REG_INDEX << 5U) | RCC_CSR_IWDGRSTF_Pos) /*!< Watchdog reset flag */
  639. #define RCC_FLAG_WWDGRST ((CSR_REG_INDEX << 5U) | RCC_CSR_WWDGRSTF_Pos) /*!< Window watchdog reset flag */
  640. #define RCC_FLAG_LPWRRST ((CSR_REG_INDEX << 5U) | RCC_CSR_LPWRRSTF_Pos) /*!< Low-Power reset flag */
  641. /* Flags in the CRRCR register */
  642. #define RCC_FLAG_HSI48RDY ((CRRCR_REG_INDEX << 5U) | RCC_CRRCR_HSI48RDY_Pos) /*!< HSI48 Ready flag */
  643. /**
  644. * @}
  645. */
  646. /** @defgroup RCC_LSEDrive_Config LSE Drive Configuration
  647. * @{
  648. */
  649. #define RCC_LSEDRIVE_LOW LL_RCC_LSEDRIVE_LOW /*!< LSE low drive capability */
  650. #define RCC_LSEDRIVE_MEDIUMLOW LL_RCC_LSEDRIVE_MEDIUMLOW /*!< LSE medium low drive capability */
  651. #define RCC_LSEDRIVE_MEDIUMHIGH LL_RCC_LSEDRIVE_MEDIUMHIGH /*!< LSE medium high drive capability */
  652. #define RCC_LSEDRIVE_HIGH LL_RCC_LSEDRIVE_HIGH /*!< LSE high drive capability */
  653. /**
  654. * @}
  655. */
  656. /** @defgroup RCC_Stop_WakeUpClock Wake-Up from STOP Clock
  657. * @{
  658. */
  659. #define RCC_STOP_WAKEUPCLOCK_MSI LL_RCC_STOP_WAKEUPCLOCK_MSI /*!< MSI selection after wake-up from STOP */
  660. #define RCC_STOP_WAKEUPCLOCK_HSI LL_RCC_STOP_WAKEUPCLOCK_HSI /*!< HSI selection after wake-up from STOP */
  661. /**
  662. * @}
  663. */
  664. /**
  665. * @}
  666. */
  667. /* Exported macros -----------------------------------------------------------*/
  668. /** @defgroup RCC_Exported_Macros RCC Exported Macros
  669. * @{
  670. */
  671. /** @defgroup RCC_AHB1_Peripheral_Clock_Enable_Disable AHB1 Peripheral Clock Enable Disable
  672. * @brief Enable or disable the AHB1 peripheral clock.
  673. * @note After reset, the peripheral clock (used for registers read/write access)
  674. * is disabled and the application software has to enable this clock before
  675. * using it.
  676. * @{
  677. */
  678. #define __HAL_RCC_DMA1_CLK_ENABLE() LL_AHB1_GRP1_EnableClock(LL_AHB1_GRP1_PERIPH_DMA1)
  679. #if defined(DMA2)
  680. #define __HAL_RCC_DMA2_CLK_ENABLE() LL_AHB1_GRP1_EnableClock(LL_AHB1_GRP1_PERIPH_DMA2)
  681. #endif
  682. #define __HAL_RCC_DMAMUX1_CLK_ENABLE() LL_AHB1_GRP1_EnableClock(LL_AHB1_GRP1_PERIPH_DMAMUX1)
  683. #define __HAL_RCC_CRC_CLK_ENABLE() LL_AHB1_GRP1_EnableClock(LL_AHB1_GRP1_PERIPH_CRC)
  684. #define __HAL_RCC_TSC_CLK_ENABLE() LL_AHB1_GRP1_EnableClock(LL_AHB1_GRP1_PERIPH_TSC)
  685. #define __HAL_RCC_DMA1_CLK_DISABLE() LL_AHB1_GRP1_DisableClock(LL_AHB1_GRP1_PERIPH_DMA1)
  686. #if defined(DMA2)
  687. #define __HAL_RCC_DMA2_CLK_DISABLE() LL_AHB1_GRP1_DisableClock(LL_AHB1_GRP1_PERIPH_DMA2)
  688. #endif
  689. #define __HAL_RCC_DMAMUX1_CLK_DISABLE() LL_AHB1_GRP1_DisableClock(LL_AHB1_GRP1_PERIPH_DMAMUX1)
  690. #define __HAL_RCC_CRC_CLK_DISABLE() LL_AHB1_GRP1_DisableClock(LL_AHB1_GRP1_PERIPH_CRC)
  691. #define __HAL_RCC_TSC_CLK_DISABLE() LL_AHB1_GRP1_DisableClock(LL_AHB1_GRP1_PERIPH_TSC)
  692. /**
  693. * @}
  694. */
  695. /** @defgroup RCC_AHB2_Peripheral_Clock_Enable_Disable AHB2 Peripheral Clock Enable Disable
  696. * @brief Enable or disable the AHB2 peripheral clock.
  697. * @note After reset, the peripheral clock (used for registers read/write access)
  698. * is disabled and the application software has to enable this clock before
  699. * using it.
  700. * @{
  701. */
  702. #define __HAL_RCC_GPIOA_CLK_ENABLE() LL_AHB2_GRP1_EnableClock(LL_AHB2_GRP1_PERIPH_GPIOA)
  703. #define __HAL_RCC_GPIOB_CLK_ENABLE() LL_AHB2_GRP1_EnableClock(LL_AHB2_GRP1_PERIPH_GPIOB)
  704. #define __HAL_RCC_GPIOC_CLK_ENABLE() LL_AHB2_GRP1_EnableClock(LL_AHB2_GRP1_PERIPH_GPIOC)
  705. #if defined(GPIOD)
  706. #define __HAL_RCC_GPIOD_CLK_ENABLE() LL_AHB2_GRP1_EnableClock(LL_AHB2_GRP1_PERIPH_GPIOD)
  707. #endif
  708. #define __HAL_RCC_GPIOE_CLK_ENABLE() LL_AHB2_GRP1_EnableClock(LL_AHB2_GRP1_PERIPH_GPIOE)
  709. #define __HAL_RCC_GPIOH_CLK_ENABLE() LL_AHB2_GRP1_EnableClock(LL_AHB2_GRP1_PERIPH_GPIOH)
  710. #define __HAL_RCC_ADC_CLK_ENABLE() LL_AHB2_GRP1_EnableClock(LL_AHB2_GRP1_PERIPH_ADC)
  711. #if defined(AES1)
  712. #define __HAL_RCC_AES1_CLK_ENABLE() LL_AHB2_GRP1_EnableClock(LL_AHB2_GRP1_PERIPH_AES1)
  713. #endif
  714. #define __HAL_RCC_GPIOA_CLK_DISABLE() LL_AHB2_GRP1_DisableClock(LL_AHB2_GRP1_PERIPH_GPIOA)
  715. #define __HAL_RCC_GPIOB_CLK_DISABLE() LL_AHB2_GRP1_DisableClock(LL_AHB2_GRP1_PERIPH_GPIOB)
  716. #define __HAL_RCC_GPIOC_CLK_DISABLE() LL_AHB2_GRP1_DisableClock(LL_AHB2_GRP1_PERIPH_GPIOC)
  717. #if defined(GPIOD)
  718. #define __HAL_RCC_GPIOD_CLK_DISABLE() LL_AHB2_GRP1_DisableClock(LL_AHB2_GRP1_PERIPH_GPIOD)
  719. #endif
  720. #define __HAL_RCC_GPIOE_CLK_DISABLE() LL_AHB2_GRP1_DisableClock(LL_AHB2_GRP1_PERIPH_GPIOE)
  721. #define __HAL_RCC_GPIOH_CLK_DISABLE() LL_AHB2_GRP1_DisableClock(LL_AHB2_GRP1_PERIPH_GPIOH)
  722. #define __HAL_RCC_ADC_CLK_DISABLE() LL_AHB2_GRP1_DisableClock(LL_AHB2_GRP1_PERIPH_ADC)
  723. #if defined(AES1)
  724. #define __HAL_RCC_AES1_CLK_DISABLE() LL_AHB2_GRP1_DisableClock(LL_AHB2_GRP1_PERIPH_AES1)
  725. #endif
  726. /**
  727. * @}
  728. */
  729. /** @defgroup RCC_AHB3_Clock_Enable_Disable AHB3 Peripheral Clock Enable Disable
  730. * @brief Enable or disable the AHB3 peripheral clock.
  731. * @note After reset, the peripheral clock (used for registers read/write access)
  732. * is disabled and the application software has to enable this clock before
  733. * using it.
  734. * @{
  735. */
  736. #if defined(QUADSPI)
  737. #define __HAL_RCC_QUADSPI_CLK_ENABLE() LL_AHB3_GRP1_EnableClock(LL_AHB3_GRP1_PERIPH_QUADSPI)
  738. #endif
  739. #define __HAL_RCC_PKA_CLK_ENABLE() LL_AHB3_GRP1_EnableClock(LL_AHB3_GRP1_PERIPH_PKA)
  740. #define __HAL_RCC_AES2_CLK_ENABLE() LL_AHB3_GRP1_EnableClock(LL_AHB3_GRP1_PERIPH_AES2)
  741. #define __HAL_RCC_RNG_CLK_ENABLE() LL_AHB3_GRP1_EnableClock(LL_AHB3_GRP1_PERIPH_RNG)
  742. #define __HAL_RCC_HSEM_CLK_ENABLE() LL_AHB3_GRP1_EnableClock(LL_AHB3_GRP1_PERIPH_HSEM)
  743. #define __HAL_RCC_IPCC_CLK_ENABLE() LL_AHB3_GRP1_EnableClock(LL_AHB3_GRP1_PERIPH_IPCC)
  744. #define __HAL_RCC_FLASH_CLK_ENABLE() LL_AHB3_GRP1_EnableClock(LL_AHB3_GRP1_PERIPH_FLASH)
  745. #if defined(QUADSPI)
  746. #define __HAL_RCC_QUADSPI_CLK_DISABLE() LL_AHB3_GRP1_DisableClock(LL_AHB3_GRP1_PERIPH_QUADSPI)
  747. #endif
  748. #define __HAL_RCC_PKA_CLK_DISABLE() LL_AHB3_GRP1_DisableClock(LL_AHB3_GRP1_PERIPH_PKA)
  749. #define __HAL_RCC_AES2_CLK_DISABLE() LL_AHB3_GRP1_DisableClock(LL_AHB3_GRP1_PERIPH_AES2)
  750. #define __HAL_RCC_RNG_CLK_DISABLE() LL_AHB3_GRP1_DisableClock(LL_AHB3_GRP1_PERIPH_RNG)
  751. #define __HAL_RCC_HSEM_CLK_DISABLE() LL_AHB3_GRP1_DisableClock(LL_AHB3_GRP1_PERIPH_HSEM)
  752. #define __HAL_RCC_IPCC_CLK_DISABLE() LL_AHB3_GRP1_DisableClock(LL_AHB3_GRP1_PERIPH_IPCC)
  753. #define __HAL_RCC_FLASH_CLK_DISABLE() LL_AHB3_GRP1_DisableClock(LL_AHB3_GRP1_PERIPH_FLASH)
  754. /**
  755. * @}
  756. */
  757. /** @defgroup RCC_APB1_Clock_Enable_Disable APB1 Peripheral Clock Enable Disable
  758. * @brief Enable or disable the APB1 peripheral clock.
  759. * @note After reset, the peripheral clock (used for registers read/write access)
  760. * is disabled and the application software has to enable this clock before
  761. * using it.
  762. * @{
  763. */
  764. #define __HAL_RCC_RTCAPB_CLK_ENABLE() LL_APB1_GRP1_EnableClock(LL_APB1_GRP1_PERIPH_RTCAPB)
  765. #define __HAL_RCC_WWDG_CLK_ENABLE() LL_APB1_GRP1_EnableClock(LL_APB1_GRP1_PERIPH_WWDG)
  766. #define __HAL_RCC_TIM2_CLK_ENABLE() LL_APB1_GRP1_EnableClock(LL_APB1_GRP1_PERIPH_TIM2)
  767. #if defined(LCD)
  768. #define __HAL_RCC_LCD_CLK_ENABLE() LL_APB1_GRP1_EnableClock(LL_APB1_GRP1_PERIPH_LCD)
  769. #endif
  770. #if defined(SPI2)
  771. #define __HAL_RCC_SPI2_CLK_ENABLE() LL_APB1_GRP1_EnableClock(LL_APB1_GRP1_PERIPH_SPI2)
  772. #endif
  773. #define __HAL_RCC_I2C1_CLK_ENABLE() LL_APB1_GRP1_EnableClock(LL_APB1_GRP1_PERIPH_I2C1)
  774. #if defined(I2C3)
  775. #define __HAL_RCC_I2C3_CLK_ENABLE() LL_APB1_GRP1_EnableClock(LL_APB1_GRP1_PERIPH_I2C3)
  776. #endif
  777. #if defined(CRS)
  778. #define __HAL_RCC_CRS_CLK_ENABLE() LL_APB1_GRP1_EnableClock(LL_APB1_GRP1_PERIPH_CRS)
  779. #endif
  780. #if defined(USB)
  781. #define __HAL_RCC_USB_CLK_ENABLE() LL_APB1_GRP1_EnableClock(LL_APB1_GRP1_PERIPH_USB)
  782. #endif
  783. #define __HAL_RCC_LPTIM1_CLK_ENABLE() LL_APB1_GRP1_EnableClock(LL_APB1_GRP1_PERIPH_LPTIM1)
  784. #define __HAL_RCC_LPTIM2_CLK_ENABLE() LL_APB1_GRP2_EnableClock(LL_APB1_GRP2_PERIPH_LPTIM2)
  785. #if defined(LPUART1)
  786. #define __HAL_RCC_LPUART1_CLK_ENABLE() LL_APB1_GRP2_EnableClock(LL_APB1_GRP2_PERIPH_LPUART1)
  787. #endif
  788. #define __HAL_RCC_RTCAPB_CLK_DISABLE() LL_APB1_GRP1_DisableClock(LL_APB1_GRP1_PERIPH_RTCAPB)
  789. #define __HAL_RCC_TIM2_CLK_DISABLE() LL_APB1_GRP1_DisableClock(LL_APB1_GRP1_PERIPH_TIM2)
  790. #if defined(LCD)
  791. #define __HAL_RCC_LCD_CLK_DISABLE() LL_APB1_GRP1_DisableClock(LL_APB1_GRP1_PERIPH_LCD)
  792. #endif
  793. #if defined(SPI2)
  794. #define __HAL_RCC_SPI2_CLK_DISABLE() LL_APB1_GRP1_DisableClock(LL_APB1_GRP1_PERIPH_SPI2)
  795. #endif
  796. #define __HAL_RCC_I2C1_CLK_DISABLE() LL_APB1_GRP1_DisableClock(LL_APB1_GRP1_PERIPH_I2C1)
  797. #if defined(I2C3)
  798. #define __HAL_RCC_I2C3_CLK_DISABLE() LL_APB1_GRP1_DisableClock(LL_APB1_GRP1_PERIPH_I2C3)
  799. #endif
  800. #if defined(CRS)
  801. #define __HAL_RCC_CRS_CLK_DISABLE() LL_APB1_GRP1_DisableClock(LL_APB1_GRP1_PERIPH_CRS)
  802. #endif
  803. #if defined(USB)
  804. #define __HAL_RCC_USB_CLK_DISABLE() LL_APB1_GRP1_DisableClock(LL_APB1_GRP1_PERIPH_USB)
  805. #endif
  806. #define __HAL_RCC_LPTIM1_CLK_DISABLE() LL_APB1_GRP1_DisableClock(LL_APB1_GRP1_PERIPH_LPTIM1)
  807. #define __HAL_RCC_LPTIM2_CLK_DISABLE() LL_APB1_GRP2_DisableClock(LL_APB1_GRP2_PERIPH_LPTIM2)
  808. #if defined(LPUART1)
  809. #define __HAL_RCC_LPUART1_CLK_DISABLE() LL_APB1_GRP2_DisableClock(LL_APB1_GRP2_PERIPH_LPUART1)
  810. #endif
  811. /**
  812. * @}
  813. */
  814. /** @defgroup RCC_APB2_Clock_Enable_Disable APB2 Peripheral Clock Enable Disable
  815. * @brief Enable or disable the APB2 peripheral clock.
  816. * @note After reset, the peripheral clock (used for registers read/write access)
  817. * is disabled and the application software has to enable this clock before
  818. * using it.
  819. * @{
  820. */
  821. #define __HAL_RCC_TIM1_CLK_ENABLE() LL_APB2_GRP1_EnableClock(LL_APB2_GRP1_PERIPH_TIM1)
  822. #define __HAL_RCC_SPI1_CLK_ENABLE() LL_APB2_GRP1_EnableClock(LL_APB2_GRP1_PERIPH_SPI1)
  823. #define __HAL_RCC_USART1_CLK_ENABLE() LL_APB2_GRP1_EnableClock(LL_APB2_GRP1_PERIPH_USART1)
  824. #define __HAL_RCC_TIM16_CLK_ENABLE() LL_APB2_GRP1_EnableClock(LL_APB2_GRP1_PERIPH_TIM16)
  825. #define __HAL_RCC_TIM17_CLK_ENABLE() LL_APB2_GRP1_EnableClock(LL_APB2_GRP1_PERIPH_TIM17)
  826. #if defined(SAI1)
  827. #define __HAL_RCC_SAI1_CLK_ENABLE() LL_APB2_GRP1_EnableClock(LL_APB2_GRP1_PERIPH_SAI1)
  828. #endif
  829. #define __HAL_RCC_TIM1_CLK_DISABLE() LL_APB2_GRP1_DisableClock(LL_APB2_GRP1_PERIPH_TIM1)
  830. #define __HAL_RCC_SPI1_CLK_DISABLE() LL_APB2_GRP1_DisableClock(LL_APB2_GRP1_PERIPH_SPI1)
  831. #define __HAL_RCC_USART1_CLK_DISABLE() LL_APB2_GRP1_DisableClock(LL_APB2_GRP1_PERIPH_USART1)
  832. #define __HAL_RCC_TIM16_CLK_DISABLE() LL_APB2_GRP1_DisableClock(LL_APB2_GRP1_PERIPH_TIM16)
  833. #define __HAL_RCC_TIM17_CLK_DISABLE() LL_APB2_GRP1_DisableClock(LL_APB2_GRP1_PERIPH_TIM17)
  834. #if defined(SAI1)
  835. #define __HAL_RCC_SAI1_CLK_DISABLE() LL_APB2_GRP1_DisableClock(LL_APB2_GRP1_PERIPH_SAI1)
  836. #endif
  837. /**
  838. * @}
  839. */
  840. /** @defgroup RCC_AHB1_Peripheral_Clock_Enable_Disable_Status AHB1 Peripheral Clock Enabled or Disabled Status
  841. * @brief Check whether the AHB1 peripheral clock is enabled or not.
  842. * @note After reset, the peripheral clock (used for registers read/write access)
  843. * is disabled and the application software has to enable this clock before
  844. * using it.
  845. * @{
  846. */
  847. #define __HAL_RCC_DMA1_IS_CLK_ENABLED() LL_AHB1_GRP1_IsEnabledClock(LL_AHB1_GRP1_PERIPH_DMA1)
  848. #if defined(DMA2)
  849. #define __HAL_RCC_DMA2_IS_CLK_ENABLED() LL_AHB1_GRP1_IsEnabledClock(LL_AHB1_GRP1_PERIPH_DMA2)
  850. #endif
  851. #define __HAL_RCC_DMAMUX1_IS_CLK_ENABLED() LL_AHB1_GRP1_IsEnabledClock(LL_AHB1_GRP1_PERIPH_DMAMUX1)
  852. #define __HAL_RCC_CRC_IS_CLK_ENABLED() LL_AHB1_GRP1_IsEnabledClock(LL_AHB1_GRP1_PERIPH_CRC)
  853. #define __HAL_RCC_TSC_IS_CLK_ENABLED() LL_AHB1_GRP1_IsEnabledClock(LL_AHB1_GRP1_PERIPH_TSC)
  854. #define __HAL_RCC_DMA1_IS_CLK_DISABLED() !(LL_AHB1_GRP1_IsEnabledClock(LL_AHB1_GRP1_PERIPH_DMA1))
  855. #if defined(DMA2)
  856. #define __HAL_RCC_DMA2_IS_CLK_DISABLED() !(LL_AHB1_GRP1_IsEnabledClock(LL_AHB1_GRP1_PERIPH_DMA2))
  857. #endif
  858. #define __HAL_RCC_DMAMUX1_IS_CLK_DISABLED() !(LL_AHB1_GRP1_IsEnabledClock(LL_AHB1_GRP1_PERIPH_DMAMUX1))
  859. #define __HAL_RCC_CRC_IS_CLK_DISABLED() !(LL_AHB1_GRP1_IsEnabledClock(LL_AHB1_GRP1_PERIPH_CRC))
  860. #define __HAL_RCC_TSC_IS_CLK_DISABLED() !(LL_AHB1_GRP1_IsEnabledClock(LL_AHB1_GRP1_PERIPH_TSC))
  861. /**
  862. * @}
  863. */
  864. /** @defgroup RCC_AHB2_Clock_Enable_Disable_Status AHB2 Peripheral Clock Enabled or Disabled Status
  865. * @brief Check whether the AHB2 peripheral clock is enabled or not.
  866. * @note After reset, the peripheral clock (used for registers read/write access)
  867. * is disabled and the application software has to enable this clock before
  868. * using it.
  869. * @{
  870. */
  871. #define __HAL_RCC_GPIOA_IS_CLK_ENABLED() LL_AHB2_GRP1_IsEnabledClock(LL_AHB2_GRP1_PERIPH_GPIOA)
  872. #define __HAL_RCC_GPIOB_IS_CLK_ENABLED() LL_AHB2_GRP1_IsEnabledClock(LL_AHB2_GRP1_PERIPH_GPIOB)
  873. #define __HAL_RCC_GPIOC_IS_CLK_ENABLED() LL_AHB2_GRP1_IsEnabledClock(LL_AHB2_GRP1_PERIPH_GPIOC)
  874. #if defined(GPIOD)
  875. #define __HAL_RCC_GPIOD_IS_CLK_ENABLED() LL_AHB2_GRP1_IsEnabledClock(LL_AHB2_GRP1_PERIPH_GPIOD)
  876. #endif
  877. #define __HAL_RCC_GPIOE_IS_CLK_ENABLED() LL_AHB2_GRP1_IsEnabledClock(LL_AHB2_GRP1_PERIPH_GPIOE)
  878. #define __HAL_RCC_GPIOH_IS_CLK_ENABLED() LL_AHB2_GRP1_IsEnabledClock(LL_AHB2_GRP1_PERIPH_GPIOH)
  879. #define __HAL_RCC_ADC_IS_CLK_ENABLED() LL_AHB2_GRP1_IsEnabledClock(LL_AHB2_GRP1_PERIPH_ADC)
  880. #if defined(AES1)
  881. #define __HAL_RCC_AES1_IS_CLK_ENABLED() LL_AHB2_GRP1_IsEnabledClock(LL_AHB2_GRP1_PERIPH_AES1)
  882. #endif
  883. #define __HAL_RCC_GPIOA_IS_CLK_DISABLED() !(LL_AHB2_GRP1_IsEnabledClock(LL_AHB2_GRP1_PERIPH_GPIOA))
  884. #define __HAL_RCC_GPIOB_IS_CLK_DISABLED() !(LL_AHB2_GRP1_IsEnabledClock(LL_AHB2_GRP1_PERIPH_GPIOB))
  885. #define __HAL_RCC_GPIOC_IS_CLK_DISABLED() !(LL_AHB2_GRP1_IsEnabledClock(LL_AHB2_GRP1_PERIPH_GPIOC))
  886. #if defined(GPIOD)
  887. #define __HAL_RCC_GPIOD_IS_CLK_DISABLED() !(LL_AHB2_GRP1_IsEnabledClock(LL_AHB2_GRP1_PERIPH_GPIOD))
  888. #endif
  889. #define __HAL_RCC_GPIOE_IS_CLK_DISABLED() !(LL_AHB2_GRP1_IsEnabledClock(LL_AHB2_GRP1_PERIPH_GPIOE))
  890. #define __HAL_RCC_GPIOH_IS_CLK_DISABLED() !(LL_AHB2_GRP1_IsEnabledClock(LL_AHB2_GRP1_PERIPH_GPIOH))
  891. #define __HAL_RCC_ADC_IS_CLK_DISABLED() !(LL_AHB2_GRP1_IsEnabledClock(LL_AHB2_GRP1_PERIPH_ADC))
  892. #if defined(AES1)
  893. #define __HAL_RCC_AES1_IS_CLK_DISABLED() !(LL_AHB2_GRP1_IsEnabledClock(LL_AHB2_GRP1_PERIPH_AES1))
  894. #endif
  895. /**
  896. * @}
  897. */
  898. /** @defgroup RCC_AHB3_Clock_Enable_Disable_Status AHB3 Peripheral Clock Enabled or Disabled Status
  899. * @brief Check whether the AHB3 peripheral clock is enabled or not.
  900. * @note After reset, the peripheral clock (used for registers read/write access)
  901. * is disabled and the application software has to enable this clock before
  902. * using it.
  903. * @{
  904. */
  905. #if defined(QUADSPI)
  906. #define __HAL_RCC_QUADSPI_IS_CLK_ENABLED() LL_AHB3_GRP1_IsEnabledClock(LL_AHB3_GRP1_PERIPH_QUADSPI)
  907. #endif
  908. #define __HAL_RCC_PKA_IS_CLK_ENABLED() LL_AHB3_GRP1_IsEnabledClock(LL_AHB3_GRP1_PERIPH_PKA)
  909. #define __HAL_RCC_AES2_IS_CLK_ENABLED() LL_AHB3_GRP1_IsEnabledClock(LL_AHB3_GRP1_PERIPH_AES2)
  910. #define __HAL_RCC_RNG_IS_CLK_ENABLED() LL_AHB3_GRP1_IsEnabledClock(LL_AHB3_GRP1_PERIPH_RNG)
  911. #define __HAL_RCC_HSEM_IS_CLK_ENABLED() LL_AHB3_GRP1_IsEnabledClock(LL_AHB3_GRP1_PERIPH_HSEM)
  912. #define __HAL_RCC_IPCC_IS_CLK_ENABLED() LL_AHB3_GRP1_IsEnabledClock(LL_AHB3_GRP1_PERIPH_IPCC)
  913. #define __HAL_RCC_FLASH_IS_CLK_ENABLED() LL_AHB3_GRP1_IsEnabledClock(LL_AHB3_GRP1_PERIPH_FLASH)
  914. #if defined(QUADSPI)
  915. #define __HAL_RCC_QUADSPI_IS_CLK_DISABLED() !(LL_AHB3_GRP1_IsEnabledClock(LL_AHB3_GRP1_PERIPH_QUADSPI))
  916. #endif
  917. #define __HAL_RCC_PKA_IS_CLK_DISABLED() !(LL_AHB3_GRP1_IsEnabledClock(LL_AHB3_GRP1_PERIPH_PKA))
  918. #define __HAL_RCC_AES2_IS_CLK_DISABLED() !(LL_AHB3_GRP1_IsEnabledClock(LL_AHB3_GRP1_PERIPH_AES2))
  919. #define __HAL_RCC_RNG_IS_CLK_DISABLED() !(LL_AHB3_GRP1_IsEnabledClock(LL_AHB3_GRP1_PERIPH_RNG))
  920. #define __HAL_RCC_HSEM_IS_CLK_DISABLED() !(LL_AHB3_GRP1_IsEnabledClock(LL_AHB3_GRP1_PERIPH_HSEM))
  921. #define __HAL_RCC_IPCC_IS_CLK_DISABLED() !(LL_AHB3_GRP1_IsEnabledClock(LL_AHB3_GRP1_PERIPH_IPCC))
  922. #define __HAL_RCC_FLASH_IS_CLK_DISABLED() !(LL_AHB3_GRP1_IsEnabledClock(LL_AHB3_GRP1_PERIPH_FLASH))
  923. /**
  924. * @}
  925. */
  926. /** @defgroup RCC_APB1_Clock_Enable_Disable_Status APB1 Peripheral Clock Enabled or Disabled Status
  927. * @brief Check whether the APB1 peripheral clock is enabled or not.
  928. * @note After reset, the peripheral clock (used for registers read/write access)
  929. * is disabled and the application software has to enable this clock before
  930. * using it.
  931. * @{
  932. */
  933. #define __HAL_RCC_RTCAPB_IS_CLK_ENABLED() LL_APB1_GRP1_IsEnabledClock(LL_APB1_GRP1_PERIPH_RTCAPB)
  934. #define __HAL_RCC_WWDG_IS_CLK_ENABLED() LL_APB1_GRP1_IsEnabledClock(LL_APB1_GRP1_PERIPH_WWDG)
  935. #define __HAL_RCC_TIM2_IS_CLK_ENABLED() LL_APB1_GRP1_IsEnabledClock(LL_APB1_GRP1_PERIPH_TIM2)
  936. #if defined(LCD)
  937. #define __HAL_RCC_LCD_IS_CLK_ENABLED() LL_APB1_GRP1_IsEnabledClock(LL_APB1_GRP1_PERIPH_LCD)
  938. #endif
  939. #if defined(SPI2)
  940. #define __HAL_RCC_SPI2_IS_CLK_ENABLED() LL_APB1_GRP1_IsEnabledClock(LL_APB1_GRP1_PERIPH_SPI2)
  941. #endif
  942. #define __HAL_RCC_I2C1_IS_CLK_ENABLED() LL_APB1_GRP1_IsEnabledClock(LL_APB1_GRP1_PERIPH_I2C1)
  943. #if defined(I2C3)
  944. #define __HAL_RCC_I2C3_IS_CLK_ENABLED() LL_APB1_GRP1_IsEnabledClock(LL_APB1_GRP1_PERIPH_I2C3)
  945. #endif
  946. #if defined(CRS)
  947. #define __HAL_RCC_CRS_IS_CLK_ENABLED() LL_APB1_GRP1_IsEnabledClock(LL_APB1_GRP1_PERIPH_CRS)
  948. #endif
  949. #if defined(USB)
  950. #define __HAL_RCC_USB_IS_CLK_ENABLED() LL_APB1_GRP1_IsEnabledClock(LL_APB1_GRP1_PERIPH_USB)
  951. #endif
  952. #define __HAL_RCC_LPTIM1_IS_CLK_ENABLED() LL_APB1_GRP1_IsEnabledClock(LL_APB1_GRP1_PERIPH_LPTIM1)
  953. #define __HAL_RCC_LPTIM2_IS_CLK_ENABLED() LL_APB1_GRP2_IsEnabledClock(LL_APB1_GRP2_PERIPH_LPTIM2)
  954. #if defined(LPUART1)
  955. #define __HAL_RCC_LPUART1_IS_CLK_ENABLED() LL_APB1_GRP2_IsEnabledClock(LL_APB1_GRP2_PERIPH_LPUART1)
  956. #endif
  957. #define __HAL_RCC_RTCAPB_IS_CLK_DISABLED() !(LL_APB1_GRP1_IsEnabledClock(LL_APB1_GRP1_PERIPH_RTCAPB))
  958. #define __HAL_RCC_WWDG_IS_CLK_DISABLED() !(LL_APB1_GRP1_IsEnabledClock(LL_APB1_GRP1_PERIPH_WWDG))
  959. #define __HAL_RCC_TIM2_IS_CLK_DISABLED() !(LL_APB1_GRP1_IsEnabledClock(LL_APB1_GRP1_PERIPH_TIM2))
  960. #if defined(LCD)
  961. #define __HAL_RCC_LCD_IS_CLK_DISABLED() !(LL_APB1_GRP1_IsEnabledClock(LL_APB1_GRP1_PERIPH_LCD))
  962. #endif
  963. #if defined(SPI2)
  964. #define __HAL_RCC_SPI2_IS_CLK_DISABLED() !(LL_APB1_GRP1_IsEnabledClock(LL_APB1_GRP1_PERIPH_SPI2))
  965. #endif
  966. #define __HAL_RCC_I2C1_IS_CLK_DISABLED() !(LL_APB1_GRP1_IsEnabledClock(LL_APB1_GRP1_PERIPH_I2C1))
  967. #if defined(I2C3)
  968. #define __HAL_RCC_I2C3_IS_CLK_DISABLED() !(LL_APB1_GRP1_IsEnabledClock(LL_APB1_GRP1_PERIPH_I2C3))
  969. #endif
  970. #if defined(CRS)
  971. #define __HAL_RCC_CRS_IS_CLK_DISABLED() !(LL_APB1_GRP1_IsEnabledClock(LL_APB1_GRP1_PERIPH_CRS))
  972. #endif
  973. #if defined(USB)
  974. #define __HAL_RCC_USB_IS_CLK_DISABLED() !(LL_APB1_GRP1_IsEnabledClock(LL_APB1_GRP1_PERIPH_USB))
  975. #endif
  976. #define __HAL_RCC_LPTIM1_IS_CLK_DISABLED() !(LL_APB1_GRP1_IsEnabledClock(LL_APB1_GRP1_PERIPH_LPTIM1))
  977. #define __HAL_RCC_LPTIM2_IS_CLK_DISABLED() !(LL_APB1_GRP2_IsEnabledClock(LL_APB1_GRP2_PERIPH_LPTIM2))
  978. #if defined(LPUART1)
  979. #define __HAL_RCC_LPUART1_IS_CLK_DISABLED() !(LL_APB1_GRP2_IsEnabledClock(LL_APB1_GRP2_PERIPH_LPUART1))
  980. #endif
  981. /**
  982. * @}
  983. */
  984. /** @defgroup RCC_APB2_Clock_Enable_Disable_Status APB2 Peripheral Clock Enabled or Disabled Status
  985. * @brief Check whether the APB2 peripheral clock is enabled or not.
  986. * @note After reset, the peripheral clock (used for registers read/write access)
  987. * is disabled and the application software has to enable this clock before
  988. * using it.
  989. * @{
  990. */
  991. #define __HAL_RCC_TIM1_IS_CLK_ENABLED() LL_APB2_GRP1_IsEnabledClock(LL_APB2_GRP1_PERIPH_TIM1)
  992. #define __HAL_RCC_SPI1_IS_CLK_ENABLED() LL_APB2_GRP1_IsEnabledClock(LL_APB2_GRP1_PERIPH_SPI1)
  993. #define __HAL_RCC_USART1_IS_CLK_ENABLED() LL_APB2_GRP1_IsEnabledClock(LL_APB2_GRP1_PERIPH_USART1)
  994. #define __HAL_RCC_TIM16_IS_CLK_ENABLED() LL_APB2_GRP1_IsEnabledClock(LL_APB2_GRP1_PERIPH_TIM16)
  995. #define __HAL_RCC_TIM17_IS_CLK_ENABLED() LL_APB2_GRP1_IsEnabledClock(LL_APB2_GRP1_PERIPH_TIM17)
  996. #if defined(SAI1)
  997. #define __HAL_RCC_SAI1_IS_CLK_ENABLED() LL_APB2_GRP1_IsEnabledClock(LL_APB2_GRP1_PERIPH_SAI1)
  998. #endif
  999. #define __HAL_RCC_TIM1_IS_CLK_DISABLED() !(LL_APB2_GRP1_IsEnabledClock(LL_APB2_GRP1_PERIPH_TIM1))
  1000. #define __HAL_RCC_SPI1_IS_CLK_DISABLED() !(LL_APB2_GRP1_IsEnabledClock(LL_APB2_GRP1_PERIPH_SPI1))
  1001. #define __HAL_RCC_USART1_IS_CLK_DISABLED() !(LL_APB2_GRP1_IsEnabledClock(LL_APB2_GRP1_PERIPH_USART1))
  1002. #define __HAL_RCC_TIM16_IS_CLK_DISABLED() !(LL_APB2_GRP1_IsEnabledClock(LL_APB2_GRP1_PERIPH_TIM16))
  1003. #define __HAL_RCC_TIM17_IS_CLK_DISABLED() !(LL_APB2_GRP1_IsEnabledClock(LL_APB2_GRP1_PERIPH_TIM17))
  1004. #if defined(SAI1)
  1005. #define __HAL_RCC_SAI1_IS_CLK_DISABLED() !(LL_APB2_GRP1_IsEnabledClock(LL_APB2_GRP1_PERIPH_SAI1))
  1006. #endif
  1007. /**
  1008. * @}
  1009. */
  1010. /** @defgroup RCC_AHB1_Peripheral_Clock_Enable_Disable AHB1 Peripheral Clock Enable Disable
  1011. * @brief Enable or disable the AHB1 peripheral clock.
  1012. * @note After reset, the peripheral clock (used for registers read/write access)
  1013. * is disabled and the application software has to enable this clock before
  1014. * using it.
  1015. * @{
  1016. */
  1017. #define __HAL_RCC_C2DMA1_CLK_ENABLE() LL_C2_AHB1_GRP1_EnableClock(LL_C2_AHB1_GRP1_PERIPH_DMA1)
  1018. #if defined(DMA2)
  1019. #define __HAL_RCC_C2DMA2_CLK_ENABLE() LL_C2_AHB1_GRP1_EnableClock(LL_C2_AHB1_GRP1_PERIPH_DMA2)
  1020. #endif
  1021. #define __HAL_RCC_C2DMAMUX1_CLK_ENABLE() LL_C2_AHB1_GRP1_EnableClock(LL_C2_AHB1_GRP1_PERIPH_DMAMUX1)
  1022. #define __HAL_RCC_C2SRAM1_CLK_ENABLE() LL_C2_AHB1_GRP1_EnableClock(LL_C2_AHB1_GRP1_PERIPH_SRAM1)
  1023. #define __HAL_RCC_C2CRC_CLK_ENABLE() LL_C2_AHB1_GRP1_EnableClock(LL_C2_AHB1_GRP1_PERIPH_CRC)
  1024. #define __HAL_RCC_C2TSC_CLK_ENABLE() LL_C2_AHB1_GRP1_EnableClock(LL_C2_AHB1_GRP1_PERIPH_TSC)
  1025. #define __HAL_RCC_C2DMA1_CLK_DISABLE() LL_C2_AHB1_GRP1_DisableClock(LL_C2_AHB1_GRP1_PERIPH_DMA1)
  1026. #if defined(DMA2)
  1027. #define __HAL_RCC_C2DMA2_CLK_DISABLE() LL_C2_AHB1_GRP1_DisableClock(LL_C2_AHB1_GRP1_PERIPH_DMA2)
  1028. #endif
  1029. #define __HAL_RCC_C2DMAMUX1_CLK_DISABLE() LL_C2_AHB1_GRP1_DisableClock(LL_C2_AHB1_GRP1_PERIPH_DMAMUX1)
  1030. #define __HAL_RCC_C2SRAM1_CLK_DISABLE() LL_C2_AHB1_GRP1_DisableClock(LL_C2_AHB1_GRP1_PERIPH_SRAM1)
  1031. #define __HAL_RCC_C2CRC_CLK_DISABLE() LL_C2_AHB1_GRP1_DisableClock(LL_C2_AHB1_GRP1_PERIPH_CRC)
  1032. #define __HAL_RCC_C2TSC_CLK_DISABLE() LL_C2_AHB1_GRP1_DisableClock(LL_C2_AHB1_GRP1_PERIPH_TSC)
  1033. /**
  1034. * @}
  1035. */
  1036. /** @defgroup RCC_AHB2_Peripheral_Clock_Enable_Disable AHB2 Peripheral Clock Enable Disable
  1037. * @brief Enable or disable the AHB2 peripheral clock.
  1038. * @note After reset, the peripheral clock (used for registers read/write access)
  1039. * is disabled and the application software has to enable this clock before
  1040. * using it.
  1041. * @{
  1042. */
  1043. #define __HAL_RCC_C2GPIOA_CLK_ENABLE() LL_C2_AHB2_GRP1_EnableClock(LL_C2_AHB2_GRP1_PERIPH_GPIOA)
  1044. #define __HAL_RCC_C2GPIOB_CLK_ENABLE() LL_C2_AHB2_GRP1_EnableClock(LL_C2_AHB2_GRP1_PERIPH_GPIOB)
  1045. #define __HAL_RCC_C2GPIOC_CLK_ENABLE() LL_C2_AHB2_GRP1_EnableClock(LL_C2_AHB2_GRP1_PERIPH_GPIOC)
  1046. #if defined(GPIOD)
  1047. #define __HAL_RCC_C2GPIOD_CLK_ENABLE() LL_C2_AHB2_GRP1_EnableClock(LL_C2_AHB2_GRP1_PERIPH_GPIOD)
  1048. #endif
  1049. #define __HAL_RCC_C2GPIOE_CLK_ENABLE() LL_C2_AHB2_GRP1_EnableClock(LL_C2_AHB2_GRP1_PERIPH_GPIOE)
  1050. #define __HAL_RCC_C2GPIOH_CLK_ENABLE() LL_C2_AHB2_GRP1_EnableClock(LL_C2_AHB2_GRP1_PERIPH_GPIOH)
  1051. #define __HAL_RCC_C2ADC_CLK_ENABLE() LL_C2_AHB2_GRP1_EnableClock(LL_C2_AHB2_GRP1_PERIPH_ADC)
  1052. #if defined(AES1)
  1053. #define __HAL_RCC_C2AES1_CLK_ENABLE() LL_C2_AHB2_GRP1_EnableClock(LL_C2_AHB2_GRP1_PERIPH_AES1)
  1054. #endif
  1055. #define __HAL_RCC_C2GPIOA_CLK_DISABLE() LL_C2_AHB2_GRP1_DisableClock(LL_C2_AHB2_GRP1_PERIPH_GPIOA)
  1056. #define __HAL_RCC_C2GPIOB_CLK_DISABLE() LL_C2_AHB2_GRP1_DisableClock(LL_C2_AHB2_GRP1_PERIPH_GPIOB)
  1057. #define __HAL_RCC_C2GPIOC_CLK_DISABLE() LL_C2_AHB2_GRP1_DisableClock(LL_C2_AHB2_GRP1_PERIPH_GPIOC)
  1058. #if defined(GPIOD)
  1059. #define __HAL_RCC_C2GPIOD_CLK_DISABLE() LL_C2_AHB2_GRP1_DisableClock(LL_C2_AHB2_GRP1_PERIPH_GPIOD)
  1060. #endif
  1061. #define __HAL_RCC_C2GPIOE_CLK_DISABLE() LL_C2_AHB2_GRP1_DisableClock(LL_C2_AHB2_GRP1_PERIPH_GPIOE)
  1062. #define __HAL_RCC_C2GPIOH_CLK_DISABLE() LL_C2_AHB2_GRP1_DisableClock(LL_C2_AHB2_GRP1_PERIPH_GPIOH)
  1063. #define __HAL_RCC_C2ADC_CLK_DISABLE() LL_C2_AHB2_GRP1_DisableClock(LL_C2_AHB2_GRP1_PERIPH_ADC)
  1064. #if defined(AES1)
  1065. #define __HAL_RCC_C2AES1_CLK_DISABLE() LL_C2_AHB2_GRP1_DisableClock(LL_C2_AHB2_GRP1_PERIPH_AES1)
  1066. #endif
  1067. /**
  1068. * @}
  1069. */
  1070. /** @defgroup RCC_AHB3_Clock_Enable_Disable AHB3 Peripheral Clock Enable Disable
  1071. * @brief Enable or disable the AHB3 peripheral clock.
  1072. * @note After reset, the peripheral clock (used for registers read/write access)
  1073. * is disabled and the application software has to enable this clock before
  1074. * using it.
  1075. * @{
  1076. */
  1077. #define __HAL_RCC_C2PKA_CLK_ENABLE() LL_C2_AHB3_GRP1_EnableClock(LL_C2_AHB3_GRP1_PERIPH_PKA)
  1078. #define __HAL_RCC_C2AES2_CLK_ENABLE() LL_C2_AHB3_GRP1_EnableClock(LL_C2_AHB3_GRP1_PERIPH_AES2)
  1079. #define __HAL_RCC_C2RNG_CLK_ENABLE() LL_C2_AHB3_GRP1_EnableClock(LL_C2_AHB3_GRP1_PERIPH_RNG)
  1080. #define __HAL_RCC_C2HSEM_CLK_ENABLE() LL_C2_AHB3_GRP1_EnableClock(LL_C2_AHB3_GRP1_PERIPH_HSEM)
  1081. #define __HAL_RCC_C2IPCC_CLK_ENABLE() LL_C2_AHB3_GRP1_EnableClock(LL_C2_AHB3_GRP1_PERIPH_IPCC)
  1082. #define __HAL_RCC_C2FLASH_CLK_ENABLE() LL_C2_AHB3_GRP1_EnableClock(LL_C2_AHB3_GRP1_PERIPH_FLASH)
  1083. #define __HAL_RCC_C2PKA_CLK_DISABLE() LL_C2_AHB3_GRP1_DisableClock(LL_C2_AHB3_GRP1_PERIPH_PKA)
  1084. #define __HAL_RCC_C2AES2_CLK_DISABLE() LL_C2_AHB3_GRP1_DisableClock(LL_C2_AHB3_GRP1_PERIPH_AES2)
  1085. #define __HAL_RCC_C2RNG_CLK_DISABLE() LL_C2_AHB3_GRP1_DisableClock(LL_C2_AHB3_GRP1_PERIPH_RNG)
  1086. #define __HAL_RCC_C2HSEM_CLK_DISABLE() LL_C2_AHB3_GRP1_DisableClock(LL_C2_AHB3_GRP1_PERIPH_HSEM)
  1087. #define __HAL_RCC_C2IPCC_CLK_DISABLE() LL_C2_AHB3_GRP1_DisableClock(LL_C2_AHB3_GRP1_PERIPH_IPCC)
  1088. #define __HAL_RCC_C2FLASH_CLK_DISABLE() LL_C2_AHB3_GRP1_DisableClock(LL_C2_AHB3_GRP1_PERIPH_FLASH)
  1089. /**
  1090. * @}
  1091. */
  1092. /** @defgroup RCC_APB1_Clock_Enable_Disable APB1 Peripheral Clock Enable Disable
  1093. * @brief Enable or disable the APB1 peripheral clock.
  1094. * @note After reset, the peripheral clock (used for registers read/write access)
  1095. * is disabled and the application software has to enable this clock before
  1096. * using it.
  1097. * @{
  1098. */
  1099. #define __HAL_RCC_C2RTCAPB_CLK_ENABLE() LL_C2_APB1_GRP1_EnableClock(LL_C2_APB1_GRP1_PERIPH_RTCAPB)
  1100. #define __HAL_RCC_C2TIM2_CLK_ENABLE() LL_C2_APB1_GRP1_EnableClock(LL_C2_APB1_GRP1_PERIPH_TIM2)
  1101. #if defined(LCD)
  1102. #define __HAL_RCC_C2LCD_CLK_ENABLE() LL_C2_APB1_GRP1_EnableClock(LL_C2_APB1_GRP1_PERIPH_LCD)
  1103. #endif
  1104. #if defined(SPI2)
  1105. #define __HAL_RCC_C2SPI2_CLK_ENABLE() LL_C2_APB1_GRP1_EnableClock(LL_C2_APB1_GRP1_PERIPH_SPI2)
  1106. #endif
  1107. #define __HAL_RCC_C2I2C1_CLK_ENABLE() LL_C2_APB1_GRP1_EnableClock(LL_C2_APB1_GRP1_PERIPH_I2C1)
  1108. #if defined(I2C3)
  1109. #define __HAL_RCC_C2I2C3_CLK_ENABLE() LL_C2_APB1_GRP1_EnableClock(LL_C2_APB1_GRP1_PERIPH_I2C3)
  1110. #endif
  1111. #if defined(CRS)
  1112. #define __HAL_RCC_C2CRS_CLK_ENABLE() LL_C2_APB1_GRP1_EnableClock(LL_C2_APB1_GRP1_PERIPH_CRS)
  1113. #endif
  1114. #if defined(USB)
  1115. #define __HAL_RCC_C2USB_CLK_ENABLE() LL_C2_APB1_GRP1_EnableClock(LL_C2_APB1_GRP1_PERIPH_USB)
  1116. #endif
  1117. #define __HAL_RCC_C2LPTIM1_CLK_ENABLE() LL_C2_APB1_GRP1_EnableClock(LL_C2_APB1_GRP1_PERIPH_LPTIM1)
  1118. #define __HAL_RCC_C2LPTIM2_CLK_ENABLE() LL_C2_APB1_GRP2_EnableClock(LL_C2_APB1_GRP2_PERIPH_LPTIM2)
  1119. #if defined(LPUART1)
  1120. #define __HAL_RCC_C2LPUART1_CLK_ENABLE() LL_C2_APB1_GRP2_EnableClock(LL_C2_APB1_GRP2_PERIPH_LPUART1)
  1121. #endif
  1122. #define __HAL_RCC_C2RTCAPB_CLK_DISABLE() LL_C2_APB1_GRP1_DisableClock(LL_C2_APB1_GRP1_PERIPH_RTCAPB)
  1123. #define __HAL_RCC_C2TIM2_CLK_DISABLE() LL_C2_APB1_GRP1_DisableClock(LL_C2_APB1_GRP1_PERIPH_TIM2)
  1124. #if defined(LCD)
  1125. #define __HAL_RCC_C2LCD_CLK_DISABLE() LL_C2_APB1_GRP1_DisableClock(LL_C2_APB1_GRP1_PERIPH_LCD)
  1126. #endif
  1127. #if defined(SPI2)
  1128. #define __HAL_RCC_C2SPI2_CLK_DISABLE() LL_C2_APB1_GRP1_DisableClock(LL_C2_APB1_GRP1_PERIPH_SPI2)
  1129. #endif
  1130. #define __HAL_RCC_C2I2C1_CLK_DISABLE() LL_C2_APB1_GRP1_DisableClock(LL_C2_APB1_GRP1_PERIPH_I2C1)
  1131. #if defined(I2C3)
  1132. #define __HAL_RCC_C2I2C3_CLK_DISABLE() LL_C2_APB1_GRP1_DisableClock(LL_C2_APB1_GRP1_PERIPH_I2C3)
  1133. #endif
  1134. #if defined(CRS)
  1135. #define __HAL_RCC_C2CRS_CLK_DISABLE() LL_C2_APB1_GRP1_DisableClock(LL_C2_APB1_GRP1_PERIPH_CRS)
  1136. #endif
  1137. #if defined(USB)
  1138. #define __HAL_RCC_C2USB_CLK_DISABLE() LL_C2_APB1_GRP1_DisableClock(LL_C2_APB1_GRP1_PERIPH_USB)
  1139. #endif
  1140. #define __HAL_RCC_C2LPTIM1_CLK_DISABLE() LL_C2_APB1_GRP1_DisableClock(LL_C2_APB1_GRP1_PERIPH_LPTIM1)
  1141. #define __HAL_RCC_C2LPTIM2_CLK_DISABLE() LL_C2_APB1_GRP2_DisableClock(LL_C2_APB1_GRP2_PERIPH_LPTIM2)
  1142. #if defined(LPUART1)
  1143. #define __HAL_RCC_C2LPUART1_CLK_DISABLE() LL_C2_APB1_GRP2_DisableClock(LL_C2_APB1_GRP2_PERIPH_LPUART1)
  1144. #endif
  1145. /**
  1146. * @}
  1147. */
  1148. /** @defgroup RCC_APB2_Clock_Enable_Disable APB2 Peripheral Clock Enable Disable
  1149. * @brief Enable or disable the APB2 peripheral clock.
  1150. * @note After reset, the peripheral clock (used for registers read/write access)
  1151. * is disabled and the application software has to enable this clock before
  1152. * using it.
  1153. * @{
  1154. */
  1155. #define __HAL_RCC_C2TIM1_CLK_ENABLE() LL_C2_APB2_GRP1_EnableClock(LL_C2_APB2_GRP1_PERIPH_TIM1)
  1156. #define __HAL_RCC_C2SPI1_CLK_ENABLE() LL_C2_APB2_GRP1_EnableClock(LL_C2_APB2_GRP1_PERIPH_SPI1)
  1157. #define __HAL_RCC_C2USART1_CLK_ENABLE() LL_C2_APB2_GRP1_EnableClock(LL_C2_APB2_GRP1_PERIPH_USART1)
  1158. #define __HAL_RCC_C2TIM16_CLK_ENABLE() LL_C2_APB2_GRP1_EnableClock(LL_C2_APB2_GRP1_PERIPH_TIM16)
  1159. #define __HAL_RCC_C2TIM17_CLK_ENABLE() LL_C2_APB2_GRP1_EnableClock(LL_C2_APB2_GRP1_PERIPH_TIM17)
  1160. #if defined(SAI1)
  1161. #define __HAL_RCC_C2SAI1_CLK_ENABLE() LL_C2_APB2_GRP1_EnableClock(LL_C2_APB2_GRP1_PERIPH_SAI1)
  1162. #endif
  1163. #define __HAL_RCC_C2TIM1_CLK_DISABLE() LL_C2_APB2_GRP1_DisableClock(LL_C2_APB2_GRP1_PERIPH_TIM1)
  1164. #define __HAL_RCC_C2SPI1_CLK_DISABLE() LL_C2_APB2_GRP1_DisableClock(LL_C2_APB2_GRP1_PERIPH_SPI1)
  1165. #define __HAL_RCC_C2USART1_CLK_DISABLE() LL_C2_APB2_GRP1_DisableClock(LL_C2_APB2_GRP1_PERIPH_USART1)
  1166. #define __HAL_RCC_C2TIM16_CLK_DISABLE() LL_C2_APB2_GRP1_DisableClock(LL_C2_APB2_GRP1_PERIPH_TIM16)
  1167. #define __HAL_RCC_C2TIM17_CLK_DISABLE() LL_C2_APB2_GRP1_DisableClock(LL_C2_APB2_GRP1_PERIPH_TIM17)
  1168. #if defined(SAI1)
  1169. #define __HAL_RCC_C2SAI1_CLK_DISABLE() LL_C2_APB2_GRP1_DisableClock(LL_C2_APB2_GRP1_PERIPH_SAI1)
  1170. #endif
  1171. /**
  1172. * @}
  1173. */
  1174. /** @defgroup RCC_APB3_Clock_Enable_Disable APB3 Peripheral Clock Enable Disable
  1175. * @brief Enable or disable the APB3 peripheral clock.
  1176. * @note After reset, the peripheral clock (used for registers read/write access)
  1177. * is disabled and the application software has to enable this clock before
  1178. * using it.
  1179. * @{
  1180. */
  1181. #define __HAL_RCC_C2BLE_CLK_ENABLE() LL_C2_APB3_GRP1_EnableClock(LL_C2_APB3_GRP1_PERIPH_BLE)
  1182. #define __HAL_RCC_C2802_CLK_ENABLE() LL_C2_APB3_GRP1_EnableClock(LL_C2_APB3_GRP1_PERIPH_802)
  1183. #define __HAL_RCC_C2BLE_CLK_DISABLE() LL_C2_APB3_GRP1_DisableClock(LL_C2_APB3_GRP1_PERIPH_BLE)
  1184. #define __HAL_RCC_C2802_CLK_DISABLE() LL_C2_APB3_GRP1_DisableClock(LL_C2_APB3_GRP1_PERIPH_802)
  1185. /**
  1186. * @}
  1187. */
  1188. /** @defgroup RCC_AHB1_Peripheral_Clock_Enable_Disable_Status AHB1 Peripheral Clock Enabled or Disabled Status
  1189. * @brief Check whether the AHB1 peripheral clock is enabled or not.
  1190. * @note After reset, the peripheral clock (used for registers read/write access)
  1191. * is disabled and the application software has to enable this clock before
  1192. * using it.
  1193. * @{
  1194. */
  1195. #define __HAL_RCC_C2DMA1_IS_CLK_ENABLED() LL_C2_AHB1_GRP1_IsEnabledClock(LL_C2_AHB1_GRP1_PERIPH_DMA1)
  1196. #if defined(DMA2)
  1197. #define __HAL_RCC_C2DMA2_IS_CLK_ENABLED() LL_C2_AHB1_GRP1_IsEnabledClock(LL_C2_AHB1_GRP1_PERIPH_DMA2)
  1198. #endif
  1199. #define __HAL_RCC_C2DMAMUX1_IS_CLK_ENABLED() LL_C2_AHB1_GRP1_IsEnabledClock(LL_C2_AHB1_GRP1_PERIPH_DMAMUX1)
  1200. #define __HAL_RCC_C2SRAM1_IS_CLK_ENABLED() LL_C2_AHB1_GRP1_IsEnabledClock(LL_C2_AHB1_GRP1_PERIPH_SRAM1)
  1201. #define __HAL_RCC_C2CRC_IS_CLK_ENABLED() LL_C2_AHB1_GRP1_IsEnabledClock(LL_C2_AHB1_GRP1_PERIPH_CRC)
  1202. #define __HAL_RCC_C2TSC_IS_CLK_ENABLED() LL_C2_AHB1_GRP1_IsEnabledClock(LL_C2_AHB1_GRP1_PERIPH_TSC)
  1203. #define __HAL_RCC_C2DMA1_IS_CLK_DISABLED() !(LL_C2_AHB1_GRP1_IsEnabledClock(LL_C2_AHB1_GRP1_PERIPH_DMA1))
  1204. #if defined(DMA2)
  1205. #define __HAL_RCC_C2DMA2_IS_CLK_DISABLED() !(LL_C2_AHB1_GRP1_IsEnabledClock(LL_C2_AHB1_GRP1_PERIPH_DMA2))
  1206. #endif
  1207. #define __HAL_RCC_C2DMAMUX1_IS_CLK_DISABLED() !(LL_C2_AHB1_GRP1_IsEnabledClock(LL_C2_AHB1_GRP1_PERIPH_DMAMUX1))
  1208. #define __HAL_RCC_C2SRAM1_IS_CLK_DISABLED() !(LL_C2_AHB1_GRP1_IsEnabledClock(LL_C2_AHB1_GRP1_PERIPH_SRAM1))
  1209. #define __HAL_RCC_C2CRC_IS_CLK_DISABLED() !(LL_C2_AHB1_GRP1_IsEnabledClock(LL_C2_AHB1_GRP1_PERIPH_CRC))
  1210. #define __HAL_RCC_C2TSC_IS_CLK_DISABLED() !(LL_C2_AHB1_GRP1_IsEnabledClock(LL_C2_AHB1_GRP1_PERIPH_TSC))
  1211. /**
  1212. * @}
  1213. */
  1214. /** @defgroup RCC_AHB2_Clock_Enable_Disable_Status AHB2 Peripheral Clock Enabled or Disabled Status
  1215. * @brief Check whether the AHB2 peripheral clock is enabled or not.
  1216. * @note After reset, the peripheral clock (used for registers read/write access)
  1217. * is disabled and the application software has to enable this clock before
  1218. * using it.
  1219. * @{
  1220. */
  1221. #define __HAL_RCC_C2GPIOA_IS_CLK_ENABLED() LL_C2_AHB2_GRP1_IsEnabledClock(LL_C2_AHB2_GRP1_PERIPH_GPIOA)
  1222. #define __HAL_RCC_C2GPIOB_IS_CLK_ENABLED() LL_C2_AHB2_GRP1_IsEnabledClock(LL_C2_AHB2_GRP1_PERIPH_GPIOB)
  1223. #define __HAL_RCC_C2GPIOC_IS_CLK_ENABLED() LL_C2_AHB2_GRP1_IsEnabledClock(LL_C2_AHB2_GRP1_PERIPH_GPIOC)
  1224. #if defined(GPIOD)
  1225. #define __HAL_RCC_C2GPIOD_IS_CLK_ENABLED() LL_C2_AHB2_GRP1_IsEnabledClock(LL_C2_AHB2_GRP1_PERIPH_GPIOD)
  1226. #endif
  1227. #define __HAL_RCC_C2GPIOE_IS_CLK_ENABLED() LL_C2_AHB2_GRP1_IsEnabledClock(LL_C2_AHB2_GRP1_PERIPH_GPIOE)
  1228. #define __HAL_RCC_C2GPIOH_IS_CLK_ENABLED() LL_C2_AHB2_GRP1_IsEnabledClock(LL_C2_AHB2_GRP1_PERIPH_GPIOH)
  1229. #define __HAL_RCC_C2ADC_IS_CLK_ENABLED() LL_C2_AHB2_GRP1_IsEnabledClock(LL_C2_AHB2_GRP1_PERIPH_ADC)
  1230. #if defined(AES1)
  1231. #define __HAL_RCC_C2AES1_IS_CLK_ENABLED() LL_C2_AHB2_GRP1_IsEnabledClock(LL_C2_AHB2_GRP1_PERIPH_AES1)
  1232. #endif
  1233. #define __HAL_RCC_C2GPIOA_IS_CLK_DISABLED() !(LL_C2_AHB2_GRP1_IsEnabledClock(LL_C2_AHB2_GRP1_PERIPH_GPIOA))
  1234. #define __HAL_RCC_C2GPIOB_IS_CLK_DISABLED() !(LL_C2_AHB2_GRP1_IsEnabledClock(LL_C2_AHB2_GRP1_PERIPH_GPIOB))
  1235. #define __HAL_RCC_C2GPIOC_IS_CLK_DISABLED() !(LL_C2_AHB2_GRP1_IsEnabledClock(LL_C2_AHB2_GRP1_PERIPH_GPIOC))
  1236. #if defined(GPIOD)
  1237. #define __HAL_RCC_C2GPIOD_IS_CLK_DISABLED() !(LL_C2_AHB2_GRP1_IsEnabledClock(LL_C2_AHB2_GRP1_PERIPH_GPIOD))
  1238. #endif
  1239. #define __HAL_RCC_C2GPIOE_IS_CLK_DISABLED() !(LL_C2_AHB2_GRP1_IsEnabledClock(LL_C2_AHB2_GRP1_PERIPH_GPIOE))
  1240. #define __HAL_RCC_C2GPIOH_IS_CLK_DISABLED() !(LL_C2_AHB2_GRP1_IsEnabledClock(LL_C2_AHB2_GRP1_PERIPH_GPIOH))
  1241. #define __HAL_RCC_C2ADC_IS_CLK_DISABLED() !(LL_C2_AHB2_GRP1_IsEnabledClock(LL_C2_AHB2_GRP1_PERIPH_ADC))
  1242. #if defined(AES1)
  1243. #define __HAL_RCC_C2AES1_IS_CLK_DISABLED() !(LL_C2_AHB2_GRP1_IsEnabledClock(LL_C2_AHB2_GRP1_PERIPH_AES1))
  1244. #endif
  1245. /**
  1246. * @}
  1247. */
  1248. /** @defgroup RCC_AHB3_Clock_Enable_Disable_Status AHB3 Peripheral Clock Enabled or Disabled Status
  1249. * @brief Check whether the AHB3 peripheral clock is enabled or not.
  1250. * @note After reset, the peripheral clock (used for registers read/write access)
  1251. * is disabled and the application software has to enable this clock before
  1252. * using it.
  1253. * @{
  1254. */
  1255. #define __HAL_RCC_C2PKA_IS_CLK_ENABLED() LL_C2_AHB3_GRP1_IsEnabledClock(LL_C2_AHB3_GRP1_PERIPH_PKA)
  1256. #define __HAL_RCC_C2AES2_IS_CLK_ENABLED() LL_C2_AHB3_GRP1_IsEnabledClock(LL_C2_AHB3_GRP1_PERIPH_AES2)
  1257. #define __HAL_RCC_C2RNG_IS_CLK_ENABLED() LL_C2_AHB3_GRP1_IsEnabledClock(LL_C2_AHB3_GRP1_PERIPH_RNG)
  1258. #define __HAL_RCC_C2HSEM_IS_CLK_ENABLED() LL_C2_AHB3_GRP1_IsEnabledClock(LL_C2_AHB3_GRP1_PERIPH_HSEM)
  1259. #define __HAL_RCC_C2IPCC_IS_CLK_ENABLED() LL_C2_AHB3_GRP1_IsEnabledClock(LL_C2_AHB3_GRP1_PERIPH_IPCC)
  1260. #define __HAL_RCC_C2FLASH_IS_CLK_ENABLED() LL_C2_AHB3_GRP1_IsEnabledClock(LL_C2_AHB3_GRP1_PERIPH_FLASH)
  1261. #define __HAL_RCC_C2PKA_IS_CLK_DISABLED() !(LL_C2_AHB3_GRP1_IsEnabledClock(LL_C2_AHB3_GRP1_PERIPH_PKA))
  1262. #define __HAL_RCC_C2AES2_IS_CLK_DISABLED() !(LL_C2_AHB3_GRP1_IsEnabledClock(LL_C2_AHB3_GRP1_PERIPH_AES2))
  1263. #define __HAL_RCC_C2RNG_IS_CLK_DISABLED() !(LL_C2_AHB3_GRP1_IsEnabledClock(LL_C2_AHB3_GRP1_PERIPH_RNG))
  1264. #define __HAL_RCC_C2HSEM_IS_CLK_DISABLED() !(LL_C2_AHB3_GRP1_IsEnabledClock(LL_C2_AHB3_GRP1_PERIPH_HSEM))
  1265. #define __HAL_RCC_C2IPCC_IS_CLK_DISABLED() !(LL_C2_AHB3_GRP1_IsEnabledClock(LL_C2_AHB3_GRP1_PERIPH_IPCC))
  1266. #define __HAL_RCC_C2FLASH_IS_CLK_DISABLED() !(LL_C2_AHB3_GRP1_IsEnabledClock(LL_C2_AHB3_GRP1_PERIPH_FLASH))
  1267. /**
  1268. * @}
  1269. */
  1270. /** @defgroup RCC_APB1_Clock_Enable_Disable_Status APB1 Peripheral Clock Enabled or Disabled Status
  1271. * @brief Check whether the APB1 peripheral clock is enabled or not.
  1272. * @note After reset, the peripheral clock (used for registers read/write access)
  1273. * is disabled and the application software has to enable this clock before
  1274. * using it.
  1275. * @{
  1276. */
  1277. #define __HAL_RCC_C2RTCAPB_IS_CLK_ENABLED() LL_C2_APB1_GRP1_IsEnabledClock(LL_C2_APB1_GRP1_PERIPH_RTCAPB)
  1278. #define __HAL_RCC_C2TIM2_IS_CLK_ENABLED() LL_C2_APB1_GRP1_IsEnabledClock(LL_C2_APB1_GRP1_PERIPH_TIM2)
  1279. #if defined(LCD)
  1280. #define __HAL_RCC_C2LCD_IS_CLK_ENABLED() LL_C2_APB1_GRP1_IsEnabledClock(LL_C2_APB1_GRP1_PERIPH_LCD)
  1281. #endif
  1282. #if defined(SPI2)
  1283. #define __HAL_RCC_C2SPI2_IS_CLK_ENABLED() LL_C2_APB1_GRP1_IsEnabledClock(LL_C2_APB1_GRP1_PERIPH_SPI2)
  1284. #endif
  1285. #define __HAL_RCC_C2I2C1_IS_CLK_ENABLED() LL_C2_APB1_GRP1_IsEnabledClock(LL_C2_APB1_GRP1_PERIPH_I2C1)
  1286. #if defined(I2C3)
  1287. #define __HAL_RCC_C2I2C3_IS_CLK_ENABLED() LL_C2_APB1_GRP1_IsEnabledClock(LL_C2_APB1_GRP1_PERIPH_I2C3)
  1288. #endif
  1289. #if defined(CRS)
  1290. #define __HAL_RCC_C2CRS_IS_CLK_ENABLED() LL_C2_APB1_GRP1_IsEnabledClock(LL_C2_APB1_GRP1_PERIPH_CRS)
  1291. #endif
  1292. #if defined(USB)
  1293. #define __HAL_RCC_C2USB_IS_CLK_ENABLED() LL_C2_APB1_GRP1_IsEnabledClock(LL_C2_APB1_GRP1_PERIPH_USB)
  1294. #endif
  1295. #define __HAL_RCC_C2LPTIM1_IS_CLK_ENABLED() LL_C2_APB1_GRP1_IsEnabledClock(LL_C2_APB1_GRP1_PERIPH_LPTIM1)
  1296. #define __HAL_RCC_C2LPTIM2_IS_CLK_ENABLED() LL_C2_APB1_GRP2_IsEnabledClock(LL_C2_APB1_GRP2_PERIPH_LPTIM2)
  1297. #if defined(LPUART1)
  1298. #define __HAL_RCC_C2LPUART1_IS_CLK_ENABLED() LL_C2_APB1_GRP2_IsEnabledClock(LL_C2_APB1_GRP2_PERIPH_LPUART1)
  1299. #endif
  1300. #define __HAL_RCC_C2RTCAPB_IS_CLK_DISABLED() !(LL_C2_APB1_GRP1_IsEnabledClock(LL_C2_APB1_GRP1_PERIPH_RTCAPB))
  1301. #define __HAL_RCC_C2TIM2_IS_CLK_DISABLED() !(LL_C2_APB1_GRP1_IsEnabledClock(LL_C2_APB1_GRP1_PERIPH_TIM2))
  1302. #if defined(LCD)
  1303. #define __HAL_RCC_C2LCD_IS_CLK_DISABLED() !(LL_C2_APB1_GRP1_IsEnabledClock(LL_C2_APB1_GRP1_PERIPH_LCD))
  1304. #endif
  1305. #if defined(SPI2)
  1306. #define __HAL_RCC_C2SPI2_IS_CLK_DISABLED() !(LL_C2_APB1_GRP1_IsEnabledClock(LL_C2_APB1_GRP1_PERIPH_SPI2))
  1307. #endif
  1308. #define __HAL_RCC_C2I2C1_IS_CLK_DISABLED() !(LL_C2_APB1_GRP1_IsEnabledClock(LL_C2_APB1_GRP1_PERIPH_I2C1))
  1309. #if defined(I2C3)
  1310. #define __HAL_RCC_C2I2C3_IS_CLK_DISABLED() !(LL_C2_APB1_GRP1_IsEnabledClock(LL_C2_APB1_GRP1_PERIPH_I2C3))
  1311. #endif
  1312. #if defined(CRS)
  1313. #define __HAL_RCC_C2CRS_IS_CLK_DISABLED() !(LL_C2_APB1_GRP1_IsEnabledClock(LL_C2_APB1_GRP1_PERIPH_CRS))
  1314. #endif
  1315. #if defined(USB)
  1316. #define __HAL_RCC_C2USB_IS_CLK_DISABLED() !(LL_C2_APB1_GRP1_IsEnabledClock(LL_C2_APB1_GRP1_PERIPH_USB))
  1317. #endif
  1318. #define __HAL_RCC_C2LPTIM1_IS_CLK_DISABLED() !(LL_C2_APB1_GRP1_IsEnabledClock(LL_C2_APB1_GRP1_PERIPH_LPTIM1))
  1319. #define __HAL_RCC_C2LPTIM2_IS_CLK_DISABLED() !(LL_C2_APB1_GRP2_IsEnabledClock(LL_C2_APB1_GRP2_PERIPH_LPTIM2))
  1320. #if defined(LPUART1)
  1321. #define __HAL_RCC_C2LPUART1_IS_CLK_DISABLED() !(LL_C2_APB1_GRP2_IsEnabledClock(LL_C2_APB1_GRP1_PERIPH_LPTIM1))
  1322. #endif
  1323. /**
  1324. * @}
  1325. */
  1326. /** @defgroup RCC_APB2_Clock_Enable_Disable_Status APB2 Peripheral Clock Enabled or Disabled Status
  1327. * @brief Check whether the APB2 peripheral clock is enabled or not.
  1328. * @note After reset, the peripheral clock (used for registers read/write access)
  1329. * is disabled and the application software has to enable this clock before
  1330. * using it.
  1331. * @{
  1332. */
  1333. #define __HAL_RCC_C2TIM1_IS_CLK_ENABLED() LL_C2_APB2_GRP1_IsEnabledClock(LL_C2_APB2_GRP1_PERIPH_TIM1)
  1334. #define __HAL_RCC_C2SPI1_IS_CLK_ENABLED() LL_C2_APB2_GRP1_IsEnabledClock(LL_C2_APB2_GRP1_PERIPH_SPI1)
  1335. #define __HAL_RCC_C2USART1_IS_CLK_ENABLED() LL_C2_APB2_GRP1_IsEnabledClock(LL_C2_APB2_GRP1_PERIPH_USART1)
  1336. #define __HAL_RCC_C2TIM16_IS_CLK_ENABLED() LL_C2_APB2_GRP1_IsEnabledClock(LL_C2_APB2_GRP1_PERIPH_TIM16)
  1337. #define __HAL_RCC_C2TIM17_IS_CLK_ENABLED() LL_C2_APB2_GRP1_IsEnabledClock(LL_C2_APB2_GRP1_PERIPH_TIM17)
  1338. #if defined(SAI1)
  1339. #define __HAL_RCC_C2SAI1_IS_CLK_ENABLED() LL_C2_APB2_GRP1_IsEnabledClock(LL_C2_APB2_GRP1_PERIPH_SAI1)
  1340. #endif
  1341. #define __HAL_RCC_C2TIM1_IS_CLK_DISABLED() !( LL_C2_APB2_GRP1_IsEnabledClock(LL_C2_APB2_GRP1_PERIPH_TIM1))
  1342. #define __HAL_RCC_C2SPI1_IS_CLK_DISABLED() !( LL_C2_APB2_GRP1_IsEnabledClock(LL_C2_APB2_GRP1_PERIPH_SPI1))
  1343. #define __HAL_RCC_C2USART1_IS_CLK_DISABLED() !( LL_C2_APB2_GRP1_IsEnabledClock(LL_C2_APB2_GRP1_PERIPH_USART1))
  1344. #define __HAL_RCC_C2TIM16_IS_CLK_DISABLED() !( LL_C2_APB2_GRP1_IsEnabledClock(LL_C2_APB2_GRP1_PERIPH_TIM16))
  1345. #define __HAL_RCC_C2TIM17_IS_CLK_DISABLED() !( LL_C2_APB2_GRP1_IsEnabledClock(LL_C2_APB2_GRP1_PERIPH_TIM17))
  1346. #if defined(SAI1)
  1347. #define __HAL_RCC_C2SAI1_IS_CLK_DISABLED() !( LL_C2_APB2_GRP1_IsEnabledClock(LL_C2_APB2_GRP1_PERIPH_SAI1))
  1348. #endif
  1349. /**
  1350. * @}
  1351. */
  1352. /** @defgroup RCC_APB3_Clock_Enable_Disable_Status APB3 Peripheral Clock Enabled or Disabled Status
  1353. * @brief Check whether the APB3 peripheral clock is enabled or not.
  1354. * @note After reset, the peripheral clock (used for registers read/write access)
  1355. * is disabled and the application software has to enable this clock before
  1356. * using it.
  1357. * @{
  1358. */
  1359. #define __HAL_RCC_C2BLE_IS_CLK_ENABLED() LL_C2_APB3_GRP1_IsEnabledClock(LL_C2_APB3_GRP1_PERIPH_BLE)
  1360. #define __HAL_RCC_C2802_IS_CLK_ENABLED() LL_C2_APB3_GRP1_IsEnabledClock(LL_C2_APB3_GRP1_PERIPH_802)
  1361. #define __HAL_RCC_C2BLE_IS_CLK_DISABLED() !(LL_C2_APB3_GRP1_IsEnabledClock(LL_C2_APB3_GRP1_PERIPH_BLE))
  1362. #define __HAL_RCC_C2802_IS_CLK_DISABLED() !(LL_C2_APB3_GRP1_IsEnabledClock(LL_C2_APB3_GRP1_PERIPH_802))
  1363. /**
  1364. * @}
  1365. */
  1366. /** @defgroup RCC_AHB1_Force_Release_Reset AHB1 Peripheral Force Release Reset
  1367. * @brief Force or release AHB1 peripheral reset.
  1368. * @{
  1369. */
  1370. #define __HAL_RCC_AHB1_FORCE_RESET() LL_AHB1_GRP1_ForceReset(LL_AHB1_GRP1_PERIPH_ALL)
  1371. #define __HAL_RCC_DMA1_FORCE_RESET() LL_AHB1_GRP1_ForceReset(LL_AHB1_GRP1_PERIPH_DMA1)
  1372. #if defined(DMA2)
  1373. #define __HAL_RCC_DMA2_FORCE_RESET() LL_AHB1_GRP1_ForceReset(LL_AHB1_GRP1_PERIPH_DMA2)
  1374. #endif
  1375. #define __HAL_RCC_DMAMUX1_FORCE_RESET() LL_AHB1_GRP1_ForceReset(LL_AHB1_GRP1_PERIPH_DMAMUX1)
  1376. #define __HAL_RCC_CRC_FORCE_RESET() LL_AHB1_GRP1_ForceReset(LL_AHB1_GRP1_PERIPH_CRC)
  1377. #define __HAL_RCC_TSC_FORCE_RESET() LL_AHB1_GRP1_ForceReset(LL_AHB1_GRP1_PERIPH_TSC)
  1378. #define __HAL_RCC_AHB1_RELEASE_RESET() LL_AHB1_GRP1_ReleaseReset(LL_AHB1_GRP1_PERIPH_ALL)
  1379. #define __HAL_RCC_DMA1_RELEASE_RESET() LL_AHB1_GRP1_ReleaseReset(LL_AHB1_GRP1_PERIPH_DMA1)
  1380. #if defined(DMA2)
  1381. #define __HAL_RCC_DMA2_RELEASE_RESET() LL_AHB1_GRP1_ReleaseReset(LL_AHB1_GRP1_PERIPH_DMA2)
  1382. #endif
  1383. #define __HAL_RCC_DMAMUX1_RELEASE_RESET() LL_AHB1_GRP1_ReleaseReset(LL_AHB1_GRP1_PERIPH_DMAMUX1)
  1384. #define __HAL_RCC_CRC_RELEASE_RESET() LL_AHB1_GRP1_ReleaseReset(LL_AHB1_GRP1_PERIPH_CRC)
  1385. #define __HAL_RCC_TSC_RELEASE_RESET() LL_AHB1_GRP1_ReleaseReset(LL_AHB1_GRP1_PERIPH_TSC)
  1386. /**
  1387. * @}
  1388. */
  1389. /** @defgroup RCC_AHB2_Force_Release_Reset AHB2 Peripheral Force Release Reset
  1390. * @brief Force or release AHB2 peripheral reset.
  1391. * @{
  1392. */
  1393. #define __HAL_RCC_AHB2_FORCE_RESET() LL_AHB2_GRP1_ForceReset(LL_AHB2_GRP1_PERIPH_ALL)
  1394. #define __HAL_RCC_GPIOA_FORCE_RESET() LL_AHB2_GRP1_ForceReset(LL_AHB2_GRP1_PERIPH_GPIOA)
  1395. #define __HAL_RCC_GPIOB_FORCE_RESET() LL_AHB2_GRP1_ForceReset(LL_AHB2_GRP1_PERIPH_GPIOB)
  1396. #define __HAL_RCC_GPIOC_FORCE_RESET() LL_AHB2_GRP1_ForceReset(LL_AHB2_GRP1_PERIPH_GPIOC)
  1397. #if defined(GPIOD)
  1398. #define __HAL_RCC_GPIOD_FORCE_RESET() LL_AHB2_GRP1_ForceReset(LL_AHB2_GRP1_PERIPH_GPIOD)
  1399. #endif
  1400. #define __HAL_RCC_GPIOE_FORCE_RESET() LL_AHB2_GRP1_ForceReset(LL_AHB2_GRP1_PERIPH_GPIOE)
  1401. #define __HAL_RCC_GPIOH_FORCE_RESET() LL_AHB2_GRP1_ForceReset(LL_AHB2_GRP1_PERIPH_GPIOH)
  1402. #define __HAL_RCC_ADC_FORCE_RESET() LL_AHB2_GRP1_ForceReset(LL_AHB2_GRP1_PERIPH_ADC)
  1403. #if defined(AES1)
  1404. #define __HAL_RCC_AES1_FORCE_RESET() LL_AHB2_GRP1_ForceReset(LL_AHB2_GRP1_PERIPH_AES1)
  1405. #endif
  1406. #define __HAL_RCC_AHB2_RELEASE_RESET() LL_AHB2_GRP1_ReleaseReset(LL_AHB2_GRP1_PERIPH_ALL)
  1407. #define __HAL_RCC_GPIOA_RELEASE_RESET() LL_AHB2_GRP1_ReleaseReset(LL_AHB2_GRP1_PERIPH_GPIOA)
  1408. #define __HAL_RCC_GPIOB_RELEASE_RESET() LL_AHB2_GRP1_ReleaseReset(LL_AHB2_GRP1_PERIPH_GPIOB)
  1409. #define __HAL_RCC_GPIOC_RELEASE_RESET() LL_AHB2_GRP1_ReleaseReset(LL_AHB2_GRP1_PERIPH_GPIOC)
  1410. #if defined(GPIOD)
  1411. #define __HAL_RCC_GPIOD_RELEASE_RESET() LL_AHB2_GRP1_ReleaseReset(LL_AHB2_GRP1_PERIPH_GPIOD)
  1412. #endif
  1413. #define __HAL_RCC_GPIOE_RELEASE_RESET() LL_AHB2_GRP1_ReleaseReset(LL_AHB2_GRP1_PERIPH_GPIOE)
  1414. #define __HAL_RCC_GPIOH_RELEASE_RESET() LL_AHB2_GRP1_ReleaseReset(LL_AHB2_GRP1_PERIPH_GPIOH)
  1415. #define __HAL_RCC_ADC_RELEASE_RESET() LL_AHB2_GRP1_ReleaseReset(LL_AHB2_GRP1_PERIPH_ADC)
  1416. #if defined(AES1)
  1417. #define __HAL_RCC_AES1_RELEASE_RESET() LL_AHB2_GRP1_ReleaseReset(LL_AHB2_GRP1_PERIPH_AES1)
  1418. #endif
  1419. /**
  1420. * @}
  1421. */
  1422. /** @defgroup RCC_AHB3_Force_Release_Reset AHB3 Peripheral Force Release Reset
  1423. * @brief Force or release AHB3 peripheral reset.
  1424. * @{
  1425. */
  1426. #define __HAL_RCC_AHB3_FORCE_RESET() LL_AHB3_GRP1_ForceReset(LL_AHB2_GRP1_PERIPH_ALL)
  1427. #if defined(QUADSPI)
  1428. #define __HAL_RCC_QUADSPI_FORCE_RESET() LL_AHB3_GRP1_ForceReset(LL_AHB3_GRP1_PERIPH_QUADSPI)
  1429. #endif
  1430. #define __HAL_RCC_PKA_FORCE_RESET() LL_AHB3_GRP1_ForceReset(LL_AHB3_GRP1_PERIPH_PKA)
  1431. #define __HAL_RCC_AES2_FORCE_RESET() LL_AHB3_GRP1_ForceReset(LL_AHB3_GRP1_PERIPH_AES2)
  1432. #define __HAL_RCC_RNG_FORCE_RESET() LL_AHB3_GRP1_ForceReset(LL_AHB3_GRP1_PERIPH_RNG)
  1433. #define __HAL_RCC_HSEM_FORCE_RESET() LL_AHB3_GRP1_ForceReset(LL_AHB3_GRP1_PERIPH_HSEM)
  1434. #define __HAL_RCC_IPCC_FORCE_RESET() LL_AHB3_GRP1_ForceReset(LL_AHB3_GRP1_PERIPH_IPCC)
  1435. #define __HAL_RCC_FLASH_FORCE_RESET() LL_AHB3_GRP1_ForceReset(LL_AHB3_GRP1_PERIPH_FLASH)
  1436. #define __HAL_RCC_AHB3_RELEASE_RESET() LL_AHB3_GRP1_ReleaseReset(LL_AHB2_GRP1_PERIPH_ALL)
  1437. #if defined(QUADSPI)
  1438. #define __HAL_RCC_QUADSPI_RELEASE_RESET() LL_AHB3_GRP1_ReleaseReset(LL_AHB3_GRP1_PERIPH_QUADSPI)
  1439. #endif
  1440. #define __HAL_RCC_PKA_RELEASE_RESET() LL_AHB3_GRP1_ReleaseReset(LL_AHB3_GRP1_PERIPH_PKA)
  1441. #define __HAL_RCC_AES2_RELEASE_RESET() LL_AHB3_GRP1_ReleaseReset(LL_AHB3_GRP1_PERIPH_AES2)
  1442. #define __HAL_RCC_RNG_RELEASE_RESET() LL_AHB3_GRP1_ReleaseReset(LL_AHB3_GRP1_PERIPH_RNG)
  1443. #define __HAL_RCC_HSEM_RELEASE_RESET() LL_AHB3_GRP1_ReleaseReset(LL_AHB3_GRP1_PERIPH_HSEM)
  1444. #define __HAL_RCC_IPCC_RELEASE_RESET() LL_AHB3_GRP1_ReleaseReset(LL_AHB3_GRP1_PERIPH_IPCC)
  1445. #define __HAL_RCC_FLASH_RELEASE_RESET() LL_AHB3_GRP1_ReleaseReset(LL_AHB3_GRP1_PERIPH_FLASH)
  1446. /**
  1447. * @}
  1448. */
  1449. /** @defgroup RCC_APB1_Force_Release_Reset APB1 Peripheral Force Release Reset
  1450. * @brief Force or release APB1 peripheral reset.
  1451. * @{
  1452. */
  1453. #define __HAL_RCC_APB1L_FORCE_RESET() LL_APB1_GRP1_ForceReset(LL_APB1_GRP1_PERIPH_ALL)
  1454. #define __HAL_RCC_TIM2_FORCE_RESET() LL_APB1_GRP1_ForceReset(LL_APB1_GRP1_PERIPH_TIM2)
  1455. #if defined(LCD)
  1456. #define __HAL_RCC_LCD_FORCE_RESET() LL_APB1_GRP1_ForceReset(LL_APB1_GRP1_PERIPH_LCD)
  1457. #endif
  1458. #if defined(SPI2)
  1459. #define __HAL_RCC_SPI2_FORCE_RESET() LL_APB1_GRP1_ForceReset(LL_APB1_GRP1_PERIPH_SPI2)
  1460. #endif
  1461. #define __HAL_RCC_I2C1_FORCE_RESET() LL_APB1_GRP1_ForceReset(LL_APB1_GRP1_PERIPH_I2C1)
  1462. #if defined(I2C3)
  1463. #define __HAL_RCC_I2C3_FORCE_RESET() LL_APB1_GRP1_ForceReset(LL_APB1_GRP1_PERIPH_I2C3)
  1464. #endif
  1465. #if defined(CRS)
  1466. #define __HAL_RCC_CRS_FORCE_RESET() LL_APB1_GRP1_ForceReset(LL_APB1_GRP1_PERIPH_CRS)
  1467. #endif
  1468. #if defined(USB)
  1469. #define __HAL_RCC_USB_FORCE_RESET() LL_APB1_GRP1_ForceReset(LL_APB1_GRP1_PERIPH_USB)
  1470. #endif
  1471. #define __HAL_RCC_LPTIM1_FORCE_RESET() LL_APB1_GRP1_ForceReset(LL_APB1_GRP1_PERIPH_LPTIM1)
  1472. #define __HAL_RCC_APB1H_FORCE_RESET() LL_APB1_GRP2_ForceReset(LL_APB1_GRP2_PERIPH_ALL)
  1473. #if defined(LPUART1)
  1474. #define __HAL_RCC_LPUART1_FORCE_RESET() LL_APB1_GRP2_ForceReset(LL_APB1_GRP2_PERIPH_LPUART1)
  1475. #endif
  1476. #define __HAL_RCC_LPTIM2_FORCE_RESET() LL_APB1_GRP2_ForceReset(LL_APB1_GRP2_PERIPH_LPTIM2)
  1477. #define __HAL_RCC_APB1_FORCE_RESET() do { \
  1478. __HAL_RCC_APB1L_FORCE_RESET();\
  1479. __HAL_RCC_APB1H_FORCE_RESET();\
  1480. } while(0U)
  1481. #define __HAL_RCC_APB1L_RELEASE_RESET() LL_APB1_GRP1_ReleaseReset(LL_APB1_GRP1_PERIPH_ALL)
  1482. #define __HAL_RCC_TIM2_RELEASE_RESET() LL_APB1_GRP1_ReleaseReset(LL_APB1_GRP1_PERIPH_TIM2)
  1483. #if defined(LCD)
  1484. #define __HAL_RCC_LCD_RELEASE_RESET() LL_APB1_GRP1_ReleaseReset(LL_APB1_GRP1_PERIPH_LCD)
  1485. #endif
  1486. #if defined(SPI2)
  1487. #define __HAL_RCC_SPI2_RELEASE_RESET() LL_APB1_GRP1_ReleaseReset(LL_APB1_GRP1_PERIPH_SPI2)
  1488. #endif
  1489. #define __HAL_RCC_I2C1_RELEASE_RESET() LL_APB1_GRP1_ReleaseReset(LL_APB1_GRP1_PERIPH_I2C1)
  1490. #if defined(I2C3)
  1491. #define __HAL_RCC_I2C3_RELEASE_RESET() LL_APB1_GRP1_ReleaseReset(LL_APB1_GRP1_PERIPH_I2C3)
  1492. #endif
  1493. #if defined(CRS)
  1494. #define __HAL_RCC_CRS_RELEASE_RESET() LL_APB1_GRP1_ReleaseReset(LL_APB1_GRP1_PERIPH_CRS)
  1495. #endif
  1496. #if defined(USB)
  1497. #define __HAL_RCC_USB_RELEASE_RESET() LL_APB1_GRP1_ReleaseReset(LL_APB1_GRP1_PERIPH_USB)
  1498. #endif
  1499. #define __HAL_RCC_LPTIM1_RELEASE_RESET() LL_APB1_GRP1_ReleaseReset(LL_APB1_GRP1_PERIPH_LPTIM1)
  1500. #define __HAL_RCC_APB1H_RELEASE_RESET() LL_APB1_GRP2_ReleaseReset(LL_APB1_GRP2_PERIPH_ALL)
  1501. #if defined(LPUART1)
  1502. #define __HAL_RCC_LPUART1_RELEASE_RESET() LL_APB1_GRP2_ReleaseReset(LL_APB1_GRP2_PERIPH_LPUART1)
  1503. #endif
  1504. #define __HAL_RCC_LPTIM2_RELEASE_RESET() LL_APB1_GRP2_ReleaseReset(LL_APB1_GRP2_PERIPH_LPTIM2)
  1505. #define __HAL_RCC_APB1_RELEASE_RESET() do { \
  1506. __HAL_RCC_APB1L_RELEASE_RESET();\
  1507. __HAL_RCC_APB1H_RELEASE_RESET();\
  1508. } while(0U)
  1509. /**
  1510. * @}
  1511. */
  1512. /** @defgroup RCC_APB2_Force_Release_Reset APB2 Peripheral Force Release Reset
  1513. * @brief Force or release APB2 peripheral reset.
  1514. * @{
  1515. */
  1516. #define __HAL_RCC_APB2_FORCE_RESET() LL_APB2_GRP1_ForceReset(LL_APB2_GRP1_PERIPH_ALL)
  1517. #define __HAL_RCC_TIM1_FORCE_RESET() LL_APB2_GRP1_ForceReset(LL_APB2_GRP1_PERIPH_TIM1)
  1518. #define __HAL_RCC_SPI1_FORCE_RESET() LL_APB2_GRP1_ForceReset(LL_APB2_GRP1_PERIPH_SPI1)
  1519. #define __HAL_RCC_USART1_FORCE_RESET() LL_APB2_GRP1_ForceReset(LL_APB2_GRP1_PERIPH_USART1)
  1520. #define __HAL_RCC_TIM16_FORCE_RESET() LL_APB2_GRP1_ForceReset(LL_APB2_GRP1_PERIPH_TIM16)
  1521. #define __HAL_RCC_TIM17_FORCE_RESET() LL_APB2_GRP1_ForceReset(LL_APB2_GRP1_PERIPH_TIM17)
  1522. #if defined(SAI1)
  1523. #define __HAL_RCC_SAI1_FORCE_RESET() LL_APB2_GRP1_ForceReset(LL_APB2_GRP1_PERIPH_SAI1)
  1524. #endif
  1525. #define __HAL_RCC_APB2_RELEASE_RESET() LL_APB2_GRP1_ReleaseReset(LL_APB2_GRP1_PERIPH_ALL)
  1526. #define __HAL_RCC_TIM1_RELEASE_RESET() LL_APB2_GRP1_ReleaseReset(LL_APB2_GRP1_PERIPH_TIM1)
  1527. #define __HAL_RCC_SPI1_RELEASE_RESET() LL_APB2_GRP1_ReleaseReset(LL_APB2_GRP1_PERIPH_SPI1)
  1528. #define __HAL_RCC_USART1_RELEASE_RESET() LL_APB2_GRP1_ReleaseReset(LL_APB2_GRP1_PERIPH_USART1)
  1529. #define __HAL_RCC_TIM16_RELEASE_RESET() LL_APB2_GRP1_ReleaseReset(LL_APB2_GRP1_PERIPH_TIM16)
  1530. #define __HAL_RCC_TIM17_RELEASE_RESET() LL_APB2_GRP1_ReleaseReset(LL_APB2_GRP1_PERIPH_TIM17)
  1531. #if defined(SAI1)
  1532. #define __HAL_RCC_SAI1_RELEASE_RESET() LL_APB2_GRP1_ReleaseReset(LL_APB2_GRP1_PERIPH_SAI1)
  1533. #endif
  1534. /**
  1535. * @}
  1536. */
  1537. /** @defgroup RCC_APB3_Force_Release_Reset APB3 Peripheral Force Release Reset
  1538. * @brief Force or release APB3 peripheral reset.
  1539. * @{
  1540. */
  1541. #define __HAL_RCC_APB3_FORCE_RESET() LL_APB3_GRP1_ForceReset(LL_APB3_GRP1_PERIPH_ALL)
  1542. #define __HAL_RCC_RF_FORCE_RESET() LL_APB3_GRP1_ForceReset(LL_APB3_GRP1_PERIPH_RF)
  1543. #define __HAL_RCC_APB3_RELEASE_RESET() LL_APB3_GRP1_ReleaseReset(LL_APB3_GRP1_PERIPH_ALL)
  1544. #define __HAL_RCC_RF_RELEASE_RESET() LL_APB3_GRP1_ReleaseReset(LL_APB3_GRP1_PERIPH_RF)
  1545. /**
  1546. * @}
  1547. */
  1548. /** @defgroup RCC_AHB1_Clock_Sleep_Enable_Disable AHB1 Peripheral Clock Sleep Enable Disable
  1549. * @brief Enable or disable the AHB1 peripheral clock during Low Power (Sleep) mode.
  1550. * @note Peripheral clock gating in SLEEP mode can be used to further reduce
  1551. * power consumption.
  1552. * @note After wakeup from SLEEP mode, the peripheral clock is enabled again.
  1553. * @note By default, all peripheral clocks are enabled during SLEEP mode.
  1554. * @{
  1555. */
  1556. #define __HAL_RCC_DMA1_CLK_SLEEP_ENABLE() LL_AHB1_GRP1_EnableClockSleep(LL_AHB1_GRP1_PERIPH_DMA1)
  1557. #if defined(DMA2)
  1558. #define __HAL_RCC_DMA2_CLK_SLEEP_ENABLE() LL_AHB1_GRP1_EnableClockSleep(LL_AHB1_GRP1_PERIPH_DMA2)
  1559. #endif
  1560. #define __HAL_RCC_DMAMUX1_CLK_SLEEP_ENABLE() LL_AHB1_GRP1_EnableClockSleep(LL_AHB1_GRP1_PERIPH_DMAMUX1)
  1561. #define __HAL_RCC_SRAM1_CLK_SLEEP_ENABLE() LL_AHB1_GRP1_EnableClockSleep(LL_AHB1_GRP1_PERIPH_SRAM1)
  1562. #define __HAL_RCC_CRC_CLK_SLEEP_ENABLE() LL_AHB1_GRP1_EnableClockSleep(LL_AHB1_GRP1_PERIPH_CRC)
  1563. #define __HAL_RCC_TSC_CLK_SLEEP_ENABLE() LL_AHB1_GRP1_EnableClockSleep(LL_AHB1_GRP1_PERIPH_TSC)
  1564. #define __HAL_RCC_DMA1_CLK_SLEEP_DISABLE() LL_AHB1_GRP1_DisableClockSleep(LL_AHB1_GRP1_PERIPH_DMA1)
  1565. #if defined(DMA2)
  1566. #define __HAL_RCC_DMA2_CLK_SLEEP_DISABLE() LL_AHB1_GRP1_DisableClockSleep(LL_AHB1_GRP1_PERIPH_DMA2)
  1567. #endif
  1568. #define __HAL_RCC_DMAMUX1_CLK_SLEEP_DISABLE() LL_AHB1_GRP1_DisableClockSleep(LL_AHB1_GRP1_PERIPH_DMAMUX1)
  1569. #define __HAL_RCC_SRAM1_CLK_SLEEP_DISABLE() LL_AHB1_GRP1_DisableClockSleep(LL_AHB1_GRP1_PERIPH_SRAM1)
  1570. #define __HAL_RCC_CRC_CLK_SLEEP_DISABLE() LL_AHB1_GRP1_DisableClockSleep(LL_AHB1_GRP1_PERIPH_CRC)
  1571. #define __HAL_RCC_TSC_CLK_SLEEP_DISABLE() LL_AHB1_GRP1_DisableClockSleep(LL_AHB1_GRP1_PERIPH_TSC)
  1572. #define __HAL_RCC_C2DMA1_CLK_SLEEP_ENABLE() LL_C2_AHB1_GRP1_EnableClockSleep(LL_C2_AHB1_GRP1_PERIPH_DMA1)
  1573. #if defined(DMA2)
  1574. #define __HAL_RCC_C2DMA2_CLK_SLEEP_ENABLE() LL_C2_AHB1_GRP1_EnableClockSleep(LL_C2_AHB1_GRP1_PERIPH_DMA2)
  1575. #endif
  1576. #define __HAL_RCC_C2DMAMUX1_CLK_SLEEP_ENABLE() LL_C2_AHB1_GRP1_EnableClockSleep(LL_C2_AHB1_GRP1_PERIPH_DMAMUX1)
  1577. #define __HAL_RCC_C2SRAM1_CLK_SLEEP_ENABLE() LL_C2_AHB1_GRP1_EnableClockSleep(LL_C2_AHB1_GRP1_PERIPH_SRAM1)
  1578. #define __HAL_RCC_C2CRC_CLK_SLEEP_ENABLE() LL_C2_AHB1_GRP1_EnableClockSleep(LL_C2_AHB1_GRP1_PERIPH_CRC)
  1579. #define __HAL_RCC_C2TSC_CLK_SLEEP_ENABLE() LL_C2_AHB1_GRP1_EnableClockSleep(LL_C2_AHB1_GRP1_PERIPH_TSC)
  1580. #define __HAL_RCC_C2DMA1_CLK_SLEEP_DISABLE() LL_C2_AHB1_GRP1_DisableClockSleep(LL_C2_AHB1_GRP1_PERIPH_DMA1)
  1581. #if defined(DMA2)
  1582. #define __HAL_RCC_C2DMA2_CLK_SLEEP_DISABLE() LL_C2_AHB1_GRP1_DisableClockSleep(LL_C2_AHB1_GRP1_PERIPH_DMA2)
  1583. #endif
  1584. #define __HAL_RCC_C2DMAMUX1_CLK_SLEEP_DISABLE() LL_C2_AHB1_GRP1_DisableClockSleep(LL_C2_AHB1_GRP1_PERIPH_DMAMUX1)
  1585. #define __HAL_RCC_C2SRAM1_CLK_SLEEP_DISABLE() LL_C2_AHB1_GRP1_DisableClockSleep(LL_C2_AHB1_GRP1_PERIPH_SRAM1)
  1586. #define __HAL_RCC_C2CRC_CLK_SLEEP_DISABLE() LL_C2_AHB1_GRP1_DisableClockSleep(LL_C2_AHB1_GRP1_PERIPH_CRC)
  1587. #define __HAL_RCC_C2TSC_CLK_SLEEP_DISABLE() LL_C2_AHB1_GRP1_DisableClockSleep(LL_C2_AHB1_GRP1_PERIPH_TSC)
  1588. /**
  1589. * @}
  1590. */
  1591. /** @defgroup RCC_AHB2_Clock_Sleep_Enable_Disable AHB2 Peripheral Clock Sleep Enable Disable
  1592. * @brief Enable or disable the AHB2 peripheral clock during Low Power (Sleep) mode.
  1593. * @note Peripheral clock gating in SLEEP mode can be used to further reduce
  1594. * power consumption.
  1595. * @note After wakeup from SLEEP mode, the peripheral clock is enabled again.
  1596. * @note By default, all peripheral clocks are enabled during SLEEP mode.
  1597. * @{
  1598. */
  1599. #define __HAL_RCC_GPIOA_CLK_SLEEP_ENABLE() LL_AHB2_GRP1_EnableClockSleep(LL_AHB2_GRP1_PERIPH_GPIOA)
  1600. #define __HAL_RCC_GPIOB_CLK_SLEEP_ENABLE() LL_AHB2_GRP1_EnableClockSleep(LL_AHB2_GRP1_PERIPH_GPIOB)
  1601. #define __HAL_RCC_GPIOC_CLK_SLEEP_ENABLE() LL_AHB2_GRP1_EnableClockSleep(LL_AHB2_GRP1_PERIPH_GPIOC)
  1602. #if defined(GPIOD)
  1603. #define __HAL_RCC_GPIOD_CLK_SLEEP_ENABLE() LL_AHB2_GRP1_EnableClockSleep(LL_AHB2_GRP1_PERIPH_GPIOD)
  1604. #endif
  1605. #define __HAL_RCC_GPIOE_CLK_SLEEP_ENABLE() LL_AHB2_GRP1_EnableClockSleep(LL_AHB2_GRP1_PERIPH_GPIOE)
  1606. #define __HAL_RCC_GPIOH_CLK_SLEEP_ENABLE() LL_AHB2_GRP1_EnableClockSleep(LL_AHB2_GRP1_PERIPH_GPIOH)
  1607. #define __HAL_RCC_ADC_CLK_SLEEP_ENABLE() LL_AHB2_GRP1_EnableClockSleep(LL_AHB2_GRP1_PERIPH_ADC)
  1608. #if defined(AES1)
  1609. #define __HAL_RCC_AES1_CLK_SLEEP_ENABLE() LL_AHB2_GRP1_EnableClockSleep(LL_AHB2_GRP1_PERIPH_AES1)
  1610. #endif
  1611. #define __HAL_RCC_GPIOA_CLK_SLEEP_DISABLE() LL_AHB2_GRP1_DisableClockSleep(LL_AHB2_GRP1_PERIPH_GPIOA)
  1612. #define __HAL_RCC_GPIOB_CLK_SLEEP_DISABLE() LL_AHB2_GRP1_DisableClockSleep(LL_AHB2_GRP1_PERIPH_GPIOB)
  1613. #define __HAL_RCC_GPIOC_CLK_SLEEP_DISABLE() LL_AHB2_GRP1_DisableClockSleep(LL_AHB2_GRP1_PERIPH_GPIOC)
  1614. #if defined(GPIOD)
  1615. #define __HAL_RCC_GPIOD_CLK_SLEEP_DISABLE() LL_AHB2_GRP1_DisableClockSleep(LL_AHB2_GRP1_PERIPH_GPIOD)
  1616. #endif
  1617. #define __HAL_RCC_GPIOE_CLK_SLEEP_DISABLE() LL_AHB2_GRP1_DisableClockSleep(LL_AHB2_GRP1_PERIPH_GPIOE)
  1618. #define __HAL_RCC_GPIOH_CLK_SLEEP_DISABLE() LL_AHB2_GRP1_DisableClockSleep(LL_AHB2_GRP1_PERIPH_GPIOH)
  1619. #define __HAL_RCC_ADC_CLK_SLEEP_DISABLE() LL_AHB2_GRP1_DisableClockSleep(LL_AHB2_GRP1_PERIPH_ADC)
  1620. #if defined(AES1)
  1621. #define __HAL_RCC_AES1_CLK_SLEEP_DISABLE() LL_AHB2_GRP1_DisableClockSleep(LL_AHB2_GRP1_PERIPH_AES1)
  1622. #endif
  1623. #define __HAL_RCC_C2GPIOA_CLK_SLEEP_ENABLE() LL_C2_AHB2_GRP1_EnableClockSleep(LL_C2_AHB2_GRP1_PERIPH_GPIOA)
  1624. #define __HAL_RCC_C2GPIOB_CLK_SLEEP_ENABLE() LL_C2_AHB2_GRP1_EnableClockSleep(LL_C2_AHB2_GRP1_PERIPH_GPIOB)
  1625. #define __HAL_RCC_C2GPIOC_CLK_SLEEP_ENABLE() LL_C2_AHB2_GRP1_EnableClockSleep(LL_C2_AHB2_GRP1_PERIPH_GPIOC)
  1626. #if defined(GPIOD)
  1627. #define __HAL_RCC_C2GPIOD_CLK_SLEEP_ENABLE() LL_C2_AHB2_GRP1_EnableClockSleep(LL_C2_AHB2_GRP1_PERIPH_GPIOD)
  1628. #endif
  1629. #define __HAL_RCC_C2GPIOE_CLK_SLEEP_ENABLE() LL_C2_AHB2_GRP1_EnableClockSleep(LL_C2_AHB2_GRP1_PERIPH_GPIOE)
  1630. #define __HAL_RCC_C2GPIOH_CLK_SLEEP_ENABLE() LL_C2_AHB2_GRP1_EnableClockSleep(LL_C2_AHB2_GRP1_PERIPH_GPIOH)
  1631. #define __HAL_RCC_C2ADC_CLK_SLEEP_ENABLE() LL_C2_AHB2_GRP1_EnableClockSleep(LL_C2_AHB2_GRP1_PERIPH_ADC)
  1632. #if defined(AES1)
  1633. #define __HAL_RCC_C2AES1_CLK_SLEEP_ENABLE() LL_C2_AHB2_GRP1_EnableClockSleep(LL_C2_AHB2_GRP1_PERIPH_AES1)
  1634. #endif
  1635. #define __HAL_RCC_C2GPIOA_CLK_SLEEP_DISABLE() LL_C2_AHB2_GRP1_DisableClockSleep(LL_C2_AHB2_GRP1_PERIPH_GPIOA)
  1636. #define __HAL_RCC_C2GPIOB_CLK_SLEEP_DISABLE() LL_C2_AHB2_GRP1_DisableClockSleep(LL_C2_AHB2_GRP1_PERIPH_GPIOB)
  1637. #define __HAL_RCC_C2GPIOC_CLK_SLEEP_DISABLE() LL_C2_AHB2_GRP1_DisableClockSleep(LL_C2_AHB2_GRP1_PERIPH_GPIOC)
  1638. #if defined(GPIOD)
  1639. #define __HAL_RCC_C2GPIOD_CLK_SLEEP_DISABLE() LL_C2_AHB2_GRP1_DisableClockSleep(LL_C2_AHB2_GRP1_PERIPH_GPIOD)
  1640. #endif
  1641. #define __HAL_RCC_C2GPIOE_CLK_SLEEP_DISABLE() LL_C2_AHB2_GRP1_DisableClockSleep(LL_C2_AHB2_GRP1_PERIPH_GPIOE)
  1642. #define __HAL_RCC_C2GPIOH_CLK_SLEEP_DISABLE() LL_C2_AHB2_GRP1_DisableClockSleep(LL_C2_AHB2_GRP1_PERIPH_GPIOH)
  1643. #define __HAL_RCC_C2ADC_CLK_SLEEP_DISABLE() LL_C2_AHB2_GRP1_DisableClockSleep(LL_C2_AHB2_GRP1_PERIPH_ADC)
  1644. #if defined(AES1)
  1645. #define __HAL_RCC_C2AES1_CLK_SLEEP_DISABLE() LL_C2_AHB2_GRP1_DisableClockSleep(LL_C2_AHB2_GRP1_PERIPH_AES1)
  1646. #endif
  1647. /**
  1648. * @}
  1649. */
  1650. /** @defgroup RCC_AHB3_Clock_Sleep_Enable_Disable AHB3 Peripheral Clock Sleep Enable Disable
  1651. * @brief Enable or disable the AHB3 peripheral clock during Low Power (Sleep) mode.
  1652. * @note Peripheral clock gating in SLEEP mode can be used to further reduce
  1653. * power consumption.
  1654. * @note After wakeup from SLEEP mode, the peripheral clock is enabled again.
  1655. * @note By default, all peripheral clocks are enabled during SLEEP mode.
  1656. * @{
  1657. */
  1658. #if defined(QUADSPI)
  1659. #define __HAL_RCC_QUADSPI_CLK_SLEEP_ENABLE() LL_AHB3_GRP1_EnableClockSleep(LL_AHB3_GRP1_PERIPH_QUADSPI)
  1660. #endif
  1661. #define __HAL_RCC_PKA_CLK_SLEEP_ENABLE() LL_AHB3_GRP1_EnableClockSleep(LL_AHB3_GRP1_PERIPH_PKA)
  1662. #define __HAL_RCC_AES2_CLK_SLEEP_ENABLE() LL_AHB3_GRP1_EnableClockSleep(LL_AHB3_GRP1_PERIPH_AES2)
  1663. #define __HAL_RCC_RNG_CLK_SLEEP_ENABLE() LL_AHB3_GRP1_EnableClockSleep(LL_AHB3_GRP1_PERIPH_RNG)
  1664. #define __HAL_RCC_SRAM2_CLK_SLEEP_ENABLE() LL_AHB3_GRP1_EnableClockSleep(LL_AHB3_GRP1_PERIPH_SRAM2)
  1665. #define __HAL_RCC_FLASH_CLK_SLEEP_ENABLE() LL_AHB3_GRP1_EnableClockSleep(LL_AHB3_GRP1_PERIPH_FLASH)
  1666. #if defined(QUADSPI)
  1667. #define __HAL_RCC_QUADSPI_CLK_SLEEP_DISABLE() LL_AHB3_GRP1_DisableClockSleep(LL_AHB3_GRP1_PERIPH_QUADSPI)
  1668. #endif
  1669. #define __HAL_RCC_PKA_CLK_SLEEP_DISABLE() LL_AHB3_GRP1_DisableClockSleep(LL_AHB3_GRP1_PERIPH_PKA)
  1670. #define __HAL_RCC_AES2_CLK_SLEEP_DISABLE() LL_AHB3_GRP1_DisableClockSleep(LL_AHB3_GRP1_PERIPH_AES2)
  1671. #define __HAL_RCC_RNG_CLK_SLEEP_DISABLE() LL_AHB3_GRP1_DisableClockSleep(LL_AHB3_GRP1_PERIPH_RNG)
  1672. #define __HAL_RCC_SRAM2_CLK_SLEEP_DISABLE() LL_AHB3_GRP1_DisableClockSleep(LL_AHB3_GRP1_PERIPH_SRAM2)
  1673. #define __HAL_RCC_FLASH_CLK_SLEEP_DISABLE() LL_AHB3_GRP1_DisableClockSleep(LL_AHB3_GRP1_PERIPH_FLASH)
  1674. #define __HAL_RCC_C2PKA_CLK_SLEEP_ENABLE() LL_C2_AHB3_GRP1_EnableClockSleep(LL_C2_AHB3_GRP1_PERIPH_PKA)
  1675. #define __HAL_RCC_C2AES2_CLK_SLEEP_ENABLE() LL_C2_AHB3_GRP1_EnableClockSleep(LL_C2_AHB3_GRP1_PERIPH_AES2)
  1676. #define __HAL_RCC_C2RNG_CLK_SLEEP_ENABLE() LL_C2_AHB3_GRP1_EnableClockSleep(LL_C2_AHB3_GRP1_PERIPH_RNG)
  1677. #define __HAL_RCC_C2SRAM2_CLK_SLEEP_ENABLE() LL_C2_AHB3_GRP1_EnableClockSleep(LL_C2_AHB3_GRP1_PERIPH_SRAM2)
  1678. #define __HAL_RCC_C2FLASH_CLK_SLEEP_ENABLE() LL_C2_AHB3_GRP1_EnableClockSleep(LL_C2_AHB3_GRP1_PERIPH_FLASH)
  1679. #define __HAL_RCC_C2PKA_CLK_SLEEP_DISABLE() LL_C2_AHB3_GRP1_DisableClockSleep(LL_C2_AHB3_GRP1_PERIPH_PKA)
  1680. #define __HAL_RCC_C2AES2_CLK_SLEEP_DISABLE() LL_C2_AHB3_GRP1_DisableClockSleep(LL_C2_AHB3_GRP1_PERIPH_AES2)
  1681. #define __HAL_RCC_C2RNG_CLK_SLEEP_DISABLE() LL_C2_AHB3_GRP1_DisableClockSleep(LL_C2_AHB3_GRP1_PERIPH_RNG)
  1682. #define __HAL_RCC_C2SRAM2_CLK_SLEEP_DISABLE() LL_C2_AHB3_GRP1_DisableClockSleep(LL_C2_AHB3_GRP1_PERIPH_SRAM2)
  1683. #define __HAL_RCC_C2FLASH_CLK_SLEEP_DISABLE() LL_C2_AHB3_GRP1_DisableClockSleep(LL_C2_AHB3_GRP1_PERIPH_FLASH)
  1684. /**
  1685. * @}
  1686. */
  1687. /** @defgroup RCC_APB1_Clock_Sleep_Enable_Disable APB1 Peripheral Clock Sleep Enable Disable
  1688. * @brief Enable or disable the APB1 peripheral clock during Low Power (Sleep) mode.
  1689. * @note Peripheral clock gating in SLEEP mode can be used to further reduce
  1690. * power consumption.
  1691. * @note After wakeup from SLEEP mode, the peripheral clock is enabled again.
  1692. * @note By default, all peripheral clocks are enabled during SLEEP mode.
  1693. * @{
  1694. */
  1695. #define __HAL_RCC_TIM2_CLK_SLEEP_ENABLE() LL_APB1_GRP1_EnableClockSleep(LL_APB1_GRP1_PERIPH_TIM2)
  1696. #if defined(LCD)
  1697. #define __HAL_RCC_LCD_CLK_SLEEP_ENABLE() LL_APB1_GRP1_EnableClockSleep(LL_APB1_GRP1_PERIPH_LCD)
  1698. #endif
  1699. #define __HAL_RCC_RTCAPB_CLK_SLEEP_ENABLE() LL_APB1_GRP1_EnableClockSleep(LL_APB1_GRP1_PERIPH_RTCAPB)
  1700. #define __HAL_RCC_WWDG_CLK_SLEEP_ENABLE() LL_APB1_GRP1_EnableClockSleep(LL_APB1_GRP1_PERIPH_WWDG)
  1701. #if defined(SPI2)
  1702. #define __HAL_RCC_SPI2_CLK_SLEEP_ENABLE() LL_APB1_GRP1_EnableClockSleep(LL_APB1_GRP1_PERIPH_SPI2)
  1703. #endif
  1704. #define __HAL_RCC_I2C1_CLK_SLEEP_ENABLE() LL_APB1_GRP1_EnableClockSleep(LL_APB1_GRP1_PERIPH_I2C1)
  1705. #if defined(I2C3)
  1706. #define __HAL_RCC_I2C3_CLK_SLEEP_ENABLE() LL_APB1_GRP1_EnableClockSleep(LL_APB1_GRP1_PERIPH_I2C3)
  1707. #endif
  1708. #if defined(CRS)
  1709. #define __HAL_RCC_CRS_CLK_SLEEP_ENABLE() LL_APB1_GRP1_EnableClockSleep(LL_APB1_GRP1_PERIPH_CRS)
  1710. #endif
  1711. #if defined(USB)
  1712. #define __HAL_RCC_USB_CLK_SLEEP_ENABLE() LL_APB1_GRP1_EnableClockSleep(LL_APB1_GRP1_PERIPH_USB)
  1713. #endif
  1714. #define __HAL_RCC_LPTIM1_CLK_SLEEP_ENABLE() LL_APB1_GRP1_EnableClockSleep(LL_APB1_GRP1_PERIPH_LPTIM1)
  1715. #if defined(LPUART1)
  1716. #define __HAL_RCC_LPUART1_CLK_SLEEP_ENABLE() LL_APB1_GRP2_EnableClockSleep(LL_APB1_GRP2_PERIPH_LPUART1)
  1717. #endif
  1718. #define __HAL_RCC_LPTIM2_CLK_SLEEP_ENABLE() LL_APB1_GRP2_EnableClockSleep(LL_APB1_GRP2_PERIPH_LPTIM2)
  1719. #define __HAL_RCC_TIM2_CLK_SLEEP_DISABLE() LL_APB1_GRP1_DisableClockSleep(LL_APB1_GRP1_PERIPH_TIM2)
  1720. #if defined(LCD)
  1721. #define __HAL_RCC_LCD_CLK_SLEEP_DISABLE() LL_APB1_GRP1_DisableClockSleep(LL_APB1_GRP1_PERIPH_LCD)
  1722. #endif
  1723. #define __HAL_RCC_RTCAPB_CLK_SLEEP_DISABLE() LL_APB1_GRP1_DisableClockSleep(LL_APB1_GRP1_PERIPH_RTCAPB)
  1724. #define __HAL_RCC_WWDG_CLK_SLEEP_DISABLE() LL_APB1_GRP1_DisableClockSleep(LL_APB1_GRP1_PERIPH_WWDG)
  1725. #if defined(SPI2)
  1726. #define __HAL_RCC_SPI2_CLK_SLEEP_DISABLE() LL_APB1_GRP1_DisableClockSleep(LL_APB1_GRP1_PERIPH_SPI2)
  1727. #endif
  1728. #define __HAL_RCC_I2C1_CLK_SLEEP_DISABLE() LL_APB1_GRP1_DisableClockSleep(LL_APB1_GRP1_PERIPH_I2C1)
  1729. #if defined(I2C3)
  1730. #define __HAL_RCC_I2C3_CLK_SLEEP_DISABLE() LL_APB1_GRP1_DisableClockSleep(LL_APB1_GRP1_PERIPH_I2C3)
  1731. #endif
  1732. #if defined(CRS)
  1733. #define __HAL_RCC_CRS_CLK_SLEEP_DISABLE() LL_APB1_GRP1_DisableClockSleep(LL_APB1_GRP1_PERIPH_CRS)
  1734. #endif
  1735. #if defined(USB)
  1736. #define __HAL_RCC_USB_CLK_SLEEP_DISABLE() LL_APB1_GRP1_DisableClockSleep(LL_APB1_GRP1_PERIPH_USB)
  1737. #endif
  1738. #define __HAL_RCC_LPTIM1_CLK_SLEEP_DISABLE() LL_APB1_GRP1_DisableClockSleep(LL_APB1_GRP1_PERIPH_LPTIM1)
  1739. #if defined(LPUART1)
  1740. #define __HAL_RCC_LPUART1_CLK_SLEEP_DISABLE() LL_APB1_GRP2_DisableClockSleep(LL_APB1_GRP2_PERIPH_LPUART1)
  1741. #endif
  1742. #define __HAL_RCC_LPTIM2_CLK_SLEEP_DISABLE() LL_APB1_GRP2_DisableClockSleep(LL_APB1_GRP2_PERIPH_LPTIM2)
  1743. #define __HAL_RCC_C2TIM2_CLK_SLEEP_ENABLE() LL_C2_APB1_GRP1_EnableClockSleep(LL_C2_APB1_GRP1_PERIPH_TIM2)
  1744. #if defined(LCD)
  1745. #define __HAL_RCC_C2LCD_CLK_SLEEP_ENABLE() LL_C2_APB1_GRP1_EnableClockSleep(LL_C2_APB1_GRP1_PERIPH_LCD)
  1746. #endif
  1747. #define __HAL_RCC_C2RTCAPB_CLK_SLEEP_ENABLE() LL_C2_APB1_GRP1_EnableClockSleep(LL_C2_APB1_GRP1_PERIPH_RTCAPB)
  1748. #if defined(SPI2)
  1749. #define __HAL_RCC_C2SPI2_CLK_SLEEP_ENABLE() LL_C2_APB1_GRP1_EnableClockSleep(LL_C2_APB1_GRP1_PERIPH_SPI2)
  1750. #endif
  1751. #define __HAL_RCC_C2I2C1_CLK_SLEEP_ENABLE() LL_C2_APB1_GRP1_EnableClockSleep(LL_C2_APB1_GRP1_PERIPH_I2C1)
  1752. #if defined(I2C3)
  1753. #define __HAL_RCC_C2I2C3_CLK_SLEEP_ENABLE() LL_C2_APB1_GRP1_EnableClockSleep(LL_C2_APB1_GRP1_PERIPH_I2C3)
  1754. #endif
  1755. #if defined(CRS)
  1756. #define __HAL_RCC_C2CRS_CLK_SLEEP_ENABLE() LL_C2_APB1_GRP1_EnableClockSleep(LL_C2_APB1_GRP1_PERIPH_CRS)
  1757. #endif
  1758. #if defined(USB)
  1759. #define __HAL_RCC_C2USB_CLK_SLEEP_ENABLE() LL_C2_APB1_GRP1_EnableClockSleep(LL_C2_APB1_GRP1_PERIPH_USB)
  1760. #endif
  1761. #define __HAL_RCC_C2LPTIM1_CLK_SLEEP_ENABLE() LL_C2_APB1_GRP1_EnableClockSleep(LL_C2_APB1_GRP1_PERIPH_LPTIM1)
  1762. #if defined(LPUART1)
  1763. #define __HAL_RCC_C2LPUART1_CLK_SLEEP_ENABLE() LL_C2_APB1_GRP2_EnableClockSleep(LL_C2_APB1_GRP2_PERIPH_LPUART1)
  1764. #endif
  1765. #define __HAL_RCC_C2LPTIM2_CLK_SLEEP_ENABLE() LL_C2_APB1_GRP2_EnableClockSleep(LL_C2_APB1_GRP2_PERIPH_LPTIM2)
  1766. #define __HAL_RCC_C2TIM2_CLK_SLEEP_DISABLE() LL_C2_APB1_GRP1_DisableClockSleep(LL_C2_APB1_GRP1_PERIPH_TIM2)
  1767. #if defined(LCD)
  1768. #define __HAL_RCC_C2LCD_CLK_SLEEP_DISABLE() LL_C2_APB1_GRP1_DisableClockSleep(LL_C2_APB1_GRP1_PERIPH_LCD)
  1769. #endif
  1770. #define __HAL_RCC_C2RTCAPB_CLK_SLEEP_DISABLE() LL_C2_APB1_GRP1_DisableClockSleep(LL_C2_APB1_GRP1_PERIPH_RTCAPB)
  1771. #if defined(SPI2)
  1772. #define __HAL_RCC_C2SPI2_CLK_SLEEP_DISABLE() LL_C2_APB1_GRP1_DisableClockSleep(LL_C2_APB1_GRP1_PERIPH_SPI2)
  1773. #endif
  1774. #define __HAL_RCC_C2I2C1_CLK_SLEEP_DISABLE() LL_C2_APB1_GRP1_DisableClockSleep(LL_C2_APB1_GRP1_PERIPH_I2C1)
  1775. #if defined(I2C3)
  1776. #define __HAL_RCC_C2I2C3_CLK_SLEEP_DISABLE() LL_C2_APB1_GRP1_DisableClockSleep(LL_C2_APB1_GRP1_PERIPH_I2C3)
  1777. #endif
  1778. #if defined(CRS)
  1779. #define __HAL_RCC_C2CRS_CLK_SLEEP_DISABLE() LL_C2_APB1_GRP1_DisableClockSleep(LL_C2_APB1_GRP1_PERIPH_CRS)
  1780. #endif
  1781. #if defined(USB)
  1782. #define __HAL_RCC_C2USB_CLK_SLEEP_DISABLE() LL_C2_APB1_GRP1_DisableClockSleep(LL_C2_APB1_GRP1_PERIPH_USB)
  1783. #endif
  1784. #define __HAL_RCC_C2LPTIM1_CLK_SLEEP_DISABLE() LL_C2_APB1_GRP1_DisableClockSleep(LL_C2_APB1_GRP1_PERIPH_LPTIM1)
  1785. #if defined(LPUART1)
  1786. #define __HAL_RCC_C2LPUART1_CLK_SLEEP_DISABLE() LL_C2_APB1_GRP2_DisableClockSleep(LL_C2_APB1_GRP2_PERIPH_LPUART1)
  1787. #endif
  1788. #define __HAL_RCC_C2LPTIM2_CLK_SLEEP_DISABLE() LL_C2_APB1_GRP2_DisableClockSleep(LL_C2_APB1_GRP2_PERIPH_LPTIM2)
  1789. /**
  1790. * @}
  1791. */
  1792. /** @defgroup RCC_APB2_Clock_Sleep_Enable_Disable APB2 Peripheral Clock Sleep Enable Disable
  1793. * @brief Enable or disable the APB2 peripheral clock during Low Power (Sleep) mode.
  1794. * @note Peripheral clock gating in SLEEP mode can be used to further reduce
  1795. * power consumption.
  1796. * @note After wakeup from SLEEP mode, the peripheral clock is enabled again.
  1797. * @note By default, all peripheral clocks are enabled during SLEEP mode.
  1798. * @{
  1799. */
  1800. #define __HAL_RCC_TIM1_CLK_SLEEP_ENABLE() LL_APB2_GRP1_EnableClockSleep(LL_APB2_GRP1_PERIPH_TIM1)
  1801. #define __HAL_RCC_SPI1_CLK_SLEEP_ENABLE() LL_APB2_GRP1_EnableClockSleep(LL_APB2_GRP1_PERIPH_SPI1)
  1802. #define __HAL_RCC_USART1_CLK_SLEEP_ENABLE() LL_APB2_GRP1_EnableClockSleep(LL_APB2_GRP1_PERIPH_USART1)
  1803. #define __HAL_RCC_TIM16_CLK_SLEEP_ENABLE() LL_APB2_GRP1_EnableClockSleep(LL_APB2_GRP1_PERIPH_TIM16)
  1804. #define __HAL_RCC_TIM17_CLK_SLEEP_ENABLE() LL_APB2_GRP1_EnableClockSleep(LL_APB2_GRP1_PERIPH_TIM17)
  1805. #if defined(SAI1)
  1806. #define __HAL_RCC_SAI1_CLK_SLEEP_ENABLE() LL_APB2_GRP1_EnableClockSleep(LL_APB2_GRP1_PERIPH_SAI1)
  1807. #endif
  1808. #define __HAL_RCC_TIM1_CLK_SLEEP_DISABLE() LL_APB2_GRP1_DisableClockSleep(LL_APB2_GRP1_PERIPH_TIM1)
  1809. #define __HAL_RCC_SPI1_CLK_SLEEP_DISABLE() LL_APB2_GRP1_DisableClockSleep(LL_APB2_GRP1_PERIPH_SPI1)
  1810. #define __HAL_RCC_USART1_CLK_SLEEP_DISABLE() LL_APB2_GRP1_DisableClockSleep(LL_APB2_GRP1_PERIPH_USART1)
  1811. #define __HAL_RCC_TIM16_CLK_SLEEP_DISABLE() LL_APB2_GRP1_DisableClockSleep(LL_APB2_GRP1_PERIPH_TIM16)
  1812. #define __HAL_RCC_TIM17_CLK_SLEEP_DISABLE() LL_APB2_GRP1_DisableClockSleep(LL_APB2_GRP1_PERIPH_TIM17)
  1813. #if defined(SAI1)
  1814. #define __HAL_RCC_SAI1_CLK_SLEEP_DISABLE() LL_APB2_GRP1_DisableClockSleep(LL_APB2_GRP1_PERIPH_SAI1)
  1815. #endif
  1816. #define __HAL_RCC_C2TIM1_CLK_SLEEP_ENABLE() LL_C2_APB2_GRP1_EnableClockSleep(LL_C2_APB2_GRP1_PERIPH_TIM1)
  1817. #define __HAL_RCC_C2SPI1_CLK_SLEEP_ENABLE() LL_C2_APB2_GRP1_EnableClockSleep(LL_C2_APB2_GRP1_PERIPH_SPI1)
  1818. #define __HAL_RCC_C2USART1_CLK_SLEEP_ENABLE() LL_C2_APB2_GRP1_EnableClockSleep(LL_C2_APB2_GRP1_PERIPH_USART1)
  1819. #define __HAL_RCC_C2TIM16_CLK_SLEEP_ENABLE() LL_C2_APB2_GRP1_EnableClockSleep(LL_C2_APB2_GRP1_PERIPH_TIM16)
  1820. #define __HAL_RCC_C2TIM17_CLK_SLEEP_ENABLE() LL_C2_APB2_GRP1_EnableClockSleep(LL_C2_APB2_GRP1_PERIPH_TIM17)
  1821. #if defined(SAI1)
  1822. #define __HAL_RCC_C2SAI1_CLK_SLEEP_ENABLE() LL_C2_APB2_GRP1_EnableClockSleep(LL_C2_APB2_GRP1_PERIPH_SAI1)
  1823. #endif
  1824. #define __HAL_RCC_C2TIM1_CLK_SLEEP_DISABLE() LL_C2_APB2_GRP1_DisableClockSleep(LL_C2_APB2_GRP1_PERIPH_TIM1)
  1825. #define __HAL_RCC_C2SPI1_CLK_SLEEP_DISABLE() LL_C2_APB2_GRP1_DisableClockSleep(LL_C2_APB2_GRP1_PERIPH_SPI1)
  1826. #define __HAL_RCC_C2USART1_CLK_SLEEP_DISABLE() LL_C2_APB2_GRP1_DisableClockSleep(LL_C2_APB2_GRP1_PERIPH_USART1)
  1827. #define __HAL_RCC_C2TIM16_CLK_SLEEP_DISABLE() LL_C2_APB2_GRP1_DisableClockSleep(LL_C2_APB2_GRP1_PERIPH_TIM16)
  1828. #define __HAL_RCC_C2TIM17_CLK_SLEEP_DISABLE() LL_C2_APB2_GRP1_DisableClockSleep(LL_C2_APB2_GRP1_PERIPH_TIM17)
  1829. #if defined(SAI1)
  1830. #define __HAL_RCC_C2SAI1_CLK_SLEEP_DISABLE() LL_C2_APB2_GRP1_DisableClockSleep(LL_C2_APB2_GRP1_PERIPH_SAI1)
  1831. #endif
  1832. /**
  1833. * @}
  1834. */
  1835. /** @defgroup RCC_AHB1_Clock_Sleep_Enable_Disable_Status AHB1 Peripheral Clock Sleep Enabled or Disabled Status
  1836. * @brief Check whether the AHB1 peripheral clock during Low Power (Sleep) mode is enabled or not.
  1837. * @note Peripheral clock gating in SLEEP mode can be used to further reduce
  1838. * power consumption.
  1839. * @note After wakeup from SLEEP mode, the peripheral clock is enabled again.
  1840. * @note By default, all peripheral clocks are enabled during SLEEP mode.
  1841. * @{
  1842. */
  1843. #define __HAL_RCC_DMA1_IS_CLK_SLEEP_ENABLED() (READ_BIT(RCC->AHB1SMENR, RCC_AHB1SMENR_DMA1SMEN) != RESET)
  1844. #if defined(DMA2)
  1845. #define __HAL_RCC_DMA2_IS_CLK_SLEEP_ENABLED() (READ_BIT(RCC->AHB1SMENR, RCC_AHB1SMENR_DMA2SMEN) != RESET)
  1846. #endif
  1847. #define __HAL_RCC_DMAMUX1_IS_CLK_SLEEP_ENABLED() (READ_BIT(RCC->AHB1SMENR, RCC_AHB1SMENR_DMAMUX1SMEN) != RESET)
  1848. #define __HAL_RCC_SRAM1_IS_CLK_SLEEP_ENABLED() (READ_BIT(RCC->AHB1SMENR, RCC_AHB1SMENR_SRAM1SMEN) != RESET)
  1849. #define __HAL_RCC_CRC_IS_CLK_SLEEP_ENABLED() (READ_BIT(RCC->AHB1SMENR, RCC_AHB1SMENR_CRCSMEN) != RESET)
  1850. #define __HAL_RCC_TSC_IS_CLK_SLEEP_ENABLED() (READ_BIT(RCC->AHB1SMENR, RCC_AHB1SMENR_TSCSMEN) != RESET)
  1851. #define __HAL_RCC_DMA1_IS_CLK_SLEEP_DISABLED() (READ_BIT(RCC->AHB1SMENR, RCC_AHB1SMENR_DMA1SMEN) == RESET)
  1852. #if defined(DMA2)
  1853. #define __HAL_RCC_DMA2_IS_CLK_SLEEP_DISABLED() (READ_BIT(RCC->AHB1SMENR, RCC_AHB1SMENR_DMA2SMEN) == RESET)
  1854. #endif
  1855. #define __HAL_RCC_DMAMUX1_IS_CLK_SLEEP_DISABLED() (READ_BIT(RCC->AHB1SMENR, RCC_AHB1SMENR_DMAMUX1SMEN) == RESET)
  1856. #define __HAL_RCC_SRAM1_IS_CLK_SLEEP_DISABLED() (READ_BIT(RCC->AHB1SMENR, RCC_AHB1SMENR_SRAM1SMEN) == RESET)
  1857. #define __HAL_RCC_CRC_IS_CLK_SLEEP_DISABLED() (READ_BIT(RCC->AHB1SMENR, RCC_AHB1SMENR_CRCSMEN) == RESET)
  1858. #define __HAL_RCC_TSC_IS_CLK_SLEEP_DISABLED() (READ_BIT(RCC->AHB1SMENR, RCC_AHB1SMENR_TSCSMEN) == RESET)
  1859. #define __HAL_RCC_C2DMA1_IS_CLK_SLEEP_ENABLED() (READ_BIT(RCC->C2AHB1SMENR, RCC_C2AHB1SMENR_DMA1SMEN) != RESET)
  1860. #if defined(DMA2)
  1861. #define __HAL_RCC_C2DMA2_IS_CLK_SLEEP_ENABLED() (READ_BIT(RCC->C2AHB1SMENR, RCC_C2AHB1SMENR_DMA2SMEN) != RESET)
  1862. #endif
  1863. #define __HAL_RCC_C2DMAMUX1_IS_CLK_SLEEP_ENABLED() (READ_BIT(RCC->C2AHB1SMENR, RCC_C2AHB1SMENR_DMAMUX1SMEN) != RESET)
  1864. #define __HAL_RCC_C2SRAM1_IS_CLK_SLEEP_ENABLED() (READ_BIT(RCC->C2AHB1SMENR, RCC_C2AHB1SMENR_SRAM1SMEN) != RESET)
  1865. #define __HAL_RCC_C2CRC_IS_CLK_SLEEP_ENABLED() (READ_BIT(RCC->C2AHB1SMENR, RCC_C2AHB1SMENR_CRCSMEN) != RESET)
  1866. #define __HAL_RCC_C2TSC_IS_CLK_SLEEP_ENABLED() (READ_BIT(RCC->C2AHB1SMENR, RCC_C2AHB1SMENR_TSCSMEN) != RESET)
  1867. #define __HAL_RCC_C2DMA1_IS_CLK_SLEEP_DISABLED() (READ_BIT(RCC->C2AHB1SMENR, RCC_C2AHB1SMENR_DMA1SMEN) == RESET)
  1868. #if defined(DMA2)
  1869. #define __HAL_RCC_C2DMA2_IS_CLK_SLEEP_DISABLED() (READ_BIT(RCC->C2AHB1SMENR, RCC_C2AHB1SMENR_DMA2SMEN) == RESET)
  1870. #endif
  1871. #define __HAL_RCC_C2DMAMUX1_IS_CLK_SLEEP_DISABLED() (READ_BIT(RCC->C2AHB1SMENR, RCC_C2AHB1SMENR_DMAMUX1SMEN) == RESET)
  1872. #define __HAL_RCC_C2SRAM1_IS_CLK_SLEEP_DISABLED() (READ_BIT(RCC->C2AHB1SMENR, RCC_C2AHB1SMENR_SRAM1SMEN) == RESET)
  1873. #define __HAL_RCC_C2CRC_IS_CLK_SLEEP_DISABLED() (READ_BIT(RCC->C2AHB1SMENR, RCC_C2AHB1SMENR_CRCSMEN) == RESET)
  1874. #define __HAL_RCC_C2TSC_IS_CLK_SLEEP_DISABLED() (READ_BIT(RCC->C2AHB1SMENR, RCC_C2AHB1SMENR_TSCSMEN) == RESET)
  1875. /**
  1876. * @}
  1877. */
  1878. /** @defgroup RCC_AHB2_Clock_Sleep_Enable_Disable_Status AHB2 Peripheral Clock Sleep Enabled or Disabled Status
  1879. * @brief Check whether the AHB2 peripheral clock during Low Power (Sleep) mode is enabled or not.
  1880. * @note Peripheral clock gating in SLEEP mode can be used to further reduce
  1881. * power consumption.
  1882. * @note After wakeup from SLEEP mode, the peripheral clock is enabled again.
  1883. * @note By default, all peripheral clocks are enabled during SLEEP mode.
  1884. * @{
  1885. */
  1886. #define __HAL_RCC_GPIOA_IS_CLK_SLEEP_ENABLED() (READ_BIT(RCC->AHB2SMENR, RCC_AHB2SMENR_GPIOASMEN) != RESET)
  1887. #define __HAL_RCC_GPIOB_IS_CLK_SLEEP_ENABLED() (READ_BIT(RCC->AHB2SMENR, RCC_AHB2SMENR_GPIOBSMEN) != RESET)
  1888. #define __HAL_RCC_GPIOC_IS_CLK_SLEEP_ENABLED() (READ_BIT(RCC->AHB2SMENR, RCC_AHB2SMENR_GPIOCSMEN) != RESET)
  1889. #if defined(GPIOD)
  1890. #define __HAL_RCC_GPIOD_IS_CLK_SLEEP_ENABLED() (READ_BIT(RCC->AHB2SMENR, RCC_AHB2SMENR_GPIODSMEN) != RESET)
  1891. #endif
  1892. #define __HAL_RCC_GPIOE_IS_CLK_SLEEP_ENABLED() (READ_BIT(RCC->AHB2SMENR, RCC_AHB2SMENR_GPIOESMEN) != RESET)
  1893. #define __HAL_RCC_GPIOH_IS_CLK_SLEEP_ENABLED() (READ_BIT(RCC->AHB2SMENR, RCC_AHB2SMENR_GPIOHSMEN) != RESET)
  1894. #define __HAL_RCC_ADC_IS_CLK_SLEEP_ENABLED() (READ_BIT(RCC->AHB2SMENR, RCC_AHB2SMENR_ADCSMEN) != RESET)
  1895. #if defined(AES1)
  1896. #define __HAL_RCC_AES1_IS_CLK_SLEEP_ENABLED() (READ_BIT(RCC->AHB2SMENR, RCC_AHB2SMENR_AES1SMEN) != RESET)
  1897. #endif
  1898. #define __HAL_RCC_GPIOA_IS_CLK_SLEEP_DISABLED() (READ_BIT(RCC->AHB2SMENR, RCC_AHB2SMENR_GPIOASMEN) == RESET)
  1899. #define __HAL_RCC_GPIOB_IS_CLK_SLEEP_DISABLED() (READ_BIT(RCC->AHB2SMENR, RCC_AHB2SMENR_GPIOBSMEN) == RESET)
  1900. #define __HAL_RCC_GPIOC_IS_CLK_SLEEP_DISABLED() (READ_BIT(RCC->AHB2SMENR, RCC_AHB2SMENR_GPIOCSMEN) == RESET)
  1901. #if defined(GPIOD)
  1902. #define __HAL_RCC_GPIOD_IS_CLK_SLEEP_DISABLED() (READ_BIT(RCC->AHB2SMENR, RCC_AHB2SMENR_GPIODSMEN) == RESET)
  1903. #endif
  1904. #define __HAL_RCC_GPIOE_IS_CLK_SLEEP_DISABLED() (READ_BIT(RCC->AHB2SMENR, RCC_AHB2SMENR_GPIOESMEN) == RESET)
  1905. #define __HAL_RCC_GPIOH_IS_CLK_SLEEP_DISABLED() (READ_BIT(RCC->AHB2SMENR, RCC_AHB2SMENR_GPIOHSMEN) == RESET)
  1906. #define __HAL_RCC_ADC_IS_CLK_SLEEP_DISABLED() (READ_BIT(RCC->AHB2SMENR, RCC_AHB2SMENR_ADCSMEN) == RESET)
  1907. #if defined(AES1)
  1908. #define __HAL_RCC_AES1_IS_CLK_SLEEP_DISABLED() (READ_BIT(RCC->AHB2SMENR, RCC_AHB2SMENR_AES1SMEN) == RESET)
  1909. #endif
  1910. #define __HAL_RCC_C2GPIOA_IS_CLK_SLEEP_ENABLED() (READ_BIT(RCC->C2AHB2SMENR, RCC_C2AHB2SMENR_GPIOASMEN) != RESET)
  1911. #define __HAL_RCC_C2GPIOB_IS_CLK_SLEEP_ENABLED() (READ_BIT(RCC->C2AHB2SMENR, RCC_C2AHB2SMENR_GPIOBSMEN) != RESET)
  1912. #define __HAL_RCC_C2GPIOC_IS_CLK_SLEEP_ENABLED() (READ_BIT(RCC->C2AHB2SMENR, RCC_C2AHB2SMENR_GPIOCSMEN) != RESET)
  1913. #if defined(GPIOD)
  1914. #define __HAL_RCC_C2GPIOD_IS_CLK_SLEEP_ENABLED() (READ_BIT(RCC->C2AHB2SMENR, RCC_C2AHB2SMENR_GPIODSMEN) != RESET)
  1915. #endif
  1916. #define __HAL_RCC_C2GPIOE_IS_CLK_SLEEP_ENABLED() (READ_BIT(RCC->C2AHB2SMENR, RCC_C2AHB2SMENR_GPIOESMEN) != RESET)
  1917. #define __HAL_RCC_C2GPIOH_IS_CLK_SLEEP_ENABLED() (READ_BIT(RCC->C2AHB2SMENR, RCC_C2AHB2SMENR_GPIOHSMEN) != RESET)
  1918. #define __HAL_RCC_C2ADC_IS_CLK_SLEEP_ENABLED() (READ_BIT(RCC->C2AHB2SMENR, RCC_C2AHB2SMENR_ADCSMEN) != RESET)
  1919. #if defined(AES1)
  1920. #define __HAL_RCC_C2AES1_IS_CLK_SLEEP_ENABLED() (READ_BIT(RCC->C2AHB2SMENR, RCC_C2AHB2SMENR_AES1SMEN) != RESET)
  1921. #endif
  1922. #define __HAL_RCC_C2GPIOA_IS_CLK_SLEEP_DISABLED() (READ_BIT(RCC->C2AHB2SMENR, RCC_C2AHB2SMENR_GPIOASMEN) == RESET)
  1923. #define __HAL_RCC_C2GPIOB_IS_CLK_SLEEP_DISABLED() (READ_BIT(RCC->C2AHB2SMENR, RCC_C2AHB2SMENR_GPIOBSMEN) == RESET)
  1924. #define __HAL_RCC_C2GPIOC_IS_CLK_SLEEP_DISABLED() (READ_BIT(RCC->C2AHB2SMENR, RCC_C2AHB2SMENR_GPIOCSMEN) == RESET)
  1925. #if defined(GPIOD)
  1926. #define __HAL_RCC_C2GPIOD_IS_CLK_SLEEP_DISABLED() (READ_BIT(RCC->C2AHB2SMENR, RCC_C2AHB2SMENR_GPIODSMEN) == RESET)
  1927. #endif
  1928. #define __HAL_RCC_C2GPIOE_IS_CLK_SLEEP_DISABLED() (READ_BIT(RCC->C2AHB2SMENR, RCC_C2AHB2SMENR_GPIOESMEN) == RESET)
  1929. #define __HAL_RCC_C2GPIOH_IS_CLK_SLEEP_DISABLED() (READ_BIT(RCC->C2AHB2SMENR, RCC_C2AHB2SMENR_GPIOHSMEN) == RESET)
  1930. #define __HAL_RCC_C2ADC_IS_CLK_SLEEP_DISABLED() (READ_BIT(RCC->C2AHB2SMENR, RCC_C2AHB2SMENR_ADCSMEN) == RESET)
  1931. #if defined(AES1)
  1932. #define __HAL_RCC_C2AES1_IS_CLK_SLEEP_DISABLED() (READ_BIT(RCC->C2AHB2SMENR, RCC_C2AHB2SMENR_AES1SMEN) == RESET)
  1933. #endif
  1934. /**
  1935. * @}
  1936. */
  1937. /** @defgroup RCC_AHB3_Clock_Sleep_Enable_Disable_Status AHB3 Peripheral Clock Sleep Enabled or Disabled Status
  1938. * @brief Check whether the AHB3 peripheral clock during Low Power (Sleep) mode is enabled or not.
  1939. * @note Peripheral clock gating in SLEEP mode can be used to further reduce
  1940. * power consumption.
  1941. * @note After wakeup from SLEEP mode, the peripheral clock is enabled again.
  1942. * @note By default, all peripheral clocks are enabled during SLEEP mode.
  1943. * @{
  1944. */
  1945. #if defined(QUADSPI)
  1946. #define __HAL_RCC_QUADSPI_IS_CLK_SLEEP_ENABLED() (READ_BIT(RCC->AHB3SMENR, RCC_AHB3SMENR_QUADSPISMEN) != RESET)
  1947. #endif
  1948. #define __HAL_RCC_PKA_IS_CLK_SLEEP_ENABLED() (READ_BIT(RCC->AHB3SMENR, RCC_AHB3SMENR_PKASMEN) != RESET)
  1949. #define __HAL_RCC_AES2_IS_CLK_SLEEP_ENABLED() (READ_BIT(RCC->AHB3SMENR, RCC_AHB3SMENR_AES2SMEN) != RESET)
  1950. #define __HAL_RCC_RNG_IS_CLK_SLEEP_ENABLED() (READ_BIT(RCC->AHB3SMENR, RCC_AHB3SMENR_RNGSMEN) != RESET)
  1951. #define __HAL_RCC_SRAM2_IS_CLK_SLEEP_ENABLED() (READ_BIT(RCC->AHB3SMENR, RCC_AHB3SMENR_SRAM2SMEN) != RESET)
  1952. #define __HAL_RCC_FLASH_IS_CLK_SLEEP_ENABLED() (READ_BIT(RCC->AHB3SMENR, RCC_AHB3SMENR_FLASHSMEN) != RESET)
  1953. #if defined(QUADSPI)
  1954. #define __HAL_RCC_QUADSPI_IS_CLK_SLEEP_DISABLED() (READ_BIT(RCC->AHB3SMENR, RCC_AHB3SMENR_QUADSPISMEN) == RESET)
  1955. #endif
  1956. #define __HAL_RCC_PKA_IS_CLK_SLEEP_DISABLED() (READ_BIT(RCC->AHB3SMENR, RCC_AHB3SMENR_PKASMEN) == RESET)
  1957. #define __HAL_RCC_AES2_IS_CLK_SLEEP_DISABLED() (READ_BIT(RCC->AHB3SMENR, RCC_AHB3SMENR_AES2SMEN) == RESET)
  1958. #define __HAL_RCC_RNG_IS_CLK_SLEEP_DISABLED() (READ_BIT(RCC->AHB3SMENR, RCC_AHB3SMENR_RNGSMEN) == RESET)
  1959. #define __HAL_RCC_SRAM2_IS_CLK_SLEEP_DISABLED() (READ_BIT(RCC->AHB3SMENR, RCC_AHB3SMENR_SRAM2SMEN) == RESET)
  1960. #define __HAL_RCC_FLASH_IS_CLK_SLEEP_DISABLED() (READ_BIT(RCC->AHB3SMENR, RCC_AHB3SMENR_FLASHSMEN) == RESET)
  1961. #define __HAL_RCC_C2PKA_IS_CLK_SLEEP_ENABLED() (READ_BIT(RCC->C2AHB3SMENR, RCC_C2AHB3SMENR_PKASMEN) != RESET)
  1962. #define __HAL_RCC_C2AES2_IS_CLK_SLEEP_ENABLED() (READ_BIT(RCC->C2AHB3SMENR, RCC_C2AHB3SMENR_AES2SMEN) != RESET)
  1963. #define __HAL_RCC_C2RNG_IS_CLK_SLEEP_ENABLED() (READ_BIT(RCC->C2AHB3SMENR, RCC_C2AHB3SMENR_RNGSMEN) != RESET)
  1964. #define __HAL_RCC_C2SRAM2_IS_CLK_SLEEP_ENABLED() (READ_BIT(RCC->C2AHB3SMENR, RCC_C2AHB3SMENR_SRAM2SMEN) != RESET)
  1965. #define __HAL_RCC_C2FLASH_IS_CLK_SLEEP_ENABLED() (READ_BIT(RCC->C2AHB3SMENR, RCC_C2AHB3SMENR_FLASHSMEN) != RESET)
  1966. #define __HAL_RCC_C2PKA_IS_CLK_SLEEP_DISABLED() (READ_BIT(RCC->C2AHB3SMENR, RCC_C2AHB3SMENR_PKASMEN) == RESET)
  1967. #define __HAL_RCC_C2AES2_IS_CLK_SLEEP_DISABLED() (READ_BIT(RCC->C2AHB3SMENR, RCC_C2AHB3SMENR_AES2SMEN) == RESET)
  1968. #define __HAL_RCC_C2RNG_IS_CLK_SLEEP_DISABLED() (READ_BIT(RCC->C2AHB3SMENR, RCC_C2AHB3SMENR_RNGSMEN) == RESET)
  1969. #define __HAL_RCC_C2SRAM2_IS_CLK_SLEEP_DISABLED() (READ_BIT(RCC->C2AHB3SMENR, RCC_C2AHB3SMENR_SRAM2SMEN) == RESET)
  1970. #define __HAL_RCC_C2FLASH_IS_CLK_SLEEP_DISABLED() (READ_BIT(RCC->C2AHB3SMENR, RCC_C2AHB3SMENR_FLASHSMEN) == RESET)
  1971. /**
  1972. * @}
  1973. */
  1974. /** @defgroup RCC_APB1_Clock_Sleep_Enable_Disable_Status APB1 Peripheral Clock Sleep Enabled or Disabled Status
  1975. * @brief Check whether the APB1 peripheral clock during Low Power (Sleep) mode is enabled or not.
  1976. * @note Peripheral clock gating in SLEEP mode can be used to further reduce
  1977. * power consumption.
  1978. * @note After wakeup from SLEEP mode, the peripheral clock is enabled again.
  1979. * @note By default, all peripheral clocks are enabled during SLEEP mode.
  1980. * @{
  1981. */
  1982. #define __HAL_RCC_TIM2_IS_CLK_SLEEP_ENABLED() (READ_BIT(RCC->APB1SMENR1, RCC_APB1SMENR1_TIM2SMEN) != RESET)
  1983. #if defined(LCD)
  1984. #define __HAL_RCC_LCD_IS_CLK_SLEEP_ENABLED() (READ_BIT(RCC->APB1SMENR1, RCC_APB1SMENR1_LCDSMEN) != RESET)
  1985. #endif
  1986. #define __HAL_RCC_RTCAPB_IS_CLK_SLEEP_ENABLED() (READ_BIT(RCC->APB1SMENR1, RCC_APB1SMENR1_RTCAPBSMEN) != RESET)
  1987. #define __HAL_RCC_WWDG_IS_CLK_SLEEP_ENABLED() (READ_BIT(RCC->APB1SMENR1, RCC_APB1SMENR1_WWDGSMEN) != RESET)
  1988. #if defined(SPI2)
  1989. #define __HAL_RCC_SPI2_IS_CLK_SLEEP_ENABLED() (READ_BIT(RCC->APB1SMENR1, RCC_APB1SMENR1_SPI2SMEN) != RESET)
  1990. #endif
  1991. #define __HAL_RCC_I2C1_IS_CLK_SLEEP_ENABLED() (READ_BIT(RCC->APB1SMENR1, RCC_APB1SMENR1_I2C1SMEN) != RESET)
  1992. #if defined(I2C3)
  1993. #define __HAL_RCC_I2C3_IS_CLK_SLEEP_ENABLED() (READ_BIT(RCC->APB1SMENR1, RCC_APB1SMENR1_I2C3SMEN) != RESET)
  1994. #endif
  1995. #if defined(CRS)
  1996. #define __HAL_RCC_CRS_IS_CLK_SLEEP_ENABLED() (READ_BIT(RCC->APB1SMENR1, RCC_APB1SMENR1_CRSSMEN) != RESET)
  1997. #endif
  1998. #if defined(USB)
  1999. #define __HAL_RCC_USB_IS_CLK_SLEEP_ENABLED() (READ_BIT(RCC->APB1SMENR1, RCC_APB1SMENR1_USBSMEN) != RESET)
  2000. #endif
  2001. #define __HAL_RCC_LPTIM1_IS_CLK_SLEEP_ENABLED() (READ_BIT(RCC->APB1SMENR1, RCC_APB1SMENR1_LPTIM1SMEN) != RESET)
  2002. #if defined(LPUART1)
  2003. #define __HAL_RCC_LPUART1_IS_CLK_SLEEP_ENABLED() (READ_BIT(RCC->APB1SMENR2, RCC_APB1SMENR2_LPUART1SMEN) != RESET)
  2004. #endif
  2005. #define __HAL_RCC_LPTIM2_IS_CLK_SLEEP_ENABLED() (READ_BIT(RCC->APB1SMENR2, RCC_APB1SMENR2_LPTIM2SMEN) != RESET)
  2006. #define __HAL_RCC_TIM2_IS_CLK_SLEEP_DISABLED() (READ_BIT(RCC->APB1SMENR1, RCC_APB1SMENR1_TIM2SMEN) == RESET)
  2007. #if defined(LCD)
  2008. #define __HAL_RCC_LCD_IS_CLK_SLEEP_DISABLED() (READ_BIT(RCC->APB1SMENR1, RCC_APB1SMENR1_LCDSMEN) == RESET)
  2009. #endif
  2010. #define __HAL_RCC_RTCAPB_IS_CLK_SLEEP_DISABLED() (READ_BIT(RCC->APB1SMENR1, RCC_APB1SMENR1_RTCAPBSMEN) == RESET)
  2011. #define __HAL_RCC_WWDG_IS_CLK_SLEEP_DISABLED() (READ_BIT(RCC->APB1SMENR1, RCC_APB1SMENR1_WWDGSMEN) == RESET)
  2012. #if defined(SPI2)
  2013. #define __HAL_RCC_SPI2_IS_CLK_SLEEP_DISABLED() (READ_BIT(RCC->APB1SMENR1, RCC_APB1SMENR1_SPI2SMEN) == RESET)
  2014. #endif
  2015. #define __HAL_RCC_I2C1_IS_CLK_SLEEP_DISABLED() (READ_BIT(RCC->APB1SMENR1, RCC_APB1SMENR1_I2C1SMEN) == RESET)
  2016. #if defined(I2C3)
  2017. #define __HAL_RCC_I2C3_IS_CLK_SLEEP_DISABLED() (READ_BIT(RCC->APB1SMENR1, RCC_APB1SMENR1_I2C3SMEN) == RESET)
  2018. #endif
  2019. #if defined(CRS)
  2020. #define __HAL_RCC_CRS_IS_CLK_SLEEP_DISABLED() (READ_BIT(RCC->APB1SMENR1, RCC_APB1SMENR1_CRSSMEN) == RESET)
  2021. #endif
  2022. #if defined(USB)
  2023. #define __HAL_RCC_USB_IS_CLK_SLEEP_DISABLED() (READ_BIT(RCC->APB1SMENR1, RCC_APB1SMENR1_USBSMEN) == RESET)
  2024. #endif
  2025. #define __HAL_RCC_LPTIM1_IS_CLK_SLEEP_DISABLED() (READ_BIT(RCC->APB1SMENR1, RCC_APB1SMENR1_LPTIM1SMEN) == RESET)
  2026. #if defined(LPUART1)
  2027. #define __HAL_RCC_LPUART1_IS_CLK_SLEEP_DISABLED() (READ_BIT(RCC->APB1SMENR2, RCC_APB1SMENR2_LPUART1SMEN) == RESET)
  2028. #endif
  2029. #define __HAL_RCC_LPTIM2_IS_CLK_SLEEP_DISABLED() (READ_BIT(RCC->APB1SMENR2, RCC_APB1SMENR2_LPTIM2SMEN) == RESET)
  2030. #define __HAL_RCC_C2TIM2_IS_CLK_SLEEP_ENABLED() (READ_BIT(RCC->C2APB1SMENR1, RCC_C2APB1SMENR1_TIM2SMEN) != RESET)
  2031. #if defined(LCD)
  2032. #define __HAL_RCC_C2LCD_IS_CLK_SLEEP_ENABLED() (READ_BIT(RCC->C2APB1SMENR1, RCC_C2APB1SMENR1_LCDSMEN) != RESET)
  2033. #endif
  2034. #define __HAL_RCC_C2RTCAPB_IS_CLK_SLEEP_ENABLED() (READ_BIT(RCC->C2APB1SMENR1, RCC_C2APB1SMENR1_RTCAPBSMEN) != RESET)
  2035. #if defined(SPI2)
  2036. #define __HAL_RCC_C2SPI2_IS_CLK_SLEEP_ENABLED() (READ_BIT(RCC->C2APB1SMENR1, RCC_C2APB1SMENR1_SPI2SMEN) != RESET)
  2037. #endif
  2038. #define __HAL_RCC_C2I2C1_IS_CLK_SLEEP_ENABLED() (READ_BIT(RCC->C2APB1SMENR1, RCC_C2APB1SMENR1_I2C1SMEN) != RESET)
  2039. #if defined(I2C3)
  2040. #define __HAL_RCC_C2I2C3_IS_CLK_SLEEP_ENABLED() (READ_BIT(RCC->C2APB1SMENR1, RCC_C2APB1SMENR1_I2C3SMEN) != RESET)
  2041. #endif
  2042. #if defined(CRS)
  2043. #define __HAL_RCC_C2CRS_IS_CLK_SLEEP_ENABLED() (READ_BIT(RCC->C2APB1SMENR1, RCC_C2APB1SMENR1_CRSSMEN) != RESET)
  2044. #endif
  2045. #if defined(USB)
  2046. #define __HAL_RCC_C2USB_IS_CLK_SLEEP_ENABLED() (READ_BIT(RCC->C2APB1SMENR1, RCC_C2APB1SMENR1_USBSMEN) != RESET)
  2047. #endif
  2048. #define __HAL_RCC_C2LPTIM1_IS_CLK_SLEEP_ENABLED() (READ_BIT(RCC->C2APB1SMENR1, RCC_C2APB1SMENR1_LPTIM1SMEN) != RESET)
  2049. #if defined(LPUART1)
  2050. #define __HAL_RCC_C2LPUART1_IS_CLK_SLEEP_ENABLED() (READ_BIT(RCC->C2APB1SMENR2, RCC_C2APB1SMENR2_LPUART1SMEN) != RESET)
  2051. #endif
  2052. #define __HAL_RCC_C2LPTIM2_IS_CLK_SLEEP_ENABLED() (READ_BIT(RCC->C2APB1SMENR2, RCC_C2APB1SMENR2_LPTIM2SMEN) != RESET)
  2053. #define __HAL_RCC_C2TIM2_IS_CLK_SLEEP_DISABLED() (READ_BIT(RCC->C2APB1SMENR1, RCC_C2APB1SMENR1_TIM2SMEN) == RESET)
  2054. #if defined(LCD)
  2055. #define __HAL_RCC_C2LCD_IS_CLK_SLEEP_DISABLED() (READ_BIT(RCC->C2APB1SMENR1, RCC_C2APB1SMENR1_LCDSMEN) == RESET)
  2056. #endif
  2057. #define __HAL_RCC_C2RTCAPB_IS_CLK_SLEEP_DISABLED() (READ_BIT(RCC->C2APB1SMENR1, RCC_C2APB1SMENR1_RTCAPBSMEN) == RESET)
  2058. #if defined(SPI2)
  2059. #define __HAL_RCC_C2SPI2_IS_CLK_SLEEP_DISABLED() (READ_BIT(RCC->C2APB1SMENR1, RCC_C2APB1SMENR1_SPI2SMEN) == RESET)
  2060. #endif
  2061. #define __HAL_RCC_C2I2C1_IS_CLK_SLEEP_DISABLED() (READ_BIT(RCC->C2APB1SMENR1, RCC_C2APB1SMENR1_I2C1SMEN) == RESET)
  2062. #if defined(I2C3)
  2063. #define __HAL_RCC_C2I2C3_IS_CLK_SLEEP_DISABLED() (READ_BIT(RCC->C2APB1SMENR1, RCC_C2APB1SMENR1_I2C3SMEN) == RESET)
  2064. #endif
  2065. #if defined(CRS)
  2066. #define __HAL_RCC_C2CRS_IS_CLK_SLEEP_DISABLED() (READ_BIT(RCC->C2APB1SMENR1, RCC_C2APB1SMENR1_CRSSMEN) == RESET)
  2067. #endif
  2068. #if defined(USB)
  2069. #define __HAL_RCC_C2USB_IS_CLK_SLEEP_DISABLED() (READ_BIT(RCC->C2APB1SMENR1, RCC_C2APB1SMENR1_USBSMEN) == RESET)
  2070. #endif
  2071. #define __HAL_RCC_C2LPTIM1_IS_CLK_SLEEP_DISABLED() (READ_BIT(RCC->C2APB1SMENR1, RCC_C2APB1SMENR1_LPTIM1SMEN) == RESET)
  2072. #if defined(LPUART1)
  2073. #define __HAL_RCC_C2LPUART1_IS_CLK_SLEEP_DISABLED() (READ_BIT(RCC->C2APB1SMENR2, RCC_C2APB1SMENR2_LPUART1SMEN) == RESET)
  2074. #endif
  2075. #define __HAL_RCC_C2LPTIM2_IS_CLK_SLEEP_DISABLED() (READ_BIT(RCC->C2APB1SMENR2, RCC_C2APB1SMENR2_LPTIM2SMEN) == RESET)
  2076. /**
  2077. * @}
  2078. */
  2079. /** @defgroup RCC_APB2_Clock_Sleep_Enable_Disable_Status APB2 Peripheral Clock Sleep Enabled or Disabled Status
  2080. * @brief Check whether the APB2 peripheral clock during Low Power (Sleep) mode is enabled or not.
  2081. * @note Peripheral clock gating in SLEEP mode can be used to further reduce
  2082. * power consumption.
  2083. * @note After wakeup from SLEEP mode, the peripheral clock is enabled again.
  2084. * @note By default, all peripheral clocks are enabled during SLEEP mode.
  2085. * @{
  2086. */
  2087. #define __HAL_RCC_TIM1_IS_CLK_SLEEP_ENABLED() (READ_BIT(RCC->APB2SMENR, RCC_APB2SMENR_TIM1SMEN) != RESET)
  2088. #define __HAL_RCC_SPI1_IS_CLK_SLEEP_ENABLED() (READ_BIT(RCC->APB2SMENR, RCC_APB2SMENR_SPI1SMEN) != RESET)
  2089. #define __HAL_RCC_USART1_IS_CLK_SLEEP_ENABLED() (READ_BIT(RCC->APB2SMENR, RCC_APB2SMENR_USART1SMEN) != RESET)
  2090. #define __HAL_RCC_TIM16_IS_CLK_SLEEP_ENABLED() (READ_BIT(RCC->APB2SMENR, RCC_APB2SMENR_TIM16SMEN) != RESET)
  2091. #define __HAL_RCC_TIM17_IS_CLK_SLEEP_ENABLED() (READ_BIT(RCC->APB2SMENR, RCC_APB2SMENR_TIM17SMEN) != RESET)
  2092. #if defined(SAI1)
  2093. #define __HAL_RCC_SAI1_IS_CLK_SLEEP_ENABLED() (READ_BIT(RCC->APB2SMENR, RCC_APB2SMENR_SAI1SMEN) != RESET)
  2094. #endif
  2095. #define __HAL_RCC_TIM1_IS_CLK_SLEEP_DISABLED() (READ_BIT(RCC->APB2SMENR, RCC_APB2SMENR_TIM1SMEN) == RESET)
  2096. #define __HAL_RCC_SPI1_IS_CLK_SLEEP_DISABLED() (READ_BIT(RCC->APB2SMENR, RCC_APB2SMENR_SPI1SMEN) == RESET)
  2097. #define __HAL_RCC_USART1_IS_CLK_SLEEP_DISABLED() (READ_BIT(RCC->APB2SMENR, RCC_APB2SMENR_USART1SMEN) == RESET)
  2098. #define __HAL_RCC_TIM16_IS_CLK_SLEEP_DISABLED() (READ_BIT(RCC->APB2SMENR, RCC_APB2SMENR_TIM16SMEN) == RESET)
  2099. #define __HAL_RCC_TIM17_IS_CLK_SLEEP_DISABLED() (READ_BIT(RCC->APB2SMENR, RCC_APB2SMENR_TIM17SMEN) == RESET)
  2100. #if defined(SAI1)
  2101. #define __HAL_RCC_SAI1_IS_CLK_SLEEP_DISABLED() (READ_BIT(RCC->APB2SMENR, RCC_APB2SMENR_SAI1SMEN) == RESET)
  2102. #endif
  2103. #define __HAL_RCC_C2TIM1_IS_CLK_SLEEP_ENABLED() (READ_BIT(RCC->C2APB2SMENR, RCC_C2APB2SMENR_TIM1SMEN) != RESET)
  2104. #define __HAL_RCC_C2SPI1_IS_CLK_SLEEP_ENABLED() (READ_BIT(RCC->C2APB2SMENR, RCC_C2APB2SMENR_SPI1SMEN) != RESET)
  2105. #define __HAL_RCC_C2USART1_IS_CLK_SLEEP_ENABLED() (READ_BIT(RCC->C2APB2SMENR, RCC_C2APB2SMENR_USART1SMEN) != RESET)
  2106. #define __HAL_RCC_C2TIM16_IS_CLK_SLEEP_ENABLED() (READ_BIT(RCC->C2APB2SMENR, RCC_C2APB2SMENR_TIM16SMEN) != RESET)
  2107. #define __HAL_RCC_C2TIM17_IS_CLK_SLEEP_ENABLED() (READ_BIT(RCC->C2APB2SMENR, RCC_C2APB2SMENR_TIM17SMEN) != RESET)
  2108. #if defined(SAI1)
  2109. #define __HAL_RCC_C2SAI1_IS_CLK_SLEEP_ENABLED() (READ_BIT(RCC->C2APB2SMENR, RCC_C2APB2SMENR_SAI1SMEN) != RESET)
  2110. #endif
  2111. #define __HAL_RCC_C2TIM1_IS_CLK_SLEEP_DISABLED() (READ_BIT(RCC->C2APB2SMENR, RCC_C2APB2SMENR_TIM1SMEN) == RESET)
  2112. #define __HAL_RCC_C2SPI1_IS_CLK_SLEEP_DISABLED() (READ_BIT(RCC->C2APB2SMENR, RCC_C2APB2SMENR_SPI1SMEN) == RESET)
  2113. #define __HAL_RCC_C2USART1_IS_CLK_SLEEP_DISABLED() (READ_BIT(RCC->C2APB2SMENR, RCC_C2APB2SMENR_USART1SMEN) == RESET)
  2114. #define __HAL_RCC_C2TIM16_IS_CLK_SLEEP_DISABLED() (READ_BIT(RCC->C2APB2SMENR, RCC_C2APB2SMENR_TIM16SMEN) == RESET)
  2115. #define __HAL_RCC_C2TIM17_IS_CLK_SLEEP_DISABLED() (READ_BIT(RCC->C2APB2SMENR, RCC_C2APB2SMENR_TIM17SMEN) == RESET)
  2116. #if defined(SAI1)
  2117. #define __HAL_RCC_C2SAI1_IS_CLK_SLEEP_DISABLED() (READ_BIT(RCC->C2APB2SMENR, RCC_C2APB2SMENR_SAI1SMEN) == RESET)
  2118. #endif
  2119. /**
  2120. * @}
  2121. */
  2122. /** @defgroup RCC_C2APB3_Clock_Sleep_Enable_Disable APB3 Peripheral Clock Sleep Enable Disable
  2123. * @brief Enable or disable the APB3 peripheral clock during Low Power (Sleep) mode.
  2124. * @note Peripheral clock gating in SLEEP mode can be used to further reduce
  2125. * power consumption.
  2126. * @note After wakeup from SLEEP mode, the peripheral clock is enabled again.
  2127. * @note By default, all peripheral clocks are enabled during SLEEP mode.
  2128. * @{
  2129. */
  2130. #define __HAL_RCC_C2BLE_CLK_SLEEP_ENABLE() LL_C2_APB3_GRP1_EnableClockSleep(LL_C2_APB3_GRP1_PERIPH_BLE)
  2131. #define __HAL_RCC_C2802_CLK_SLEEP_ENABLE() LL_C2_APB3_GRP1_EnableClockSleep(LL_C2_APB3_GRP1_PERIPH_802)
  2132. #define __HAL_RCC_C2BLE_CLK_SLEEP_DISABLE() LL_C2_APB3_GRP1_DisableClockSleep(LL_C2_APB3_GRP1_PERIPH_BLE)
  2133. #define __HAL_RCC_C2802_CLK_SLEEP_DISABLE() LL_C2_APB3_GRP1_DisableClockSleep(LL_C2_APB3_GRP1_PERIPH_802)
  2134. /**
  2135. * @}
  2136. */
  2137. /** @defgroup RCC_C2APB3_Clock_Sleep_Enable_Disable_Status APB3 Peripheral Clock Sleep Enabled or Disabled Status
  2138. * @brief Check whether the APB3 peripheral clock during Low Power (Sleep) mode is enabled or not.
  2139. * @note Peripheral clock gating in SLEEP mode can be used to further reduce
  2140. * power consumption.
  2141. * @note After wakeup from SLEEP mode, the peripheral clock is enabled again.
  2142. * @note By default, all peripheral clocks are enabled during SLEEP mode.
  2143. * @{
  2144. */
  2145. #define __HAL_RCC_C2BLE_IS_CLK_SLEEP_ENABLED() (READ_BIT(RCC->C2APB3SMENR, RCC_C2APB3SMENR_BLESMEN) != RESET)
  2146. #define __HAL_RCC_C2802_IS_CLK_SLEEP_ENABLED() (READ_BIT(RCC->C2APB3SMENR, RCC_C2APB3SMENR_802SMEN) != RESET)
  2147. #define __HAL_RCC_C2BLE_IS_CLK_SLEEP_DISABLED() (READ_BIT(RCC->C2APB3SMENR, RCC_C2APB3SMENR_BLESMEN) == RESET)
  2148. #define __HAL_RCC_C2802_IS_CLK_SLEEP_DISABLED() (READ_BIT(RCC->C2APB3SMENR, RCC_C2APB3SMENR_802SMEN) == RESET)
  2149. /**
  2150. * @}
  2151. */
  2152. /** @defgroup RCC_Backup_Domain_Reset RCC Backup Domain Reset
  2153. * @{
  2154. */
  2155. /** @brief Macros to force or release the Backup domain reset.
  2156. * @note This function resets the RTC peripheral (including the backup registers)
  2157. * and the RTC clock source selection in RCC_CSR register.
  2158. * @note The BKPSRAM is not affected by this reset.
  2159. * @retval None
  2160. */
  2161. #define __HAL_RCC_BACKUPRESET_FORCE() LL_RCC_ForceBackupDomainReset()
  2162. #define __HAL_RCC_BACKUPRESET_RELEASE() LL_RCC_ReleaseBackupDomainReset()
  2163. /**
  2164. * @}
  2165. */
  2166. /** @defgroup RCC_RTC_Clock_Configuration RCC RTC Clock Configuration
  2167. * @{
  2168. */
  2169. /** @brief Macros to enable or disable the RTC clock.
  2170. * @note As the RTC is in the Backup domain and write access is denied to
  2171. * this domain after reset, you have to enable write access using
  2172. * HAL_PWR_EnableBkUpAccess() function before to configure the RTC
  2173. * (to be done once after reset).
  2174. * @note These macros must be used after the RTC clock source was selected.
  2175. * @retval None
  2176. */
  2177. #define __HAL_RCC_RTC_ENABLE() LL_RCC_EnableRTC()
  2178. #define __HAL_RCC_RTC_DISABLE() LL_RCC_DisableRTC()
  2179. /**
  2180. * @}
  2181. */
  2182. /** @brief Macros to enable the Internal High Speed oscillator (HSI).
  2183. * @note The HSI is stopped by hardware when entering STOP, STANDBY or SHUTDOWN modes.
  2184. * It is enabled by hardware to force the HSI oscillator ON when STOPWUCK=1
  2185. * or HSIASFS = 1 when leaving Stop modes, or in case of failure of the HSE
  2186. * crystal oscillator and Security System CSS is enabled.
  2187. * @note After enabling the HSI, the application software should wait on HSIRDY
  2188. * flag to be set indicating that HSI clock is stable and can be used as
  2189. * system clock source.
  2190. * @retval None
  2191. */
  2192. #define __HAL_RCC_HSI_ENABLE() LL_RCC_HSI_Enable()
  2193. /** @brief Macro to disable the Internal High Speed oscillator (HSI).
  2194. * @note HSI can not be stopped if it is used as system clock source. In this case,
  2195. * you have to select another source of the system clock then stop the HSI.
  2196. * @note When the HSI is stopped, HSIRDY flag goes low after 6 HSI oscillator
  2197. * clock cycles.
  2198. * @retval None
  2199. */
  2200. #define __HAL_RCC_HSI_DISABLE() LL_RCC_HSI_Disable()
  2201. /** @brief Macro to adjust the Internal High Speed oscillator (HSI) calibration value.
  2202. * @note The calibration is used to compensate for the variations in voltage
  2203. * and temperature that influence the frequency of the internal HSI RC.
  2204. * @param __HSICALIBRATIONVALUE__ specifies the calibration trimming value
  2205. * (default is RCC_HSICALIBRATION_DEFAULT).
  2206. * This parameter must be a number between Min_data=0 and Max_Data=127.
  2207. * @retval None
  2208. */
  2209. #define __HAL_RCC_HSI_CALIBRATIONVALUE_ADJUST(__HSICALIBRATIONVALUE__) LL_RCC_HSI_SetCalibTrimming(__HSICALIBRATIONVALUE__)
  2210. /**
  2211. * @brief Macros to enable or disable the wakeup the Internal High Speed oscillator (HSI)
  2212. * in parallel to the Internal Multi Speed oscillator (MSI) used at system wakeup.
  2213. * @note The enable of this function has not effect on the HSION bit.
  2214. * This parameter can be: ENABLE or DISABLE.
  2215. * @retval None
  2216. */
  2217. #define __HAL_RCC_HSIAUTOMATIC_START_ENABLE() LL_RCC_HSI_EnableAutoFromStop()
  2218. #define __HAL_RCC_HSIAUTOMATIC_START_DISABLE() LL_RCC_HSI_DisableAutoFromStop()
  2219. /**
  2220. * @brief Macros to enable or disable the force of the Internal High Speed oscillator (HSI)
  2221. * in STOP mode to be quickly available as kernel clock for USARTs and I2Cs.
  2222. * @note Keeping the HSI ON in STOP mode allows to avoid slowing down the communication
  2223. * speed because of the HSI startup time.
  2224. * @note The enable of this function has not effect on the HSION bit.
  2225. * @retval None
  2226. */
  2227. #define __HAL_RCC_HSISTOP_ENABLE() LL_RCC_HSI_EnableInStopMode()
  2228. #define __HAL_RCC_HSISTOP_DISABLE() LL_RCC_HSI_DisableInStopMode()
  2229. /**
  2230. * @brief Macros to enable or disable the Internal Multi Speed oscillator (MSI).
  2231. * @note The MSI is stopped by hardware when entering STOP and STANDBY modes.
  2232. * It is used (enabled by hardware) as system clock source after
  2233. * startup from Reset, wakeup from STOP and STANDBY mode, or in case
  2234. * of failure of the HSE used directly or indirectly as system clock
  2235. * (if the Clock Security System CSS is enabled).
  2236. * @note MSI can not be stopped if it is used as system clock source.
  2237. * In this case, you have to select another source of the system
  2238. * clock then stop the MSI.
  2239. * @note After enabling the MSI, the application software should wait on
  2240. * MSIRDY flag to be set indicating that MSI clock is stable and can
  2241. * be used as system clock source.
  2242. * @note When the MSI is stopped, MSIRDY flag goes low after 6 MSI oscillator
  2243. * clock cycles.
  2244. * @retval None
  2245. */
  2246. #define __HAL_RCC_MSI_ENABLE() LL_RCC_MSI_Enable()
  2247. #define __HAL_RCC_MSI_DISABLE() LL_RCC_MSI_Disable()
  2248. /** @brief Macro to adjust the Internal Multi Speed oscillator (MSI) calibration value.
  2249. * @note The calibration is used to compensate for the variations in voltage
  2250. * and temperature that influence the frequency of the internal MSI RC.
  2251. * Refer to the Application Note AN3300 for more details on how to
  2252. * calibrate the MSI.
  2253. * @param __MSICALIBRATIONVALUE__ specifies the calibration trimming value
  2254. * (default is @ref RCC_MSICALIBRATION_DEFAULT).
  2255. * This parameter must be a number between 0 and 255.
  2256. * @retval None
  2257. */
  2258. #define __HAL_RCC_MSI_CALIBRATIONVALUE_ADJUST(__MSICALIBRATIONVALUE__) LL_RCC_MSI_SetCalibTrimming(__MSICALIBRATIONVALUE__)
  2259. /**
  2260. * @brief Macro configures the Internal Multi Speed oscillator (MSI) clock range in run mode
  2261. * @note After restart from Reset , the MSI clock is around 4 MHz.
  2262. * After stop the startup clock can be MSI (at any of its possible
  2263. * frequencies, the one that was used before entering stop mode) or HSI.
  2264. * After Standby its frequency can be selected between 4 possible values
  2265. * (1, 2, 4 or 8 MHz).
  2266. * @note MSIRANGE can be modified when MSI is OFF (MSION=0) or when MSI is ready
  2267. * (MSIRDY=1).
  2268. * @note The MSI clock range after reset can be modified on the fly.
  2269. * @param __MSIRANGEVALUE__ specifies the MSI clock range.
  2270. * This parameter must be one of the following values:
  2271. * @arg @ref RCC_MSIRANGE_0 MSI clock is around 100 KHz
  2272. * @arg @ref RCC_MSIRANGE_1 MSI clock is around 200 KHz
  2273. * @arg @ref RCC_MSIRANGE_2 MSI clock is around 400 KHz
  2274. * @arg @ref RCC_MSIRANGE_3 MSI clock is around 800 KHz
  2275. * @arg @ref RCC_MSIRANGE_4 MSI clock is around 1 MHz
  2276. * @arg @ref RCC_MSIRANGE_5 MSI clock is around 2MHz
  2277. * @arg @ref RCC_MSIRANGE_6 MSI clock is around 4MHz (default after Reset)
  2278. * @arg @ref RCC_MSIRANGE_7 MSI clock is around 8 MHz
  2279. * @arg @ref RCC_MSIRANGE_8 MSI clock is around 16 MHz
  2280. * @arg @ref RCC_MSIRANGE_9 MSI clock is around 24 MHz
  2281. * @arg @ref RCC_MSIRANGE_10 MSI clock is around 32 MHz
  2282. * @arg @ref RCC_MSIRANGE_11 MSI clock is around 48 MHz
  2283. * @retval None
  2284. */
  2285. #define __HAL_RCC_MSI_RANGE_CONFIG(__MSIRANGEVALUE__) LL_RCC_MSI_SetRange(__MSIRANGEVALUE__)
  2286. /** @brief Macro to get the Internal Multi Speed oscillator (MSI) clock range in run mode
  2287. * @retval MSI clock range.
  2288. * This parameter must be one of the following values:
  2289. * @arg @ref RCC_MSIRANGE_0 MSI clock is around 100 KHz
  2290. * @arg @ref RCC_MSIRANGE_1 MSI clock is around 200 KHz
  2291. * @arg @ref RCC_MSIRANGE_2 MSI clock is around 400 KHz
  2292. * @arg @ref RCC_MSIRANGE_3 MSI clock is around 800 KHz
  2293. * @arg @ref RCC_MSIRANGE_4 MSI clock is around 1 MHz
  2294. * @arg @ref RCC_MSIRANGE_5 MSI clock is around 2 MHz
  2295. * @arg @ref RCC_MSIRANGE_6 MSI clock is around 4 MHz (default after Reset)
  2296. * @arg @ref RCC_MSIRANGE_7 MSI clock is around 8 MHz
  2297. * @arg @ref RCC_MSIRANGE_8 MSI clock is around 16 MHz
  2298. * @arg @ref RCC_MSIRANGE_9 MSI clock is around 24 MHz
  2299. * @arg @ref RCC_MSIRANGE_10 MSI clock is around 32 MHz
  2300. * @arg @ref RCC_MSIRANGE_11 MSI clock is around 48 MHz
  2301. */
  2302. #define __HAL_RCC_GET_MSI_RANGE() LL_RCC_MSI_GetRange()
  2303. /** @brief Macros to enable or disable the Internal Low Speed oscillator (LSI1).
  2304. * @note After enabling the LSI1, the application software should wait on
  2305. * LSI1RDY flag to be set indicating that LSI1 clock is stable and can
  2306. * be used to clock the IWDG and/or the RTC.
  2307. * @retval None
  2308. */
  2309. #define __HAL_RCC_LSI1_ENABLE() LL_RCC_LSI1_Enable()
  2310. #define __HAL_RCC_LSI1_DISABLE() LL_RCC_LSI1_Disable()
  2311. /** @brief Macros to enable or disable the Internal Low Speed oscillator (LSI2).
  2312. * @note After enabling the LSI2, the application software should wait on
  2313. * LSI2RDY flag to be set indicating that LSI2 clock is stable and can
  2314. * be used to clock the IWDG and/or the RTC.
  2315. * @retval None
  2316. */
  2317. #define __HAL_RCC_LSI2_ENABLE() LL_RCC_LSI2_Enable()
  2318. #define __HAL_RCC_LSI2_DISABLE() LL_RCC_LSI2_Disable()
  2319. /** @brief Macro to adjust the Internal Low Speed oscillator (LSI2) calibration value.
  2320. * @note The calibration is used to compensate for the variations in voltage
  2321. * and temperature that influence the frequency of the internal HSI RC.
  2322. * @param __LSI2TRIMMINGVALUE__ specifies the calibration trimming value
  2323. * This parameter must be a number between Min_data=0 and Max_Data=15.
  2324. * @retval None
  2325. */
  2326. #define __HAL_RCC_LSI2_CALIBRATIONVALUE_ADJUST(__LSI2TRIMMINGVALUE__) LL_RCC_LSI2_SetTrimming(__LSI2TRIMMINGVALUE__)
  2327. /**
  2328. * @brief Macro to configure the External High Speed oscillator (HSE).
  2329. * @note Transition HSE Bypass to HSE On and HSE On to HSE Bypass are not
  2330. * supported by this macro. User should request a transition to HSE Off
  2331. * first and then HSE On or HSE Bypass.
  2332. * @note After enabling the HSE (RCC_HSE_ON or RCC_HSE_Bypass), the application
  2333. * software should wait on HSERDY flag to be set indicating that HSE clock
  2334. * is stable and can be used to clock the PLL and/or system clock.
  2335. * @note HSE state can not be changed if it is used directly or through the
  2336. * PLL as system clock. In this case, you have to select another source
  2337. * of the system clock then change the HSE state (ex. disable it).
  2338. * @note The HSE is stopped by hardware when entering STOP and STANDBY modes.
  2339. * @note This function reset the CSSON bit, so if the clock security system(CSS)
  2340. * was previously enabled you have to enable it again after calling this
  2341. * function.
  2342. * @param __STATE__ specifies the new state of the HSE.
  2343. * This parameter can be one of the following values:
  2344. * @arg @ref RCC_HSE_OFF Turn OFF the HSE oscillator, HSERDY flag goes low after
  2345. * 6 HSE oscillator clock cycles.
  2346. * @arg @ref RCC_HSE_ON Turn ON the HSE oscillator.
  2347. * @arg @ref RCC_HSE_BYPASS HSE oscillator bypassed with external clock.
  2348. * @retval None
  2349. */
  2350. #define __HAL_RCC_HSE_CONFIG(__STATE__) \
  2351. do { \
  2352. if((__STATE__) == RCC_HSE_ON) \
  2353. { \
  2354. LL_RCC_HSE_Enable(); \
  2355. } \
  2356. else if((__STATE__) == RCC_HSE_BYPASS) \
  2357. { \
  2358. LL_RCC_HSE_EnableBypass(); \
  2359. LL_RCC_HSE_Enable(); \
  2360. } \
  2361. else \
  2362. { \
  2363. LL_RCC_HSE_Disable(); \
  2364. LL_RCC_HSE_DisableBypass(); \
  2365. } \
  2366. } while(0U)
  2367. /** @brief Macros to enable or disable the HSE Prescaler
  2368. * @note HSE div2 could be used as Sysclk or PLL entry in Range2
  2369. * @retval None
  2370. */
  2371. #define __HAL_RCC_HSE_DIV2_ENABLE() LL_RCC_HSE_EnableDiv2()
  2372. #define __HAL_RCC_HSE_DIV2_DISABLE() LL_RCC_HSE_DisableDiv2()
  2373. /**
  2374. * @brief Macro to configure the External Low Speed oscillator (LSE).
  2375. * @note Transitions LSE Bypass to LSE On and LSE On to LSE Bypass are not
  2376. * supported by this macro. User should request a transition to LSE Off
  2377. * first and then LSE On or LSE Bypass.
  2378. * @note As the LSE is in the Backup domain and write access is denied to
  2379. * this domain after reset, you have to enable write access using
  2380. * HAL_PWR_EnableBkUpAccess() function before to configure the LSE
  2381. * (to be done once after reset).
  2382. * @note After enabling the LSE (RCC_LSE_ON or RCC_LSE_BYPASS), the application
  2383. * software should wait on LSERDY flag to be set indicating that LSE clock
  2384. * is stable and can be used to clock the RTC.
  2385. * @param __STATE__ specifies the new state of the LSE.
  2386. * This parameter can be one of the following values:
  2387. * @arg @ref RCC_LSE_OFF Turn OFF the LSE oscillator, LSERDY flag goes low after
  2388. * 6 LSE oscillator clock cycles.
  2389. * @arg @ref RCC_LSE_ON Turn ON the LSE oscillator.
  2390. * @arg @ref RCC_LSE_BYPASS LSE oscillator bypassed with external clock.
  2391. * @retval None
  2392. */
  2393. #define __HAL_RCC_LSE_CONFIG(__STATE__) \
  2394. do { \
  2395. if((__STATE__) == RCC_LSE_ON) \
  2396. { \
  2397. LL_RCC_LSE_Enable(); \
  2398. } \
  2399. else if((__STATE__) == RCC_LSE_BYPASS) \
  2400. { \
  2401. LL_RCC_LSE_EnableBypass(); \
  2402. LL_RCC_LSE_Enable(); \
  2403. } \
  2404. else \
  2405. { \
  2406. LL_RCC_LSE_Disable(); \
  2407. LL_RCC_LSE_DisableBypass(); \
  2408. } \
  2409. } while(0U)
  2410. /** @brief Macros to enable or disable the Internal High Speed 48MHz oscillator (HSI48).
  2411. * @note The HSI48 is stopped by hardware when entering STOP and STANDBY modes.
  2412. * @note After enabling the HSI48, the application software should wait on HSI48RDY
  2413. * flag to be set indicating that HSI48 clock is stable.
  2414. * This parameter can be: ENABLE or DISABLE.
  2415. * @retval None
  2416. */
  2417. #define __HAL_RCC_HSI48_ENABLE() LL_RCC_HSI48_Enable()
  2418. #define __HAL_RCC_HSI48_DISABLE() LL_RCC_HSI48_Disable()
  2419. /** @brief Macros to configure HSE sense amplifier threshold.
  2420. * @note to configure HSE sense amplifier, first disable HSE
  2421. * using @ref __HAL_RCC_HSE_CONFIG(RCC_HSE_OFF) macro.
  2422. *
  2423. * @param __HSE_AMPTHRES__ specifies the HSE sense amplifier threshold.
  2424. * This parameter can be one of the following values:
  2425. * @arg @ref RCC_HSEAMPTHRESHOLD_1_2 HSE bias current factor 1/2.
  2426. * @arg @ref RCC_HSEAMPTHRESHOLD_3_4 HSE bias current factor 3/4.
  2427. * @retval None
  2428. */
  2429. #define __HAL_RCC_HSE_AMPCONFIG(__HSE_AMPTHRES__) LL_RCC_HSE_SetSenseAmplifier(__HSE_AMPTHRES__)
  2430. /** @brief Macros to configure HSE current control.
  2431. * @note to configure HSE current control, first disable HSE
  2432. * using @ref __HAL_RCC_HSE_CONFIG(RCC_HSE_OFF) macro.
  2433. *
  2434. * @param __HSE_CURRENTMAX__ specifies the HSE current max limit.
  2435. * This parameter can be one of the following values:
  2436. * @arg @ref RCC_HSE_CURRENTMAX_0 HSE current max limit 0.18 mA/V.
  2437. * @arg @ref RCC_HSE_CURRENTMAX_1 HSE current max limit 0.57 mA/V.
  2438. * @arg @ref RCC_HSE_CURRENTMAX_2 HSE current max limit 0.78 mA/V.
  2439. * @arg @ref RCC_HSE_CURRENTMAX_3 HSE current max limit 1.13 mA/V.
  2440. * @arg @ref RCC_HSE_CURRENTMAX_4 HSE current max limit 0.61 mA/V.
  2441. * @arg @ref RCC_HSE_CURRENTMAX_5 HSE current max limit 1.65 mA/V.
  2442. * @arg @ref RCC_HSE_CURRENTMAX_6 HSE current max limit 2.12 mA/V.
  2443. * @arg @ref RCC_HSE_CURRENTMAX_7 HSE current max limit 2.84 mA/V.
  2444. * @retval None
  2445. */
  2446. #define __HAL_RCC_HSE_CURRENTCONFIG(__HSE_CURRENTMAX__) LL_RCC_HSE_SetCurrentControl(__HSE_CURRENTMAX__)
  2447. /** @brief Macros to configure HSE capacitor tuning.
  2448. * @note to configure HSE current control, first disable HSE
  2449. * using __HAL_RCC_HSE_CONFIG(RCC_HSE_OFF) macro.
  2450. *
  2451. * @param __HSE_LOAD_CAPACITANCE__ specifies the HSE capacitor value.
  2452. * This Value Between Min_Data = 0 and Max_Data = 63
  2453. * @retval None
  2454. */
  2455. #define __HAL_RCC_HSE_CAPACITORTUNING(__HSE_LOAD_CAPACITANCE__) LL_RCC_HSE_SetCapacitorTuning(__HSE_LOAD_CAPACITANCE__)
  2456. /** @brief Macros to configure the RTC clock (RTCCLK).
  2457. * @note As the RTC clock configuration bits are in the Backup domain and write
  2458. * access is denied to this domain after reset, you have to enable write
  2459. * access using the Power Backup Access macro before to configure
  2460. * the RTC clock source (to be done once after reset).
  2461. * @note Once the RTC clock is configured it cannot be changed unless the
  2462. * Backup domain is reset using @ref __HAL_RCC_BACKUPRESET_FORCE() macro, or by
  2463. * a Power On Reset (POR).
  2464. *
  2465. * @param __RTC_CLKSOURCE__ specifies the RTC clock source.
  2466. * This parameter can be one of the following values:*
  2467. * @arg @ref RCC_RTCCLKSOURCE_NONE none clock selected as RTC clock.
  2468. * @arg @ref RCC_RTCCLKSOURCE_LSE LSE selected as RTC clock.
  2469. * @arg @ref RCC_RTCCLKSOURCE_LSI LSI selected as RTC clock.
  2470. * @arg @ref RCC_RTCCLKSOURCE_HSE_DIV32 HSE clock divided by 32 selected
  2471. *
  2472. * @note If the LSE or LSI is used as RTC clock source, the RTC continues to
  2473. * work in STOP and STANDBY modes, and can be used as wakeup source.
  2474. * However, when the HSE clock is used as RTC clock source, the RTC
  2475. * cannot be used in STOP and STANDBY modes.
  2476. * @note The maximum input clock frequency for RTC is 1MHz (when using HSE as
  2477. * RTC clock source).
  2478. * @retval None
  2479. */
  2480. #define __HAL_RCC_RTC_CONFIG(__RTC_CLKSOURCE__) LL_RCC_SetRTCClockSource(__RTC_CLKSOURCE__)
  2481. /** @brief Macro to get the RTC clock source.
  2482. * @retval The returned value can be one of the following:
  2483. * @arg @ref RCC_RTCCLKSOURCE_NONE none clock selected as RTC clock.
  2484. * @arg @ref RCC_RTCCLKSOURCE_LSE LSE selected as RTC clock.
  2485. * @arg @ref RCC_RTCCLKSOURCE_LSI LSI selected as RTC clock.
  2486. * @arg @ref RCC_RTCCLKSOURCE_HSE_DIV32 HSE clock divided by 32 selected
  2487. */
  2488. #define __HAL_RCC_GET_RTC_SOURCE() LL_RCC_GetRTCClockSource()
  2489. /** @brief Macros to enable or disable the main PLL.
  2490. * @note After enabling the main PLL, the application software should wait on
  2491. * PLLRDY flag to be set indicating that PLL clock is stable and can
  2492. * be used as system clock source.
  2493. * @note The main PLL can not be disabled if it is used as system clock source
  2494. * @note The main PLL is disabled by hardware when entering STOP and STANDBY modes.
  2495. * @retval None
  2496. */
  2497. #define __HAL_RCC_PLL_ENABLE() LL_RCC_PLL_Enable()
  2498. #define __HAL_RCC_PLL_DISABLE() LL_RCC_PLL_Disable()
  2499. /** @brief Macro to configure the PLL clock source.
  2500. * @note This function must be used only when the main PLL is disabled.
  2501. * @param __PLLSOURCE__ specifies the PLL entry clock source.
  2502. * This parameter can be one of the following values:
  2503. * @arg @ref RCC_PLLSOURCE_NONE No clock selected as PLL clock entry
  2504. * @arg @ref RCC_PLLSOURCE_MSI MSI oscillator clock selected as PLL clock entry
  2505. * @arg @ref RCC_PLLSOURCE_HSI HSI oscillator clock selected as PLL clock entry
  2506. * @arg @ref RCC_PLLSOURCE_HSE HSE oscillator clock selected as PLL clock entry
  2507. * @note This clock source is common for the main PLL and audio PLL (PLL and PLLSAI1).
  2508. * @retval None
  2509. *
  2510. */
  2511. #define __HAL_RCC_PLL_PLLSOURCE_CONFIG(__PLLSOURCE__) \
  2512. MODIFY_REG(RCC->PLLCFGR, RCC_PLLCFGR_PLLSRC, (__PLLSOURCE__))
  2513. /** @brief Macro to configure the PLL multiplication factor.
  2514. * @note This function must be used only when the main PLL is disabled.
  2515. * @param __PLLM__ specifies the division factor for PLL VCO input clock
  2516. * This parameter must be a value of @ref RCC_PLLM_Clock_Divider.
  2517. * @note You have to set the PLLM parameter correctly to ensure that the VCO input
  2518. * frequency ranges from 4 to 16 MHz. It is recommended to select a frequency
  2519. * of 16 MHz to limit PLL jitter.
  2520. * @retval None
  2521. *
  2522. */
  2523. #define __HAL_RCC_PLL_PLLM_CONFIG(__PLLM__) \
  2524. MODIFY_REG(RCC->PLLCFGR, RCC_PLLCFGR_PLLM, (__PLLM__))
  2525. /**
  2526. * @brief Macro to configure the main PLL clock source, multiplication and division factors.
  2527. * @note This function must be used only when the main PLL is disabled.
  2528. *
  2529. * @param __PLLSOURCE__ specifies the PLL entry clock source.
  2530. * This parameter can be one of the following values:
  2531. * @arg @ref RCC_PLLSOURCE_NONE No clock selected as PLL clock entry
  2532. * @arg @ref RCC_PLLSOURCE_MSI MSI oscillator clock selected as PLL clock entry
  2533. * @arg @ref RCC_PLLSOURCE_HSI HSI oscillator clock selected as PLL clock entry
  2534. * @arg @ref RCC_PLLSOURCE_HSE HSE oscillator clock selected as PLL clock entry
  2535. * @note This clock source is common for the main PLL and audio PLL (PLL and PLLSAI1).
  2536. *
  2537. * @param __PLLM__ specifies the division factor for PLL VCO input clock.
  2538. * This parameter must be a value of @ref RCC_PLLM_Clock_Divider.
  2539. * @note You have to set the PLLM parameter correctly to ensure that the VCO input
  2540. * frequency ranges from 2.66 to 16 MHz. It is recommended to select a frequency
  2541. * of 16 MHz to limit PLL jitter.
  2542. *
  2543. * @param __PLLN__ specifies the multiplication factor for PLL VCO output clock.
  2544. * This parameter must be a number between 6 and 127.
  2545. * @note You have to set the PLLN parameter correctly to ensure that the VCO
  2546. * output frequency is between 96 and 344 MHz.
  2547. *
  2548. * @param __PLLP__ specifies the division factor for ADC and SAI1 clock.
  2549. * This parameter must be a value of @ref RCC_PLLP_Clock_Divider.
  2550. *
  2551. * @param __PLLQ__ specifies the division factor for USB and RNG clocks.
  2552. * This parameter must be a value of @ref RCC_PLLQ_Clock_Divider
  2553. * @note If the USB FS is used in your application, you have to set the
  2554. * PLLQ parameter correctly to have 48 MHz clock for the USB. However,
  2555. * the RNG need a frequency lower than or equal to 48 MHz to work
  2556. * correctly.
  2557. *
  2558. * @param __PLLR__ specifies the division factor for the main system clock.
  2559. * This parameter must be a value of @ref RCC_PLLR_Clock_Divider
  2560. * @note You have to set the PLLR parameter correctly to not exceed 48 MHZ.
  2561. * @retval None
  2562. */
  2563. #define __HAL_RCC_PLL_CONFIG(__PLLSOURCE__, __PLLM__, __PLLN__, __PLLP__, __PLLQ__,__PLLR__ ) \
  2564. MODIFY_REG( RCC->PLLCFGR, \
  2565. (RCC_PLLCFGR_PLLSRC | \
  2566. RCC_PLLCFGR_PLLM | \
  2567. RCC_PLLCFGR_PLLN | \
  2568. RCC_PLLCFGR_PLLP | \
  2569. RCC_PLLCFGR_PLLQ | \
  2570. RCC_PLLCFGR_PLLR), \
  2571. ((uint32_t) (__PLLSOURCE__) | \
  2572. (uint32_t) (__PLLM__) | \
  2573. (uint32_t) ((__PLLN__) << RCC_PLLCFGR_PLLN_Pos) | \
  2574. (uint32_t) (__PLLP__) | \
  2575. (uint32_t) (__PLLQ__) | \
  2576. (uint32_t) (__PLLR__)))
  2577. /** @brief Macro to get the oscillator used as PLL clock source.
  2578. * @retval The oscillator used as PLL clock source. The returned value can be one
  2579. * of the following:
  2580. * @arg @ref RCC_PLLSOURCE_NONE No oscillator is used as PLL clock source.
  2581. * @arg @ref RCC_PLLSOURCE_MSI MSI oscillator is used as PLL clock source.
  2582. * @arg @ref RCC_PLLSOURCE_HSI HSI oscillator is used as PLL clock source.
  2583. * @arg @ref RCC_PLLSOURCE_HSE HSE oscillator is used as PLL clock source.
  2584. */
  2585. #define __HAL_RCC_GET_PLL_OSCSOURCE() LL_RCC_PLL_GetMainSource()
  2586. /**
  2587. * @brief Enable or disable each clock output (RCC_PLL_SYSCLK, RCC_PLL_USBCLK, RCC_PLL_SAI1CLK)
  2588. * @note Enabling/disabling clock outputs RCC_PLL_SAI1CLK and RCC_PLL_USBCLK can be done at anytime
  2589. * without the need to stop the PLL in order to save power. But RCC_PLL_SYSCLK cannot
  2590. * be stopped if used as System Clock.
  2591. * @param __PLLCLOCKOUT__ specifies the PLL clock to be output.
  2592. * This parameter can be one or a combination of the following values:
  2593. * @arg @ref RCC_PLL_SAI1CLK This clock is used to generate the clock for SAI
  2594. * @arg @ref RCC_PLL_ADCCLK This clock is used to generate the clock for ADC
  2595. * @arg @ref RCC_PLL_USBCLK This Clock is used to generate the clock for the USB FS (48 MHz)
  2596. * @arg @ref RCC_PLL_RNGCLK This clock is used to generate the clock for RNG
  2597. * @arg @ref RCC_PLL_SYSCLK This Clock is used to generate the high speed system clock (up to 64MHz)
  2598. * @arg @ref RCC_PLL_I2SCLK This Clock is used to generate the clock for the I2S
  2599. * @retval None
  2600. */
  2601. #define __HAL_RCC_PLLCLKOUT_ENABLE(__PLLCLOCKOUT__) SET_BIT(RCC->PLLCFGR, (__PLLCLOCKOUT__))
  2602. #define __HAL_RCC_PLLCLKOUT_DISABLE(__PLLCLOCKOUT__) CLEAR_BIT(RCC->PLLCFGR, (__PLLCLOCKOUT__))
  2603. /**
  2604. * @brief Get clock output enable status (RCC_PLL_SYSCLK, RCC_PLL_USBCLK, RCC_PLL_SAI1CLK)
  2605. * @param __PLLCLOCKOUT__ specifies the output PLL clock to be checked.
  2606. * This parameter can be one of the following values:
  2607. * @arg @ref RCC_PLL_SAI1CLK This clock is used to generate an accurate clock to achieve high-quality audio performance on SAI interface
  2608. * @arg @ref RCC_PLL_ADCCLK same
  2609. * @arg @ref RCC_PLL_USBCLK This Clock is used to generate the clock for the USB FS (48 MHz)
  2610. * @arg @ref RCC_PLL_RNGCLK same
  2611. * @arg @ref RCC_PLL_SYSCLK This Clock is used to generate the high speed system clock (up to 64MHz)
  2612. * @retval SET / RESET
  2613. */
  2614. #define __HAL_RCC_GET_PLLCLKOUT_CONFIG(__PLLCLOCKOUT__) READ_BIT(RCC->PLLCFGR, (__PLLCLOCKOUT__))
  2615. /**
  2616. * @brief Macro to configure the system clock source.
  2617. * @param __SYSCLKSOURCE__ specifies the system clock source.
  2618. * This parameter can be one of the following values:
  2619. * @arg @ref RCC_SYSCLKSOURCE_MSI MSI oscillator is used as system clock source.
  2620. * @arg @ref RCC_SYSCLKSOURCE_HSI HSI oscillator is used as system clock source.
  2621. * @arg @ref RCC_SYSCLKSOURCE_HSE HSE oscillator is used as system clock source.
  2622. * @arg @ref RCC_SYSCLKSOURCE_PLLCLK PLL output is used as system clock source.
  2623. * @retval None
  2624. */
  2625. #define __HAL_RCC_SYSCLK_CONFIG(__SYSCLKSOURCE__) LL_RCC_SetSysClkSource(__SYSCLKSOURCE__)
  2626. /** @brief Macro to get the clock source used as system clock.
  2627. * @retval The clock source used as system clock. The returned value can be one
  2628. * of the following:
  2629. * @arg @ref RCC_SYSCLKSOURCE_STATUS_MSI MSI used as system clock.
  2630. * @arg @ref RCC_SYSCLKSOURCE_STATUS_HSI HSI used as system clock.
  2631. * @arg @ref RCC_SYSCLKSOURCE_STATUS_HSE HSE used as system clock.
  2632. * @arg @ref RCC_SYSCLKSOURCE_STATUS_PLLCLK PLL used as system clock.
  2633. */
  2634. #define __HAL_RCC_GET_SYSCLK_SOURCE() LL_RCC_GetSysClkSource()
  2635. /**
  2636. * @brief Macro to configure the External Low Speed oscillator (LSE) drive capability.
  2637. * @note As the LSE is in the Backup domain and write access is denied to
  2638. * this domain after reset, you have to enable write access using
  2639. * HAL_PWR_EnableBkUpAccess() function before to configure the LSE
  2640. * (to be done once after reset).
  2641. * @param __LSEDRIVE__ specifies the new state of the LSE drive capability.
  2642. * This parameter can be one of the following values:
  2643. * @arg @ref RCC_LSEDRIVE_LOW LSE oscillator low drive capability.
  2644. * @arg @ref RCC_LSEDRIVE_MEDIUMLOW LSE oscillator medium low drive capability.
  2645. * @arg @ref RCC_LSEDRIVE_MEDIUMHIGH LSE oscillator medium high drive capability.
  2646. * @arg @ref RCC_LSEDRIVE_HIGH LSE oscillator high drive capability.
  2647. * @retval None
  2648. */
  2649. #define __HAL_RCC_LSEDRIVE_CONFIG(__LSEDRIVE__) LL_RCC_LSE_SetDriveCapability(__LSEDRIVE__)
  2650. /**
  2651. * @brief Macro to configure the wake up from stop clock.
  2652. * @param __STOPWUCLK__ specifies the clock source used after wake up from stop.
  2653. * This parameter can be one of the following values:
  2654. * @arg @ref RCC_STOP_WAKEUPCLOCK_MSI MSI selected as system clock source
  2655. * @arg @ref RCC_STOP_WAKEUPCLOCK_HSI HSI selected as system clock source
  2656. * @retval None
  2657. */
  2658. #define __HAL_RCC_WAKEUPSTOP_CLK_CONFIG(__STOPWUCLK__) LL_RCC_SetClkAfterWakeFromStop(__STOPWUCLK__)
  2659. /** @brief Macro to configure the MCO clock.
  2660. * @param __MCOCLKSOURCE__ specifies the MCO clock source.
  2661. * This parameter can be one of the following values:
  2662. * @arg @ref RCC_MCO1SOURCE_NOCLOCK MCO output disabled
  2663. * @arg @ref RCC_MCO1SOURCE_SYSCLK System clock selected as MCO source
  2664. * @arg @ref RCC_MCO1SOURCE_MSI MSI clock selected as MCO source
  2665. * @arg @ref RCC_MCO1SOURCE_HSI HSI clock selected as MCO source
  2666. * @arg @ref RCC_MCO1SOURCE_HSE HSE clock selected as MCO sourcee
  2667. * @arg @ref RCC_MCO1SOURCE_PLLCLK Main PLL clock selected as MCO source
  2668. * @arg @ref RCC_MCO1SOURCE_LSI1 LSI1 clock selected as MCO source
  2669. * @arg @ref RCC_MCO1SOURCE_LSI2 LSI2 clock selected as MCO source
  2670. * @arg @ref RCC_MCO1SOURCE_LSE LSE clock selected as MCO source
  2671. * @arg @ref RCC_MCO1SOURCE_HSI48 HSI48 clock selected as MCO source
  2672. * @param __MCODIV__ specifies the MCO clock prescaler.
  2673. * This parameter can be one of the following values:
  2674. * @arg @ref RCC_MCODIV_1 MCO clock source is divided by 1
  2675. * @arg @ref RCC_MCODIV_2 MCO clock source is divided by 2
  2676. * @arg @ref RCC_MCODIV_4 MCO clock source is divided by 4
  2677. * @arg @ref RCC_MCODIV_8 MCO clock source is divided by 8
  2678. * @arg @ref RCC_MCODIV_16 MCO clock source is divided by 16
  2679. */
  2680. #define __HAL_RCC_MCO1_CONFIG(__MCOCLKSOURCE__, __MCODIV__) LL_RCC_ConfigMCO((__MCOCLKSOURCE__), (__MCODIV__))
  2681. /** @defgroup RCC_Flags_Interrupts_Management Flags Interrupts Management
  2682. * @brief macros to manage the specified RCC Flags and interrupts.
  2683. * @{
  2684. */
  2685. /** @brief Enable RCC interrupt.
  2686. * @param __INTERRUPT__ specifies the RCC interrupt sources to be enabled.
  2687. * This parameter can be any combination of the following values:
  2688. * @arg @ref RCC_IT_LSI1RDY LSI1 ready interrupt enable
  2689. * @arg @ref RCC_IT_LSERDY LSE ready interrupt enable
  2690. * @arg @ref RCC_IT_MSIRDY HSI ready interrupt enable
  2691. * @arg @ref RCC_IT_HSIRDY HSI ready interrupt enable
  2692. * @arg @ref RCC_IT_HSERDY HSE ready interrupt enable
  2693. * @arg @ref RCC_IT_PLLRDY Main PLL ready interrupt enable
  2694. * @arg @ref RCC_IT_PLLSAI1RDY PLLSAI1 ready interrupt enable
  2695. * @arg @ref RCC_IT_LSECSS LSE Clock security system interrupt enable
  2696. * @arg @ref RCC_IT_HSI48RDY PLLHSI48 ready interrupt enable
  2697. * @arg @ref RCC_IT_LSI2RDY LSI2 ready interrupt enable
  2698. * @retval None
  2699. */
  2700. #define __HAL_RCC_ENABLE_IT(__INTERRUPT__) SET_BIT(RCC->CIER, (__INTERRUPT__))
  2701. /** @brief Disable RCC interrupt.
  2702. * @param __INTERRUPT__ specifies the RCC interrupt sources to be disabled.
  2703. * This parameter can be any combination of the following values:
  2704. * @arg @ref RCC_IT_LSI1RDY LSI1 ready interrupt enable
  2705. * @arg @ref RCC_IT_LSERDY LSE ready interrupt enable
  2706. * @arg @ref RCC_IT_MSIRDY HSI ready interrupt enable
  2707. * @arg @ref RCC_IT_HSIRDY HSI ready interrupt enable
  2708. * @arg @ref RCC_IT_HSERDY HSE ready interrupt enable
  2709. * @arg @ref RCC_IT_PLLRDY Main PLL ready interrupt enable
  2710. * @arg @ref RCC_IT_PLLSAI1RDY PLLSAI1 ready interrupt enable
  2711. * @arg @ref RCC_IT_LSECSS LSE Clock security system interrupt enable
  2712. * @arg @ref RCC_IT_HSI48RDY PLLHSI48 ready interrupt enable
  2713. * @arg @ref RCC_IT_LSI2RDY LSI2 ready interrupt enable
  2714. * @retval None
  2715. */
  2716. #define __HAL_RCC_DISABLE_IT(__INTERRUPT__) CLEAR_BIT(RCC->CIER, (__INTERRUPT__))
  2717. /** @brief Clear RCC interrupt pending bits (Perform Byte access to RCC_CICR[17:0]
  2718. * bits to clear the selected interrupt pending bits.
  2719. * @param __INTERRUPT__ specifies the interrupt pending bit to clear.
  2720. * This parameter can be any combination of the following values:
  2721. * @arg @ref RCC_IT_LSI1RDY LSI1 ready interrupt clear
  2722. * @arg @ref RCC_IT_LSERDY LSE ready interrupt clear
  2723. * @arg @ref RCC_IT_MSIRDY HSI ready interrupt clear
  2724. * @arg @ref RCC_IT_HSIRDY HSI ready interrupt clear
  2725. * @arg @ref RCC_IT_HSERDY HSE ready interrupt clear
  2726. * @arg @ref RCC_IT_PLLRDY Main PLL ready interrupt clear
  2727. * @arg @ref RCC_IT_PLLRDY PLLSAI1 ready interrupt clear
  2728. * @arg @ref RCC_IT_HSECSS HSE Clock security system interrupt clear
  2729. * @arg @ref RCC_IT_LSECSS LSE Clock security system interrupt clear
  2730. * @arg @ref RCC_IT_HSI48RDY PLLHSI48 ready interrupt clear
  2731. * @arg @ref RCC_IT_LSI2RDY LSI2 ready interrupt clear
  2732. */
  2733. #define __HAL_RCC_CLEAR_IT(__INTERRUPT__) (RCC->CICR = (__INTERRUPT__))
  2734. /** @brief Check whether the RCC interrupt has occurred or not.
  2735. * @param __INTERRUPT__ specifies the RCC interrupt source to check.
  2736. * This parameter can be one of the following values:
  2737. * @arg @ref RCC_IT_LSI1RDY LSI1 ready interrupt flag
  2738. * @arg @ref RCC_IT_LSERDY LSE ready interrupt flag
  2739. * @arg @ref RCC_IT_MSIRDY HSI ready interrupt flag
  2740. * @arg @ref RCC_IT_HSIRDY HSI ready interrupt flag
  2741. * @arg @ref RCC_IT_HSERDY HSE ready interrupt flag
  2742. * @arg @ref RCC_IT_PLLRDY Main PLL ready interrupt flag
  2743. * @arg @ref RCC_IT_PLLRDY PLLSAI1 ready interrupt flag
  2744. * @arg @ref RCC_IT_HSECSS HSE Clock security system interrupt flag
  2745. * @arg @ref RCC_IT_LSECSS LSE Clock security system interrupt flag
  2746. * @arg @ref RCC_IT_HSI48RDY PLLHSI48 ready interrupt flag
  2747. * @arg @ref RCC_IT_LSI2RDY LSI2 ready interrupt flag
  2748. * @retval The new state of __INTERRUPT__ (TRUE or FALSE).
  2749. */
  2750. #define __HAL_RCC_GET_IT(__INTERRUPT__) ((RCC->CIFR & (__INTERRUPT__)) == (__INTERRUPT__))
  2751. /** @brief Set RMVF bit to clear the reset flags.
  2752. * The reset flags are: RCC_FLAG_OBLRST, RCC_FLAG_PINRST, RCC_FLAG_BORRST,
  2753. * RCC_FLAG_SFTRST, RCC_FLAG_IWDGRST, RCC_FLAG_WWDGRST and RCC_FLAG_LPWRRST.
  2754. * @retval None
  2755. */
  2756. #define __HAL_RCC_CLEAR_RESET_FLAGS() LL_RCC_ClearResetFlags()
  2757. /** @brief Check whether the selected RCC flag is set or not.
  2758. * @param __FLAG__ specifies the flag to check.
  2759. * This parameter can be one of the following values:
  2760. * @arg @ref RCC_FLAG_MSIRDY MSI oscillator clock ready
  2761. * @arg @ref RCC_FLAG_HSIRDY HSI oscillator clock ready
  2762. * @arg @ref RCC_FLAG_HSERDY HSE oscillator clock ready
  2763. * @arg @ref RCC_FLAG_PLLRDY Main PLL clock ready
  2764. * @arg @ref RCC_FLAG_PLLRDY PLLSAI1 clock ready
  2765. * @arg @ref RCC_FLAG_HSI48RDY HSI48 clock ready for devices with HSI48
  2766. * @arg @ref RCC_FLAG_LSERDY LSE oscillator clock ready
  2767. * @arg @ref RCC_FLAG_LSECSSD Clock security system failure on LSE oscillator detection
  2768. * @arg @ref RCC_FLAG_LSI1RDY LSI1 oscillator clock ready
  2769. * @arg @ref RCC_FLAG_LSI2RDY LSI2 oscillator clock ready
  2770. * @arg @ref RCC_FLAG_BORRST BOR reset
  2771. * @arg @ref RCC_FLAG_OBLRST OBLRST reset
  2772. * @arg @ref RCC_FLAG_PINRST Pin reset
  2773. * @arg @ref RCC_FLAG_SFTRST Software reset
  2774. * @arg @ref RCC_FLAG_IWDGRST Independent Watchdog reset
  2775. * @arg @ref RCC_FLAG_WWDGRST Window Watchdog reset
  2776. * @arg @ref RCC_FLAG_LPWRRST Low Power reset
  2777. * @retval The new state of __FLAG__ (TRUE or FALSE).
  2778. */
  2779. #define __HAL_RCC_GET_FLAG(__FLAG__) (((((((__FLAG__) >> 5U) == CR_REG_INDEX) ? RCC->CR : \
  2780. ((((__FLAG__) >> 5U) == CRRCR_REG_INDEX) ? RCC->CRRCR : \
  2781. ((((__FLAG__) >> 5U) == BDCR_REG_INDEX) ? RCC->BDCR : \
  2782. ((((__FLAG__) >> 5U) == CSR_REG_INDEX) ? RCC->CSR : RCC->CIFR)))) & \
  2783. (1U << ((__FLAG__) & RCC_FLAG_MASK))) != RESET) \
  2784. ? 1U : 0U)
  2785. /**
  2786. * @}
  2787. */
  2788. /**
  2789. * @}
  2790. */
  2791. /* Include RCC HAL Extended module */
  2792. #include "stm32wbxx_hal_rcc_ex.h"
  2793. /* Exported functions --------------------------------------------------------*/
  2794. /** @addtogroup RCC_Exported_Functions
  2795. * @{
  2796. */
  2797. /** @addtogroup RCC_Exported_Functions_Group1
  2798. * @{
  2799. */
  2800. /* Initialization and de-initialization functions ******************************/
  2801. HAL_StatusTypeDef HAL_RCC_DeInit(void);
  2802. HAL_StatusTypeDef HAL_RCC_OscConfig(RCC_OscInitTypeDef *RCC_OscInitStruct);
  2803. HAL_StatusTypeDef HAL_RCC_ClockConfig(RCC_ClkInitTypeDef *RCC_ClkInitStruct, uint32_t FLatency);
  2804. /**
  2805. * @}
  2806. */
  2807. /** @addtogroup RCC_Exported_Functions_Group2
  2808. * @{
  2809. */
  2810. /* Peripheral Control functions ************************************************/
  2811. void HAL_RCC_MCOConfig(uint32_t RCC_MCOx, uint32_t RCC_MCOSource, uint32_t RCC_MCODiv);
  2812. void HAL_RCC_EnableCSS(void);
  2813. uint32_t HAL_RCC_GetSysClockFreq(void);
  2814. uint32_t HAL_RCC_GetHCLKFreq(void);
  2815. uint32_t HAL_RCC_GetHCLK2Freq(void);
  2816. uint32_t HAL_RCC_GetHCLK4Freq(void);
  2817. uint32_t HAL_RCC_GetPCLK1Freq(void);
  2818. uint32_t HAL_RCC_GetPCLK2Freq(void);
  2819. void HAL_RCC_GetOscConfig(RCC_OscInitTypeDef *RCC_OscInitStruct);
  2820. void HAL_RCC_GetClockConfig(RCC_ClkInitTypeDef *RCC_ClkInitStruct, uint32_t *pFLatency);
  2821. /* LSE & HSE CSS NMI IRQ handler */
  2822. void HAL_RCC_NMI_IRQHandler(void);
  2823. /* User Callbacks in non blocking mode (IT mode) */
  2824. void HAL_RCC_CSSCallback(void);
  2825. /**
  2826. * @}
  2827. */
  2828. /**
  2829. * @}
  2830. */
  2831. /**
  2832. * @}
  2833. */
  2834. /**
  2835. * @}
  2836. */
  2837. #ifdef __cplusplus
  2838. }
  2839. #endif
  2840. #endif /* STM32WBxx_HAL_RCC_H */
  2841. /************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/