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.
 
 
 

1869 lines
75 KiB

  1. /**
  2. ******************************************************************************
  3. * @file stm32f0xx_ll_system.h
  4. * @author MCD Application Team
  5. * @brief Header file of SYSTEM LL module.
  6. @verbatim
  7. ==============================================================================
  8. ##### How to use this driver #####
  9. ==============================================================================
  10. [..]
  11. The LL SYSTEM driver contains a set of generic APIs that can be
  12. used by user:
  13. (+) Some of the FLASH features need to be handled in the SYSTEM file.
  14. (+) Access to DBGCMU registers
  15. (+) Access to SYSCFG registers
  16. @endverbatim
  17. ******************************************************************************
  18. * @attention
  19. *
  20. * <h2><center>&copy; COPYRIGHT(c) 2016 STMicroelectronics</center></h2>
  21. *
  22. * Redistribution and use in source and binary forms, with or without modification,
  23. * are permitted provided that the following conditions are met:
  24. * 1. Redistributions of source code must retain the above copyright notice,
  25. * this list of conditions and the following disclaimer.
  26. * 2. Redistributions in binary form must reproduce the above copyright notice,
  27. * this list of conditions and the following disclaimer in the documentation
  28. * and/or other materials provided with the distribution.
  29. * 3. Neither the name of STMicroelectronics nor the names of its contributors
  30. * may be used to endorse or promote products derived from this software
  31. * without specific prior written permission.
  32. *
  33. * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
  34. * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
  35. * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
  36. * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
  37. * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
  38. * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
  39. * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
  40. * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
  41. * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
  42. * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  43. *
  44. ******************************************************************************
  45. */
  46. /* Define to prevent recursive inclusion -------------------------------------*/
  47. #ifndef __STM32F0xx_LL_SYSTEM_H
  48. #define __STM32F0xx_LL_SYSTEM_H
  49. #ifdef __cplusplus
  50. extern "C" {
  51. #endif
  52. /* Includes ------------------------------------------------------------------*/
  53. #include "stm32f0xx.h"
  54. /** @addtogroup STM32F0xx_LL_Driver
  55. * @{
  56. */
  57. #if defined (FLASH) || defined (SYSCFG) || defined (DBGMCU)
  58. /** @defgroup SYSTEM_LL SYSTEM
  59. * @{
  60. */
  61. /* Private types -------------------------------------------------------------*/
  62. /* Private variables ---------------------------------------------------------*/
  63. /* Private constants ---------------------------------------------------------*/
  64. /** @defgroup SYSTEM_LL_Private_Constants SYSTEM Private Constants
  65. * @{
  66. */
  67. /**
  68. * @}
  69. */
  70. /* Private macros ------------------------------------------------------------*/
  71. /* Exported types ------------------------------------------------------------*/
  72. /* Exported constants --------------------------------------------------------*/
  73. /** @defgroup SYSTEM_LL_Exported_Constants SYSTEM Exported Constants
  74. * @{
  75. */
  76. /** @defgroup SYSTEM_LL_EC_REMAP SYSCFG Remap
  77. * @{
  78. */
  79. #define LL_SYSCFG_REMAP_FLASH (uint32_t)0x00000000U /*!< Main Flash memory mapped at 0x00000000 */
  80. #define LL_SYSCFG_REMAP_SYSTEMFLASH SYSCFG_CFGR1_MEM_MODE_0 /*!< System Flash memory mapped at 0x00000000 */
  81. #define LL_SYSCFG_REMAP_SRAM (SYSCFG_CFGR1_MEM_MODE_1 | SYSCFG_CFGR1_MEM_MODE_0) /*!< Embedded SRAM mapped at 0x00000000 */
  82. /**
  83. * @}
  84. */
  85. #if defined(SYSCFG_CFGR1_IR_MOD)
  86. /** @defgroup SYSTEM_LL_EC_IR_MOD SYSCFG IR Modulation
  87. * @{
  88. */
  89. #define LL_SYSCFG_IR_MOD_TIM16 (SYSCFG_CFGR1_IR_MOD_0 & SYSCFG_CFGR1_IR_MOD_1) /*!< Timer16 is selected as IR Modulation enveloppe source */
  90. #define LL_SYSCFG_IR_MOD_USART1 (SYSCFG_CFGR1_IR_MOD_0) /*!< USART1 is selected as IR Modulation enveloppe source */
  91. #define LL_SYSCFG_IR_MOD_USART4 (SYSCFG_CFGR1_IR_MOD_1) /*!< USART4 is selected as IR Modulation enveloppe source */
  92. /**
  93. * @}
  94. */
  95. #endif /* SYSCFG_CFGR1_IR_MOD */
  96. #if defined(SYSCFG_CFGR1_USART1TX_DMA_RMP) || defined(SYSCFG_CFGR1_USART1RX_DMA_RMP) || defined(SYSCFG_CFGR1_USART2_DMA_RMP) || defined(SYSCFG_CFGR1_USART3_DMA_RMP)
  97. /** @defgroup SYSTEM_LL_EC_USART1TX_RMP SYSCFG USART DMA Remap
  98. * @{
  99. */
  100. #if defined (SYSCFG_CFGR1_USART1TX_DMA_RMP)
  101. #define LL_SYSCFG_USART1TX_RMP_DMA1CH2 ((SYSCFG_CFGR1_USART1TX_DMA_RMP >> 8U) | (uint32_t)0x00000000U) /*!< USART1_TX DMA request mapped on DMA channel 2U */
  102. #define LL_SYSCFG_USART1TX_RMP_DMA1CH4 ((SYSCFG_CFGR1_USART1TX_DMA_RMP >> 8U) | SYSCFG_CFGR1_USART1TX_DMA_RMP) /*!< USART1_TX DMA request mapped on DMA channel 4U */
  103. #endif /*SYSCFG_CFGR1_USART1TX_DMA_RMP*/
  104. #if defined (SYSCFG_CFGR1_USART1RX_DMA_RMP)
  105. #define LL_SYSCFG_USART1RX_RMP_DMA1CH3 ((SYSCFG_CFGR1_USART1RX_DMA_RMP >> 8U) | (uint32_t)0x00000000U) /*!< USART1_RX DMA request mapped on DMA channel 3U */
  106. #define LL_SYSCFG_USART1RX_RMP_DMA1CH5 ((SYSCFG_CFGR1_USART1RX_DMA_RMP >> 8U) | SYSCFG_CFGR1_USART1RX_DMA_RMP) /*!< USART1_RX DMA request mapped on DMA channel 5 */
  107. #endif /*SYSCFG_CFGR1_USART1RX_DMA_RMP*/
  108. #if defined (SYSCFG_CFGR1_USART2_DMA_RMP)
  109. #define LL_SYSCFG_USART2_RMP_DMA1CH54 ((SYSCFG_CFGR1_USART2_DMA_RMP >> 8U) | (uint32_t)0x00000000U) /*!< USART2_RX and USART2_TX DMA requests mapped on DMA channel 5 and 4U respectively */
  110. #define LL_SYSCFG_USART2_RMP_DMA1CH67 ((SYSCFG_CFGR1_USART2_DMA_RMP >> 8U) | SYSCFG_CFGR1_USART2_DMA_RMP) /*!< USART2_RX and USART2_TX DMA requests mapped on DMA channel 6 and 7 respectively */
  111. #endif /*SYSCFG_CFGR1_USART2_DMA_RMP*/
  112. #if defined (SYSCFG_CFGR1_USART3_DMA_RMP)
  113. #define LL_SYSCFG_USART3_RMP_DMA1CH67 ((SYSCFG_CFGR1_USART3_DMA_RMP >> 8U) | (uint32_t)0x00000000U) /*!< USART3_RX and USART3_TX DMA requests mapped on DMA channel 6 and 7 respectively */
  114. #define LL_SYSCFG_USART3_RMP_DMA1CH32 ((SYSCFG_CFGR1_USART3_DMA_RMP >> 8U) | SYSCFG_CFGR1_USART3_DMA_RMP) /*!< USART3_RX and USART3_TX DMA requests mapped on DMA channel 3U and 2U respectively */
  115. #endif /* SYSCFG_CFGR1_USART3_DMA_RMP */
  116. /**
  117. * @}
  118. */
  119. #endif /* SYSCFG_CFGR1_USART1TX_DMA_RMP || SYSCFG_CFGR1_USART1RX_DMA_RMP || SYSCFG_CFGR1_USART2_DMA_RMP || SYSCFG_CFGR1_USART3_DMA_RMP */
  120. #if defined (SYSCFG_CFGR1_SPI2_DMA_RMP)
  121. /** @defgroup SYSTEM_LL_EC_SPI2_RMP_DMA1 SYSCFG SPI2 DMA Remap
  122. * @{
  123. */
  124. #define LL_SYSCFG_SPI2_RMP_DMA1_CH45 (uint32_t)0x00000000U /*!< SPI2_RX and SPI2_TX DMA requests mapped on DMA channel 4U and 5 respectively */
  125. #define LL_SYSCFG_SPI2_RMP_DMA1_CH67 SYSCFG_CFGR1_SPI2_DMA_RMP /*!< SPI2_RX and SPI2_TX DMA requests mapped on DMA channel 6 and 7 respectively */
  126. /**
  127. * @}
  128. */
  129. #endif /*SYSCFG_CFGR1_SPI2_DMA_RMP*/
  130. #if defined (SYSCFG_CFGR1_I2C1_DMA_RMP)
  131. /** @defgroup SYSTEM_LL_EC_I2C1_RMP_DMA1 SYSCFG I2C1 DMA Remap
  132. * @{
  133. */
  134. #define LL_SYSCFG_I2C1_RMP_DMA1_CH32 (uint32_t)0x00000000U /*!< I2C1_RX and I2C1_TX DMA requests mapped on DMA channel 3U and 2U respectively */
  135. #define LL_SYSCFG_I2C1_RMP_DMA1_CH76 SYSCFG_CFGR1_I2C1_DMA_RMP /*!< I2C1_RX and I2C1_TX DMA requests mapped on DMA channel 7 and 6 respectively */
  136. /**
  137. * @}
  138. */
  139. #endif /*SYSCFG_CFGR1_I2C1_DMA_RMP*/
  140. #if defined(SYSCFG_CFGR1_ADC_DMA_RMP)
  141. /** @defgroup SYSTEM_LL_EC_ADC1_RMP_DMA1 SYSCFG ADC1 DMA Remap
  142. * @{
  143. */
  144. #define LL_SYSCFG_ADC1_RMP_DMA1_CH1 (uint32_t)0x00000000U /*!< ADC DMA request mapped on DMA channel 1U */
  145. #define LL_SYSCFG_ADC1_RMP_DMA1_CH2 SYSCFG_CFGR1_ADC_DMA_RMP /*!< ADC DMA request mapped on DMA channel 2U */
  146. /**
  147. * @}
  148. */
  149. #endif /* SYSCFG_CFGR1_ADC_DMA_RMP */
  150. #if defined(SYSCFG_CFGR1_TIM16_DMA_RMP) || defined(SYSCFG_CFGR1_TIM17_DMA_RMP) || defined(SYSCFG_CFGR1_TIM1_DMA_RMP) || defined(SYSCFG_CFGR1_TIM2_DMA_RMP) || defined(SYSCFG_CFGR1_TIM3_DMA_RMP)
  151. /** @defgroup SYSTEM_LL_EC_TIM16_RMP_DMA1 SYSCFG TIM DMA Remap
  152. * @{
  153. */
  154. #if defined(SYSCFG_CFGR1_TIM16_DMA_RMP)
  155. #if defined (SYSCFG_CFGR1_TIM16_DMA_RMP2)
  156. #define LL_SYSCFG_TIM16_RMP_DMA1_CH3 (((SYSCFG_CFGR1_TIM16_DMA_RMP | SYSCFG_CFGR1_TIM16_DMA_RMP2) >> 8U) | (uint32_t)0x00000000U) /*!< TIM16_CH1 and TIM16_UP DMA requests mapped on DMA channel 3 */
  157. #define LL_SYSCFG_TIM16_RMP_DMA1_CH4 (((SYSCFG_CFGR1_TIM16_DMA_RMP | SYSCFG_CFGR1_TIM16_DMA_RMP2) >> 8U) | SYSCFG_CFGR1_TIM16_DMA_RMP) /*!< TIM16_CH1 and TIM16_UP DMA requests mapped on DMA channel 4 */
  158. #define LL_SYSCFG_TIM16_RMP_DMA1_CH6 ((SYSCFG_CFGR1_TIM16_DMA_RMP2 >> 8U) | SYSCFG_CFGR1_TIM16_DMA_RMP2) /*!< TIM16_CH1 and TIM16_UP DMA requests mapped on DMA channel 6 */
  159. #else
  160. #define LL_SYSCFG_TIM16_RMP_DMA1_CH3 ((SYSCFG_CFGR1_TIM16_DMA_RMP >> 8U) | (uint32_t)0x00000000U) /*!< TIM16_CH1 and TIM16_UP DMA requests mapped on DMA channel 3 */
  161. #define LL_SYSCFG_TIM16_RMP_DMA1_CH4 ((SYSCFG_CFGR1_TIM16_DMA_RMP >> 8U) | SYSCFG_CFGR1_TIM16_DMA_RMP) /*!< TIM16_CH1 and TIM16_UP DMA requests mapped on DMA channel 4 */
  162. #endif /* SYSCFG_CFGR1_TIM16_DMA_RMP2 */
  163. #endif /* SYSCFG_CFGR1_TIM16_DMA_RMP */
  164. #if defined(SYSCFG_CFGR1_TIM17_DMA_RMP)
  165. #if defined (SYSCFG_CFGR1_TIM17_DMA_RMP2)
  166. #define LL_SYSCFG_TIM17_RMP_DMA1_CH1 (((SYSCFG_CFGR1_TIM17_DMA_RMP | SYSCFG_CFGR1_TIM17_DMA_RMP2) >> 8U) | (uint32_t)0x00000000U) /*!< TIM17_CH1 and TIM17_UP DMA requests mapped on DMA channel 1 */
  167. #define LL_SYSCFG_TIM17_RMP_DMA1_CH2 (((SYSCFG_CFGR1_TIM17_DMA_RMP | SYSCFG_CFGR1_TIM17_DMA_RMP2) >> 8U) | SYSCFG_CFGR1_TIM17_DMA_RMP) /*!< TIM17_CH1 and TIM17_UP DMA requests mapped on DMA channel 2 */
  168. #define LL_SYSCFG_TIM17_RMP_DMA1_CH7 ((SYSCFG_CFGR1_TIM17_DMA_RMP2 >> 8U) | SYSCFG_CFGR1_TIM17_DMA_RMP2) /*!< TIM17_CH1 and TIM17_UP DMA requests mapped on DMA channel 7 */
  169. #else
  170. #define LL_SYSCFG_TIM17_RMP_DMA1_CH1 ((SYSCFG_CFGR1_TIM17_DMA_RMP >> 8U) | (uint32_t)0x00000000U) /*!< TIM17_CH1 and TIM17_UP DMA requests mapped on DMA channel 1 */
  171. #define LL_SYSCFG_TIM17_RMP_DMA1_CH2 ((SYSCFG_CFGR1_TIM17_DMA_RMP >> 8U) | SYSCFG_CFGR1_TIM17_DMA_RMP) /*!< TIM17_CH1 and TIM17_UP DMA requests mapped on DMA channel 2 */
  172. #endif /* SYSCFG_CFGR1_TIM17_DMA_RMP2 */
  173. #endif /* SYSCFG_CFGR1_TIM17_DMA_RMP */
  174. #if defined (SYSCFG_CFGR1_TIM1_DMA_RMP)
  175. #define LL_SYSCFG_TIM1_RMP_DMA1_CH234 ((SYSCFG_CFGR1_TIM1_DMA_RMP >> 8U) | (uint32_t)0x00000000U) /*!< TIM1_CH1, TIM1_CH2 and TIM1_CH3 DMA requests mapped on DMAchannel 2, 3 and 4 respectively */
  176. #define LL_SYSCFG_TIM1_RMP_DMA1_CH6 ((SYSCFG_CFGR1_TIM1_DMA_RMP >> 8U) | SYSCFG_CFGR1_TIM1_DMA_RMP) /*!< TIM1_CH1, TIM1_CH2 and TIM1_CH3 DMA requests mapped on DMA channel 6 */
  177. #endif /*SYSCFG_CFGR1_TIM1_DMA_RMP*/
  178. #if defined (SYSCFG_CFGR1_TIM2_DMA_RMP)
  179. #define LL_SYSCFG_TIM2_RMP_DMA1_CH34 ((SYSCFG_CFGR1_TIM2_DMA_RMP >> 8U) | (uint32_t)0x00000000U) /*!< TIM2_CH2 and TIM2_CH4 DMA requests mapped on DMA channel 3 and 4 respectively */
  180. #define LL_SYSCFG_TIM2_RMP_DMA1_CH7 ((SYSCFG_CFGR1_TIM2_DMA_RMP >> 8U) | SYSCFG_CFGR1_TIM2_DMA_RMP) /*!< TIM2_CH2 and TIM2_CH4 DMA requests mapped on DMA channel 7 */
  181. #endif /*SYSCFG_CFGR1_TIM2_DMA_RMP*/
  182. #if defined (SYSCFG_CFGR1_TIM3_DMA_RMP)
  183. #define LL_SYSCFG_TIM3_RMP_DMA1_CH4 ((SYSCFG_CFGR1_TIM3_DMA_RMP >> 8U) | (uint32_t)0x00000000U) /*!< TIM3_CH1 and TIM3_TRIG DMA requests mapped on DMA channel 4 */
  184. #define LL_SYSCFG_TIM3_RMP_DMA1_CH6 ((SYSCFG_CFGR1_TIM3_DMA_RMP >> 8U) | SYSCFG_CFGR1_TIM3_DMA_RMP) /*!< TIM3_CH1 and TIM3_TRIG DMA requests mapped on DMA channel 6 */
  185. #endif /*SYSCFG_CFGR1_TIM3_DMA_RMP*/
  186. /**
  187. * @}
  188. */
  189. #endif /* SYSCFG_CFGR1_TIM16_DMA_RMP || SYSCFG_CFGR1_TIM17_DMA_RMP || SYSCFG_CFGR1_TIM1_DMA_RMP || SYSCFG_CFGR1_TIM2_DMA_RMP || SYSCFG_CFGR1_TIM3_DMA_RMP */
  190. /** @defgroup SYSTEM_LL_EC_I2C_FASTMODEPLUS SYSCFG I2C FASTMODEPLUS
  191. * @{
  192. */
  193. #define LL_SYSCFG_I2C_FASTMODEPLUS_PB6 SYSCFG_CFGR1_I2C_FMP_PB6 /*!< I2C PB6 Fast mode plus */
  194. #define LL_SYSCFG_I2C_FASTMODEPLUS_PB7 SYSCFG_CFGR1_I2C_FMP_PB7 /*!< I2C PB7 Fast mode plus */
  195. #define LL_SYSCFG_I2C_FASTMODEPLUS_PB8 SYSCFG_CFGR1_I2C_FMP_PB8 /*!< I2C PB8 Fast mode plus */
  196. #define LL_SYSCFG_I2C_FASTMODEPLUS_PB9 SYSCFG_CFGR1_I2C_FMP_PB9 /*!< I2C PB9 Fast mode plus */
  197. #if defined(SYSCFG_CFGR1_I2C_FMP_I2C1)
  198. #define LL_SYSCFG_I2C_FASTMODEPLUS_I2C1 SYSCFG_CFGR1_I2C_FMP_I2C1 /*!< Enable Fast Mode Plus on PB10, PB11, PF6 and PF7 */
  199. #endif /*SYSCFG_CFGR1_I2C_FMP_I2C1*/
  200. #if defined(SYSCFG_CFGR1_I2C_FMP_I2C2)
  201. #define LL_SYSCFG_I2C_FASTMODEPLUS_I2C2 SYSCFG_CFGR1_I2C_FMP_I2C2 /*!< Enable I2C2 Fast mode plus */
  202. #endif /*SYSCFG_CFGR1_I2C_FMP_I2C2*/
  203. #if defined(SYSCFG_CFGR1_I2C_FMP_PA9)
  204. #define LL_SYSCFG_I2C_FASTMODEPLUS_PA9 SYSCFG_CFGR1_I2C_FMP_PA9 /*!< Enable Fast Mode Plus on PA9 */
  205. #endif /*SYSCFG_CFGR1_I2C_FMP_PA9*/
  206. #if defined(SYSCFG_CFGR1_I2C_FMP_PA10)
  207. #define LL_SYSCFG_I2C_FASTMODEPLUS_PA10 SYSCFG_CFGR1_I2C_FMP_PA10 /*!< Enable Fast Mode Plus on PA10 */
  208. #endif /*SYSCFG_CFGR1_I2C_FMP_PA10*/
  209. /**
  210. * @}
  211. */
  212. /** @defgroup SYSTEM_LL_EC_EXTI_PORT SYSCFG EXTI PORT
  213. * @{
  214. */
  215. #define LL_SYSCFG_EXTI_PORTA (uint32_t)0U /*!< EXTI PORT A */
  216. #define LL_SYSCFG_EXTI_PORTB (uint32_t)1U /*!< EXTI PORT B */
  217. #define LL_SYSCFG_EXTI_PORTC (uint32_t)2U /*!< EXTI PORT C */
  218. #if defined(GPIOD_BASE)
  219. #define LL_SYSCFG_EXTI_PORTD (uint32_t)3U /*!< EXTI PORT D */
  220. #endif /*GPIOD_BASE*/
  221. #if defined(GPIOE_BASE)
  222. #define LL_SYSCFG_EXTI_PORTE (uint32_t)4U /*!< EXTI PORT E */
  223. #endif /*GPIOE_BASE*/
  224. #define LL_SYSCFG_EXTI_PORTF (uint32_t)5U /*!< EXTI PORT F */
  225. /**
  226. * @}
  227. */
  228. /** @defgroup SYSTEM_LL_EC_EXTI_LINE SYSCFG EXTI LINE
  229. * @{
  230. */
  231. #define LL_SYSCFG_EXTI_LINE0 (uint32_t)(0U << 16U | 0U) /*!< EXTI_POSITION_0 | EXTICR[0] */
  232. #define LL_SYSCFG_EXTI_LINE1 (uint32_t)(4U << 16U | 0U) /*!< EXTI_POSITION_4 | EXTICR[0] */
  233. #define LL_SYSCFG_EXTI_LINE2 (uint32_t)(8U << 16U | 0U) /*!< EXTI_POSITION_8 | EXTICR[0] */
  234. #define LL_SYSCFG_EXTI_LINE3 (uint32_t)(12U << 16U | 0U) /*!< EXTI_POSITION_12 | EXTICR[0] */
  235. #define LL_SYSCFG_EXTI_LINE4 (uint32_t)(0U << 16U | 1U) /*!< EXTI_POSITION_0 | EXTICR[1] */
  236. #define LL_SYSCFG_EXTI_LINE5 (uint32_t)(4U << 16U | 1U) /*!< EXTI_POSITION_4 | EXTICR[1] */
  237. #define LL_SYSCFG_EXTI_LINE6 (uint32_t)(8U << 16U | 1U) /*!< EXTI_POSITION_8 | EXTICR[1] */
  238. #define LL_SYSCFG_EXTI_LINE7 (uint32_t)(12U << 16U | 1U) /*!< EXTI_POSITION_12 | EXTICR[1] */
  239. #define LL_SYSCFG_EXTI_LINE8 (uint32_t)(0U << 16U | 2U) /*!< EXTI_POSITION_0 | EXTICR[2] */
  240. #define LL_SYSCFG_EXTI_LINE9 (uint32_t)(4U << 16U | 2U) /*!< EXTI_POSITION_4 | EXTICR[2] */
  241. #define LL_SYSCFG_EXTI_LINE10 (uint32_t)(8U << 16U | 2U) /*!< EXTI_POSITION_8 | EXTICR[2] */
  242. #define LL_SYSCFG_EXTI_LINE11 (uint32_t)(12U << 16U | 2U) /*!< EXTI_POSITION_12 | EXTICR[2] */
  243. #define LL_SYSCFG_EXTI_LINE12 (uint32_t)(0U << 16U | 3U) /*!< EXTI_POSITION_0 | EXTICR[3] */
  244. #define LL_SYSCFG_EXTI_LINE13 (uint32_t)(4U << 16U | 3U) /*!< EXTI_POSITION_4 | EXTICR[3] */
  245. #define LL_SYSCFG_EXTI_LINE14 (uint32_t)(8U << 16U | 3U) /*!< EXTI_POSITION_8 | EXTICR[3] */
  246. #define LL_SYSCFG_EXTI_LINE15 (uint32_t)(12U << 16U | 3U) /*!< EXTI_POSITION_12 | EXTICR[3] */
  247. /**
  248. * @}
  249. */
  250. /** @defgroup SYSTEM_LL_EC_TIMBREAK SYSCFG TIMER BREAK
  251. * @{
  252. */
  253. #if defined(SYSCFG_CFGR2_PVD_LOCK)
  254. #define LL_SYSCFG_TIMBREAK_PVD SYSCFG_CFGR2_PVD_LOCK /*!< Enables and locks the PVD connection
  255. with TIM1/15/16U/17 Break Input and also
  256. the PVDE and PLS bits of the Power Control Interface */
  257. #endif /*SYSCFG_CFGR2_PVD_LOCK*/
  258. #define LL_SYSCFG_TIMBREAK_SRAM_PARITY SYSCFG_CFGR2_SRAM_PARITY_LOCK /*!< Enables and locks the SRAM_PARITY error signal
  259. with Break Input of TIM1/15/16/17 */
  260. #define LL_SYSCFG_TIMBREAK_LOCKUP SYSCFG_CFGR2_LOCKUP_LOCK /*!< Enables and locks the LOCKUP (Hardfault) output of
  261. CortexM0 with Break Input of TIM1/15/16/17 */
  262. /**
  263. * @}
  264. */
  265. /** @defgroup SYSTEM_LL_EC_APB1_GRP1_STOP_IP DBGMCU APB1 GRP1 STOP IP
  266. * @{
  267. */
  268. #if defined(DBGMCU_APB1_FZ_DBG_TIM2_STOP)
  269. #define LL_DBGMCU_APB1_GRP1_TIM2_STOP DBGMCU_APB1_FZ_DBG_TIM2_STOP /*!< TIM2 counter stopped when core is halted */
  270. #endif /*DBGMCU_APB1_FZ_DBG_TIM2_STOP*/
  271. #define LL_DBGMCU_APB1_GRP1_TIM3_STOP DBGMCU_APB1_FZ_DBG_TIM3_STOP /*!< TIM3 counter stopped when core is halted */
  272. #if defined(DBGMCU_APB1_FZ_DBG_TIM6_STOP)
  273. #define LL_DBGMCU_APB1_GRP1_TIM6_STOP DBGMCU_APB1_FZ_DBG_TIM6_STOP /*!< TIM6 counter stopped when core is halted */
  274. #endif /*DBGMCU_APB1_FZ_DBG_TIM6_STOP*/
  275. #if defined(DBGMCU_APB1_FZ_DBG_TIM7_STOP)
  276. #define LL_DBGMCU_APB1_GRP1_TIM7_STOP DBGMCU_APB1_FZ_DBG_TIM7_STOP /*!< TIM7 counter stopped when core is halted */
  277. #endif /*DBGMCU_APB1_FZ_DBG_TIM7_STOP*/
  278. #define LL_DBGMCU_APB1_GRP1_TIM14_STOP DBGMCU_APB1_FZ_DBG_TIM14_STOP /*!< TIM14 counter stopped when core is halted */
  279. #define LL_DBGMCU_APB1_GRP1_RTC_STOP DBGMCU_APB1_FZ_DBG_RTC_STOP /*!< RTC Calendar frozen when core is halted */
  280. #define LL_DBGMCU_APB1_GRP1_WWDG_STOP DBGMCU_APB1_FZ_DBG_WWDG_STOP /*!< Debug Window Watchdog stopped when Core is halted */
  281. #define LL_DBGMCU_APB1_GRP1_IWDG_STOP DBGMCU_APB1_FZ_DBG_IWDG_STOP /*!< Debug Independent Watchdog stopped when Core is halted */
  282. #define LL_DBGMCU_APB1_GRP1_I2C1_STOP DBGMCU_APB1_FZ_DBG_I2C1_SMBUS_TIMEOUT /*!< I2C1 SMBUS timeout mode stopped when Core is halted */
  283. #if defined(DBGMCU_APB1_FZ_DBG_CAN_STOP)
  284. #define LL_DBGMCU_APB1_GRP1_CAN_STOP DBGMCU_APB1_FZ_DBG_CAN_STOP /*!< CAN debug stopped when Core is halted */
  285. #endif /*DBGMCU_APB1_FZ_DBG_CAN_STOP*/
  286. /**
  287. * @}
  288. */
  289. /** @defgroup SYSTEM_LL_EC_APB1 GRP2_STOP_IP DBGMCU APB1 GRP2 STOP IP
  290. * @{
  291. */
  292. #define LL_DBGMCU_APB1_GRP2_TIM1_STOP DBGMCU_APB2_FZ_DBG_TIM1_STOP /*!< TIM1 counter stopped when core is halted */
  293. #if defined(DBGMCU_APB2_FZ_DBG_TIM15_STOP)
  294. #define LL_DBGMCU_APB1_GRP2_TIM15_STOP DBGMCU_APB2_FZ_DBG_TIM15_STOP /*!< TIM15 counter stopped when core is halted */
  295. #endif /*DBGMCU_APB2_FZ_DBG_TIM15_STOP*/
  296. #define LL_DBGMCU_APB1_GRP2_TIM16_STOP DBGMCU_APB2_FZ_DBG_TIM16_STOP /*!< TIM16 counter stopped when core is halted */
  297. #define LL_DBGMCU_APB1_GRP2_TIM17_STOP DBGMCU_APB2_FZ_DBG_TIM17_STOP /*!< TIM17 counter stopped when core is halted */
  298. /**
  299. * @}
  300. */
  301. /** @defgroup SYSTEM_LL_EC_LATENCY FLASH LATENCY
  302. * @{
  303. */
  304. #define LL_FLASH_LATENCY_0 0x00000000U /*!< FLASH Zero Latency cycle */
  305. #define LL_FLASH_LATENCY_1 FLASH_ACR_LATENCY /*!< FLASH One Latency cycle */
  306. /**
  307. * @}
  308. */
  309. /**
  310. * @}
  311. */
  312. /* Exported macro ------------------------------------------------------------*/
  313. /* Exported functions --------------------------------------------------------*/
  314. /** @defgroup SYSTEM_LL_Exported_Functions SYSTEM Exported Functions
  315. * @{
  316. */
  317. /** @defgroup SYSTEM_LL_EF_SYSCFG SYSCFG
  318. * @{
  319. */
  320. /**
  321. * @brief Set memory mapping at address 0x00000000
  322. * @rmtoll SYSCFG_CFGR1 MEM_MODE LL_SYSCFG_SetRemapMemory
  323. * @param Memory This parameter can be one of the following values:
  324. * @arg @ref LL_SYSCFG_REMAP_FLASH
  325. * @arg @ref LL_SYSCFG_REMAP_SYSTEMFLASH
  326. * @arg @ref LL_SYSCFG_REMAP_SRAM
  327. * @retval None
  328. */
  329. __STATIC_INLINE void LL_SYSCFG_SetRemapMemory(uint32_t Memory)
  330. {
  331. MODIFY_REG(SYSCFG->CFGR1, SYSCFG_CFGR1_MEM_MODE, Memory);
  332. }
  333. /**
  334. * @brief Get memory mapping at address 0x00000000
  335. * @rmtoll SYSCFG_CFGR1 MEM_MODE LL_SYSCFG_GetRemapMemory
  336. * @retval Returned value can be one of the following values:
  337. * @arg @ref LL_SYSCFG_REMAP_FLASH
  338. * @arg @ref LL_SYSCFG_REMAP_SYSTEMFLASH
  339. * @arg @ref LL_SYSCFG_REMAP_SRAM
  340. */
  341. __STATIC_INLINE uint32_t LL_SYSCFG_GetRemapMemory(void)
  342. {
  343. return (uint32_t)(READ_BIT(SYSCFG->CFGR1, SYSCFG_CFGR1_MEM_MODE));
  344. }
  345. #if defined(SYSCFG_CFGR1_IR_MOD)
  346. /**
  347. * @brief Set IR Modulation Envelope signal source.
  348. * @rmtoll SYSCFG_CFGR1 IR_MOD LL_SYSCFG_SetIRModEnvelopeSignal
  349. * @param Source This parameter can be one of the following values:
  350. * @arg @ref LL_SYSCFG_IR_MOD_TIM16
  351. * @arg @ref LL_SYSCFG_IR_MOD_USART1
  352. * @arg @ref LL_SYSCFG_IR_MOD_USART4
  353. * @retval None
  354. */
  355. __STATIC_INLINE void LL_SYSCFG_SetIRModEnvelopeSignal(uint32_t Source)
  356. {
  357. MODIFY_REG(SYSCFG->CFGR1, SYSCFG_CFGR1_IR_MOD, Source);
  358. }
  359. /**
  360. * @brief Get IR Modulation Envelope signal source.
  361. * @rmtoll SYSCFG_CFGR1 IR_MOD LL_SYSCFG_GetIRModEnvelopeSignal
  362. * @retval Returned value can be one of the following values:
  363. * @arg @ref LL_SYSCFG_IR_MOD_TIM16
  364. * @arg @ref LL_SYSCFG_IR_MOD_USART1
  365. * @arg @ref LL_SYSCFG_IR_MOD_USART4
  366. */
  367. __STATIC_INLINE uint32_t LL_SYSCFG_GetIRModEnvelopeSignal(void)
  368. {
  369. return (uint32_t)(READ_BIT(SYSCFG->CFGR1, SYSCFG_CFGR1_IR_MOD));
  370. }
  371. #endif /* SYSCFG_CFGR1_IR_MOD */
  372. #if defined(SYSCFG_CFGR1_USART1TX_DMA_RMP) || defined(SYSCFG_CFGR1_USART1RX_DMA_RMP) || defined(SYSCFG_CFGR1_USART2_DMA_RMP) || defined(SYSCFG_CFGR1_USART3_DMA_RMP)
  373. /**
  374. * @brief Set DMA request remapping bits for USART
  375. * @rmtoll SYSCFG_CFGR1 USART1TX_DMA_RMP LL_SYSCFG_SetRemapDMA_USART\n
  376. * SYSCFG_CFGR1 USART1RX_DMA_RMP LL_SYSCFG_SetRemapDMA_USART\n
  377. * SYSCFG_CFGR1 USART2_DMA_RMP LL_SYSCFG_SetRemapDMA_USART\n
  378. * SYSCFG_CFGR1 USART3_DMA_RMP LL_SYSCFG_SetRemapDMA_USART
  379. * @param Remap This parameter can be one of the following values:
  380. * @arg @ref LL_SYSCFG_USART1TX_RMP_DMA1CH2 (*)
  381. * @arg @ref LL_SYSCFG_USART1TX_RMP_DMA1CH4 (*)
  382. * @arg @ref LL_SYSCFG_USART1RX_RMP_DMA1CH3 (*)
  383. * @arg @ref LL_SYSCFG_USART1RX_RMP_DMA1CH5 (*)
  384. * @arg @ref LL_SYSCFG_USART2_RMP_DMA1CH54 (*)
  385. * @arg @ref LL_SYSCFG_USART2_RMP_DMA1CH67 (*)
  386. * @arg @ref LL_SYSCFG_USART3_RMP_DMA1CH67 (*)
  387. * @arg @ref LL_SYSCFG_USART3_RMP_DMA1CH32 (*)
  388. *
  389. * (*) value not defined in all devices.
  390. * @retval None
  391. */
  392. __STATIC_INLINE void LL_SYSCFG_SetRemapDMA_USART(uint32_t Remap)
  393. {
  394. MODIFY_REG(SYSCFG->CFGR1, (Remap & 0x00FF00FFU) << 8U, (Remap & 0xFF00FF00U));
  395. }
  396. #endif /* SYSCFG_CFGR1_USART1TX_DMA_RMP || SYSCFG_CFGR1_USART1RX_DMA_RMP || SYSCFG_CFGR1_USART2_DMA_RMP || SYSCFG_CFGR1_USART3_DMA_RMP */
  397. #if defined(SYSCFG_CFGR1_SPI2_DMA_RMP)
  398. /**
  399. * @brief Set DMA request remapping bits for SPI
  400. * @rmtoll SYSCFG_CFGR1 SPI2_DMA_RMP LL_SYSCFG_SetRemapDMA_SPI
  401. * @param Remap This parameter can be one of the following values:
  402. * @arg @ref LL_SYSCFG_SPI2_RMP_DMA1_CH45
  403. * @arg @ref LL_SYSCFG_SPI2_RMP_DMA1_CH67
  404. * @retval None
  405. */
  406. __STATIC_INLINE void LL_SYSCFG_SetRemapDMA_SPI(uint32_t Remap)
  407. {
  408. MODIFY_REG(SYSCFG->CFGR1, SYSCFG_CFGR1_SPI2_DMA_RMP, Remap);
  409. }
  410. #endif /* SYSCFG_CFGR1_SPI2_DMA_RMP */
  411. #if defined(SYSCFG_CFGR1_I2C1_DMA_RMP)
  412. /**
  413. * @brief Set DMA request remapping bits for I2C
  414. * @rmtoll SYSCFG_CFGR1 I2C1_DMA_RMP LL_SYSCFG_SetRemapDMA_I2C
  415. * @param Remap This parameter can be one of the following values:
  416. * @arg @ref LL_SYSCFG_I2C1_RMP_DMA1_CH32
  417. * @arg @ref LL_SYSCFG_I2C1_RMP_DMA1_CH76
  418. * @retval None
  419. */
  420. __STATIC_INLINE void LL_SYSCFG_SetRemapDMA_I2C(uint32_t Remap)
  421. {
  422. MODIFY_REG(SYSCFG->CFGR1, SYSCFG_CFGR1_I2C1_DMA_RMP, Remap);
  423. }
  424. #endif /* SYSCFG_CFGR1_I2C1_DMA_RMP */
  425. #if defined(SYSCFG_CFGR1_ADC_DMA_RMP)
  426. /**
  427. * @brief Set DMA request remapping bits for ADC
  428. * @rmtoll SYSCFG_CFGR1 ADC_DMA_RMP LL_SYSCFG_SetRemapDMA_ADC
  429. * @param Remap This parameter can be one of the following values:
  430. * @arg @ref LL_SYSCFG_ADC1_RMP_DMA1_CH1
  431. * @arg @ref LL_SYSCFG_ADC1_RMP_DMA1_CH2
  432. * @retval None
  433. */
  434. __STATIC_INLINE void LL_SYSCFG_SetRemapDMA_ADC(uint32_t Remap)
  435. {
  436. MODIFY_REG(SYSCFG->CFGR1, SYSCFG_CFGR1_ADC_DMA_RMP, Remap);
  437. }
  438. #endif /* SYSCFG_CFGR1_ADC_DMA_RMP */
  439. #if defined(SYSCFG_CFGR1_TIM16_DMA_RMP) || defined(SYSCFG_CFGR1_TIM17_DMA_RMP) || defined(SYSCFG_CFGR1_TIM1_DMA_RMP) || defined(SYSCFG_CFGR1_TIM2_DMA_RMP) || defined(SYSCFG_CFGR1_TIM3_DMA_RMP)
  440. /**
  441. * @brief Set DMA request remapping bits for TIM
  442. * @rmtoll SYSCFG_CFGR1 TIM16_DMA_RMP LL_SYSCFG_SetRemapDMA_TIM\n
  443. * SYSCFG_CFGR1 TIM17_DMA_RMP LL_SYSCFG_SetRemapDMA_TIM\n
  444. * SYSCFG_CFGR1 TIM16_DMA_RMP2 LL_SYSCFG_SetRemapDMA_TIM\n
  445. * SYSCFG_CFGR1 TIM17_DMA_RMP2 LL_SYSCFG_SetRemapDMA_TIM\n
  446. * SYSCFG_CFGR1 TIM1_DMA_RMP LL_SYSCFG_SetRemapDMA_TIM\n
  447. * SYSCFG_CFGR1 TIM2_DMA_RMP LL_SYSCFG_SetRemapDMA_TIM\n
  448. * SYSCFG_CFGR1 TIM3_DMA_RMP LL_SYSCFG_SetRemapDMA_TIM
  449. * @param Remap This parameter can be one of the following values:
  450. * @arg @ref LL_SYSCFG_TIM16_RMP_DMA1_CH3 (*)
  451. * @arg @ref LL_SYSCFG_TIM16_RMP_DMA1_CH4 (*)
  452. * @arg @ref LL_SYSCFG_TIM16_RMP_DMA1_CH6 (*)
  453. * @arg @ref LL_SYSCFG_TIM17_RMP_DMA1_CH1 (*)
  454. * @arg @ref LL_SYSCFG_TIM17_RMP_DMA1_CH2 (*)
  455. * @arg @ref LL_SYSCFG_TIM17_RMP_DMA1_CH7 (*)
  456. * @arg @ref LL_SYSCFG_TIM1_RMP_DMA1_CH234 (*)
  457. * @arg @ref LL_SYSCFG_TIM1_RMP_DMA1_CH6 (*)
  458. * @arg @ref LL_SYSCFG_TIM2_RMP_DMA1_CH34 (*)
  459. * @arg @ref LL_SYSCFG_TIM2_RMP_DMA1_CH7 (*)
  460. * @arg @ref LL_SYSCFG_TIM3_RMP_DMA1_CH4 (*)
  461. * @arg @ref LL_SYSCFG_TIM3_RMP_DMA1_CH6 (*)
  462. *
  463. * (*) value not defined in all devices.
  464. * @retval None
  465. */
  466. __STATIC_INLINE void LL_SYSCFG_SetRemapDMA_TIM(uint32_t Remap)
  467. {
  468. MODIFY_REG(SYSCFG->CFGR1, (Remap & 0x00FF00FFU) << 8U, (Remap & 0xFF00FF00U));
  469. }
  470. #endif /* SYSCFG_CFGR1_TIM16_DMA_RMP || SYSCFG_CFGR1_TIM17_DMA_RMP || SYSCFG_CFGR1_TIM1_DMA_RMP || SYSCFG_CFGR1_TIM2_DMA_RMP || SYSCFG_CFGR1_TIM3_DMA_RMP */
  471. #if defined(SYSCFG_CFGR1_PA11_PA12_RMP)
  472. /**
  473. * @brief Enable PIN pair PA11/12 mapped instead of PA9/10 (control the mapping of either
  474. * PA9/10 or PA11/12 pin pair on small pin-count packages)
  475. * @rmtoll SYSCFG_CFGR1 PA11_PA12_RMP LL_SYSCFG_EnablePinRemap
  476. * @retval None
  477. */
  478. __STATIC_INLINE void LL_SYSCFG_EnablePinRemap(void)
  479. {
  480. SET_BIT(SYSCFG->CFGR1, SYSCFG_CFGR1_PA11_PA12_RMP);
  481. }
  482. /**
  483. * @brief Disable PIN pair PA11/12 mapped instead of PA9/10 (control the mapping of either
  484. * PA9/10 or PA11/12 pin pair on small pin-count packages)
  485. * @rmtoll SYSCFG_CFGR1 PA11_PA12_RMP LL_SYSCFG_DisablePinRemap
  486. * @retval None
  487. */
  488. __STATIC_INLINE void LL_SYSCFG_DisablePinRemap(void)
  489. {
  490. CLEAR_BIT(SYSCFG->CFGR1, SYSCFG_CFGR1_PA11_PA12_RMP);
  491. }
  492. #endif /* SYSCFG_CFGR1_PA11_PA12_RMP */
  493. /**
  494. * @brief Enable the I2C fast mode plus driving capability.
  495. * @rmtoll SYSCFG_CFGR1 I2C_FMP_PB6 LL_SYSCFG_EnableFastModePlus\n
  496. * SYSCFG_CFGR1 I2C_FMP_PB7 LL_SYSCFG_EnableFastModePlus\n
  497. * SYSCFG_CFGR1 I2C_FMP_PB8 LL_SYSCFG_EnableFastModePlus\n
  498. * SYSCFG_CFGR1 I2C_FMP_PB9 LL_SYSCFG_EnableFastModePlus\n
  499. * SYSCFG_CFGR1 I2C_FMP_I2C1 LL_SYSCFG_EnableFastModePlus\n
  500. * SYSCFG_CFGR1 I2C_FMP_I2C2 LL_SYSCFG_EnableFastModePlus\n
  501. * SYSCFG_CFGR1 I2C_FMP_PA9 LL_SYSCFG_EnableFastModePlus\n
  502. * SYSCFG_CFGR1 I2C_FMP_PA10 LL_SYSCFG_EnableFastModePlus
  503. * @param ConfigFastModePlus This parameter can be a combination of the following values:
  504. * @arg @ref LL_SYSCFG_I2C_FASTMODEPLUS_PB6
  505. * @arg @ref LL_SYSCFG_I2C_FASTMODEPLUS_PB7
  506. * @arg @ref LL_SYSCFG_I2C_FASTMODEPLUS_PB8
  507. * @arg @ref LL_SYSCFG_I2C_FASTMODEPLUS_PB9
  508. * @arg @ref LL_SYSCFG_I2C_FASTMODEPLUS_I2C1 (*)
  509. * @arg @ref LL_SYSCFG_I2C_FASTMODEPLUS_I2C2 (*)
  510. * @arg @ref LL_SYSCFG_I2C_FASTMODEPLUS_PA9 (*)
  511. * @arg @ref LL_SYSCFG_I2C_FASTMODEPLUS_PA10 (*)
  512. *
  513. * (*) value not defined in all devices
  514. * @retval None
  515. */
  516. __STATIC_INLINE void LL_SYSCFG_EnableFastModePlus(uint32_t ConfigFastModePlus)
  517. {
  518. SET_BIT(SYSCFG->CFGR1, ConfigFastModePlus);
  519. }
  520. /**
  521. * @brief Disable the I2C fast mode plus driving capability.
  522. * @rmtoll SYSCFG_CFGR1 I2C_FMP_PB6 LL_SYSCFG_DisableFastModePlus\n
  523. * SYSCFG_CFGR1 I2C_FMP_PB7 LL_SYSCFG_DisableFastModePlus\n
  524. * SYSCFG_CFGR1 I2C_FMP_PB8 LL_SYSCFG_DisableFastModePlus\n
  525. * SYSCFG_CFGR1 I2C_FMP_PB9 LL_SYSCFG_DisableFastModePlus\n
  526. * SYSCFG_CFGR1 I2C_FMP_I2C1 LL_SYSCFG_DisableFastModePlus\n
  527. * SYSCFG_CFGR1 I2C_FMP_I2C2 LL_SYSCFG_DisableFastModePlus\n
  528. * SYSCFG_CFGR1 I2C_FMP_PA9 LL_SYSCFG_DisableFastModePlus\n
  529. * SYSCFG_CFGR1 I2C_FMP_PA10 LL_SYSCFG_DisableFastModePlus
  530. * @param ConfigFastModePlus This parameter can be a combination of the following values:
  531. * @arg @ref LL_SYSCFG_I2C_FASTMODEPLUS_PB6
  532. * @arg @ref LL_SYSCFG_I2C_FASTMODEPLUS_PB7
  533. * @arg @ref LL_SYSCFG_I2C_FASTMODEPLUS_PB8
  534. * @arg @ref LL_SYSCFG_I2C_FASTMODEPLUS_PB9
  535. * @arg @ref LL_SYSCFG_I2C_FASTMODEPLUS_I2C1 (*)
  536. * @arg @ref LL_SYSCFG_I2C_FASTMODEPLUS_I2C2 (*)
  537. * @arg @ref LL_SYSCFG_I2C_FASTMODEPLUS_PA9 (*)
  538. * @arg @ref LL_SYSCFG_I2C_FASTMODEPLUS_PA10 (*)
  539. *
  540. * (*) value not defined in all devices
  541. * @retval None
  542. */
  543. __STATIC_INLINE void LL_SYSCFG_DisableFastModePlus(uint32_t ConfigFastModePlus)
  544. {
  545. CLEAR_BIT(SYSCFG->CFGR1, ConfigFastModePlus);
  546. }
  547. /**
  548. * @brief Configure source input for the EXTI external interrupt.
  549. * @rmtoll SYSCFG_EXTICR1 EXTI0 LL_SYSCFG_SetEXTISource\n
  550. * SYSCFG_EXTICR1 EXTI1 LL_SYSCFG_SetEXTISource\n
  551. * SYSCFG_EXTICR1 EXTI2 LL_SYSCFG_SetEXTISource\n
  552. * SYSCFG_EXTICR1 EXTI3 LL_SYSCFG_SetEXTISource\n
  553. * SYSCFG_EXTICR2 EXTI4 LL_SYSCFG_SetEXTISource\n
  554. * SYSCFG_EXTICR2 EXTI5 LL_SYSCFG_SetEXTISource\n
  555. * SYSCFG_EXTICR2 EXTI6 LL_SYSCFG_SetEXTISource\n
  556. * SYSCFG_EXTICR2 EXTI7 LL_SYSCFG_SetEXTISource\n
  557. * SYSCFG_EXTICR3 EXTI8 LL_SYSCFG_SetEXTISource\n
  558. * SYSCFG_EXTICR3 EXTI9 LL_SYSCFG_SetEXTISource\n
  559. * SYSCFG_EXTICR3 EXTI10 LL_SYSCFG_SetEXTISource\n
  560. * SYSCFG_EXTICR3 EXTI11 LL_SYSCFG_SetEXTISource\n
  561. * SYSCFG_EXTICR4 EXTI12 LL_SYSCFG_SetEXTISource\n
  562. * SYSCFG_EXTICR4 EXTI13 LL_SYSCFG_SetEXTISource\n
  563. * SYSCFG_EXTICR4 EXTI14 LL_SYSCFG_SetEXTISource\n
  564. * SYSCFG_EXTICR4 EXTI15 LL_SYSCFG_SetEXTISource
  565. * @param Port This parameter can be one of the following values:
  566. * @arg @ref LL_SYSCFG_EXTI_PORTA
  567. * @arg @ref LL_SYSCFG_EXTI_PORTB
  568. * @arg @ref LL_SYSCFG_EXTI_PORTC
  569. * @arg @ref LL_SYSCFG_EXTI_PORTD (*)
  570. * @arg @ref LL_SYSCFG_EXTI_PORTE (*)
  571. * @arg @ref LL_SYSCFG_EXTI_PORTF
  572. *
  573. * (*) value not defined in all devices
  574. * @param Line This parameter can be one of the following values:
  575. * @arg @ref LL_SYSCFG_EXTI_LINE0
  576. * @arg @ref LL_SYSCFG_EXTI_LINE1
  577. * @arg @ref LL_SYSCFG_EXTI_LINE2
  578. * @arg @ref LL_SYSCFG_EXTI_LINE3
  579. * @arg @ref LL_SYSCFG_EXTI_LINE4
  580. * @arg @ref LL_SYSCFG_EXTI_LINE5
  581. * @arg @ref LL_SYSCFG_EXTI_LINE6
  582. * @arg @ref LL_SYSCFG_EXTI_LINE7
  583. * @arg @ref LL_SYSCFG_EXTI_LINE8
  584. * @arg @ref LL_SYSCFG_EXTI_LINE9
  585. * @arg @ref LL_SYSCFG_EXTI_LINE10
  586. * @arg @ref LL_SYSCFG_EXTI_LINE11
  587. * @arg @ref LL_SYSCFG_EXTI_LINE12
  588. * @arg @ref LL_SYSCFG_EXTI_LINE13
  589. * @arg @ref LL_SYSCFG_EXTI_LINE14
  590. * @arg @ref LL_SYSCFG_EXTI_LINE15
  591. * @retval None
  592. */
  593. __STATIC_INLINE void LL_SYSCFG_SetEXTISource(uint32_t Port, uint32_t Line)
  594. {
  595. MODIFY_REG(SYSCFG->EXTICR[Line & 0xFF], SYSCFG_EXTICR1_EXTI0 << (Line >> 16), Port << (Line >> 16));
  596. }
  597. /**
  598. * @brief Get the configured defined for specific EXTI Line
  599. * @rmtoll SYSCFG_EXTICR1 EXTI0 LL_SYSCFG_SetEXTISource\n
  600. * SYSCFG_EXTICR1 EXTI1 LL_SYSCFG_SetEXTISource\n
  601. * SYSCFG_EXTICR1 EXTI2 LL_SYSCFG_SetEXTISource\n
  602. * SYSCFG_EXTICR1 EXTI3 LL_SYSCFG_SetEXTISource\n
  603. * SYSCFG_EXTICR2 EXTI4 LL_SYSCFG_SetEXTISource\n
  604. * SYSCFG_EXTICR2 EXTI5 LL_SYSCFG_SetEXTISource\n
  605. * SYSCFG_EXTICR2 EXTI6 LL_SYSCFG_SetEXTISource\n
  606. * SYSCFG_EXTICR2 EXTI7 LL_SYSCFG_SetEXTISource\n
  607. * SYSCFG_EXTICR3 EXTI8 LL_SYSCFG_SetEXTISource\n
  608. * SYSCFG_EXTICR3 EXTI9 LL_SYSCFG_SetEXTISource\n
  609. * SYSCFG_EXTICR3 EXTI10 LL_SYSCFG_SetEXTISource\n
  610. * SYSCFG_EXTICR3 EXTI11 LL_SYSCFG_SetEXTISource\n
  611. * SYSCFG_EXTICR4 EXTI12 LL_SYSCFG_SetEXTISource\n
  612. * SYSCFG_EXTICR4 EXTI13 LL_SYSCFG_SetEXTISource\n
  613. * SYSCFG_EXTICR4 EXTI14 LL_SYSCFG_SetEXTISource\n
  614. * SYSCFG_EXTICR4 EXTI15 LL_SYSCFG_SetEXTISource
  615. * @param Line This parameter can be one of the following values:
  616. * @arg @ref LL_SYSCFG_EXTI_LINE0
  617. * @arg @ref LL_SYSCFG_EXTI_LINE1
  618. * @arg @ref LL_SYSCFG_EXTI_LINE2
  619. * @arg @ref LL_SYSCFG_EXTI_LINE3
  620. * @arg @ref LL_SYSCFG_EXTI_LINE4
  621. * @arg @ref LL_SYSCFG_EXTI_LINE5
  622. * @arg @ref LL_SYSCFG_EXTI_LINE6
  623. * @arg @ref LL_SYSCFG_EXTI_LINE7
  624. * @arg @ref LL_SYSCFG_EXTI_LINE8
  625. * @arg @ref LL_SYSCFG_EXTI_LINE9
  626. * @arg @ref LL_SYSCFG_EXTI_LINE10
  627. * @arg @ref LL_SYSCFG_EXTI_LINE11
  628. * @arg @ref LL_SYSCFG_EXTI_LINE12
  629. * @arg @ref LL_SYSCFG_EXTI_LINE13
  630. * @arg @ref LL_SYSCFG_EXTI_LINE14
  631. * @arg @ref LL_SYSCFG_EXTI_LINE15
  632. * @retval Returned value can be one of the following values:
  633. * @arg @ref LL_SYSCFG_EXTI_PORTA
  634. * @arg @ref LL_SYSCFG_EXTI_PORTB
  635. * @arg @ref LL_SYSCFG_EXTI_PORTC
  636. * @arg @ref LL_SYSCFG_EXTI_PORTD (*)
  637. * @arg @ref LL_SYSCFG_EXTI_PORTE (*)
  638. * @arg @ref LL_SYSCFG_EXTI_PORTF
  639. *
  640. * (*) value not defined in all devices
  641. */
  642. __STATIC_INLINE uint32_t LL_SYSCFG_GetEXTISource(uint32_t Line)
  643. {
  644. return (uint32_t)(READ_BIT(SYSCFG->EXTICR[Line & 0xFF], (SYSCFG_EXTICR1_EXTI0 << (Line >> 16))) >> (Line >> 16));
  645. }
  646. #if defined(SYSCFG_ITLINE0_SR_EWDG)
  647. /**
  648. * @brief Check if Window watchdog interrupt occurred or not.
  649. * @rmtoll SYSCFG_ITLINE0 SR_EWDG LL_SYSCFG_IsActiveFlag_WWDG
  650. * @retval State of bit (1 or 0).
  651. */
  652. __STATIC_INLINE uint32_t LL_SYSCFG_IsActiveFlag_WWDG(void)
  653. {
  654. return (READ_BIT(SYSCFG->IT_LINE_SR[0], SYSCFG_ITLINE0_SR_EWDG) == (SYSCFG_ITLINE0_SR_EWDG));
  655. }
  656. #endif /* SYSCFG_ITLINE0_SR_EWDG */
  657. #if defined(SYSCFG_ITLINE1_SR_PVDOUT)
  658. /**
  659. * @brief Check if PVD supply monitoring interrupt occurred or not (EXTI line 16).
  660. * @rmtoll SYSCFG_ITLINE1 SR_PVDOUT LL_SYSCFG_IsActiveFlag_PVDOUT
  661. * @retval State of bit (1 or 0).
  662. */
  663. __STATIC_INLINE uint32_t LL_SYSCFG_IsActiveFlag_PVDOUT(void)
  664. {
  665. return (READ_BIT(SYSCFG->IT_LINE_SR[1], SYSCFG_ITLINE1_SR_PVDOUT) == (SYSCFG_ITLINE1_SR_PVDOUT));
  666. }
  667. #endif /* SYSCFG_ITLINE1_SR_PVDOUT */
  668. #if defined(SYSCFG_ITLINE1_SR_VDDIO2)
  669. /**
  670. * @brief Check if VDDIO2 supply monitoring interrupt occurred or not (EXTI line 31).
  671. * @rmtoll SYSCFG_ITLINE1 SR_VDDIO2 LL_SYSCFG_IsActiveFlag_VDDIO2
  672. * @retval State of bit (1 or 0).
  673. */
  674. __STATIC_INLINE uint32_t LL_SYSCFG_IsActiveFlag_VDDIO2(void)
  675. {
  676. return (READ_BIT(SYSCFG->IT_LINE_SR[1], SYSCFG_ITLINE1_SR_VDDIO2) == (SYSCFG_ITLINE1_SR_VDDIO2));
  677. }
  678. #endif /* SYSCFG_ITLINE1_SR_VDDIO2 */
  679. #if defined(SYSCFG_ITLINE2_SR_RTC_WAKEUP)
  680. /**
  681. * @brief Check if RTC Wake Up interrupt occurred or not (EXTI line 20).
  682. * @rmtoll SYSCFG_ITLINE2 SR_RTC_WAKEUP LL_SYSCFG_IsActiveFlag_RTC_WAKEUP
  683. * @retval State of bit (1 or 0).
  684. */
  685. __STATIC_INLINE uint32_t LL_SYSCFG_IsActiveFlag_RTC_WAKEUP(void)
  686. {
  687. return (READ_BIT(SYSCFG->IT_LINE_SR[2], SYSCFG_ITLINE2_SR_RTC_WAKEUP) == (SYSCFG_ITLINE2_SR_RTC_WAKEUP));
  688. }
  689. #endif /* SYSCFG_ITLINE2_SR_RTC_WAKEUP */
  690. #if defined(SYSCFG_ITLINE2_SR_RTC_TSTAMP)
  691. /**
  692. * @brief Check if RTC Tamper and TimeStamp interrupt occurred or not (EXTI line 19).
  693. * @rmtoll SYSCFG_ITLINE2 SR_RTC_TSTAMP LL_SYSCFG_IsActiveFlag_RTC_TSTAMP
  694. * @retval State of bit (1 or 0).
  695. */
  696. __STATIC_INLINE uint32_t LL_SYSCFG_IsActiveFlag_RTC_TSTAMP(void)
  697. {
  698. return (READ_BIT(SYSCFG->IT_LINE_SR[2], SYSCFG_ITLINE2_SR_RTC_TSTAMP) == (SYSCFG_ITLINE2_SR_RTC_TSTAMP));
  699. }
  700. #endif /* SYSCFG_ITLINE2_SR_RTC_TSTAMP */
  701. #if defined(SYSCFG_ITLINE2_SR_RTC_ALRA)
  702. /**
  703. * @brief Check if RTC Alarm interrupt occurred or not (EXTI line 17).
  704. * @rmtoll SYSCFG_ITLINE2 SR_RTC_ALRA LL_SYSCFG_IsActiveFlag_RTC_ALRA
  705. * @retval State of bit (1 or 0).
  706. */
  707. __STATIC_INLINE uint32_t LL_SYSCFG_IsActiveFlag_RTC_ALRA(void)
  708. {
  709. return (READ_BIT(SYSCFG->IT_LINE_SR[2], SYSCFG_ITLINE2_SR_RTC_ALRA) == (SYSCFG_ITLINE2_SR_RTC_ALRA));
  710. }
  711. #endif /* SYSCFG_ITLINE2_SR_RTC_ALRA */
  712. #if defined(SYSCFG_ITLINE3_SR_FLASH_ITF)
  713. /**
  714. * @brief Check if Flash interface interrupt occurred or not.
  715. * @rmtoll SYSCFG_ITLINE3 SR_FLASH_ITF LL_SYSCFG_IsActiveFlag_FLASH_ITF
  716. * @retval State of bit (1 or 0).
  717. */
  718. __STATIC_INLINE uint32_t LL_SYSCFG_IsActiveFlag_FLASH_ITF(void)
  719. {
  720. return (READ_BIT(SYSCFG->IT_LINE_SR[3], SYSCFG_ITLINE3_SR_FLASH_ITF) == (SYSCFG_ITLINE3_SR_FLASH_ITF));
  721. }
  722. #endif /* SYSCFG_ITLINE3_SR_FLASH_ITF */
  723. #if defined(SYSCFG_ITLINE4_SR_CRS)
  724. /**
  725. * @brief Check if Clock recovery system interrupt occurred or not.
  726. * @rmtoll SYSCFG_ITLINE4 SR_CRS LL_SYSCFG_IsActiveFlag_CRS
  727. * @retval State of bit (1 or 0).
  728. */
  729. __STATIC_INLINE uint32_t LL_SYSCFG_IsActiveFlag_CRS(void)
  730. {
  731. return (READ_BIT(SYSCFG->IT_LINE_SR[4], SYSCFG_ITLINE4_SR_CRS) == (SYSCFG_ITLINE4_SR_CRS));
  732. }
  733. #endif /* SYSCFG_ITLINE4_SR_CRS */
  734. #if defined(SYSCFG_ITLINE4_SR_CLK_CTRL)
  735. /**
  736. * @brief Check if Reset and clock control interrupt occurred or not.
  737. * @rmtoll SYSCFG_ITLINE4 SR_CLK_CTRL LL_SYSCFG_IsActiveFlag_CLK_CTRL
  738. * @retval State of bit (1 or 0).
  739. */
  740. __STATIC_INLINE uint32_t LL_SYSCFG_IsActiveFlag_CLK_CTRL(void)
  741. {
  742. return (READ_BIT(SYSCFG->IT_LINE_SR[4], SYSCFG_ITLINE4_SR_CLK_CTRL) == (SYSCFG_ITLINE4_SR_CLK_CTRL));
  743. }
  744. #endif /* SYSCFG_ITLINE4_SR_CLK_CTRL */
  745. #if defined(SYSCFG_ITLINE5_SR_EXTI0)
  746. /**
  747. * @brief Check if EXTI line 0 interrupt occurred or not.
  748. * @rmtoll SYSCFG_ITLINE5 SR_EXTI0 LL_SYSCFG_IsActiveFlag_EXTI0
  749. * @retval State of bit (1 or 0).
  750. */
  751. __STATIC_INLINE uint32_t LL_SYSCFG_IsActiveFlag_EXTI0(void)
  752. {
  753. return (READ_BIT(SYSCFG->IT_LINE_SR[5], SYSCFG_ITLINE5_SR_EXTI0) == (SYSCFG_ITLINE5_SR_EXTI0));
  754. }
  755. #endif /* SYSCFG_ITLINE5_SR_EXTI0 */
  756. #if defined(SYSCFG_ITLINE5_SR_EXTI1)
  757. /**
  758. * @brief Check if EXTI line 1 interrupt occurred or not.
  759. * @rmtoll SYSCFG_ITLINE5 SR_EXTI1 LL_SYSCFG_IsActiveFlag_EXTI1
  760. * @retval State of bit (1 or 0).
  761. */
  762. __STATIC_INLINE uint32_t LL_SYSCFG_IsActiveFlag_EXTI1(void)
  763. {
  764. return (READ_BIT(SYSCFG->IT_LINE_SR[5], SYSCFG_ITLINE5_SR_EXTI1) == (SYSCFG_ITLINE5_SR_EXTI1));
  765. }
  766. #endif /* SYSCFG_ITLINE5_SR_EXTI1 */
  767. #if defined(SYSCFG_ITLINE6_SR_EXTI2)
  768. /**
  769. * @brief Check if EXTI line 2 interrupt occurred or not.
  770. * @rmtoll SYSCFG_ITLINE6 SR_EXTI2 LL_SYSCFG_IsActiveFlag_EXTI2
  771. * @retval State of bit (1 or 0).
  772. */
  773. __STATIC_INLINE uint32_t LL_SYSCFG_IsActiveFlag_EXTI2(void)
  774. {
  775. return (READ_BIT(SYSCFG->IT_LINE_SR[6], SYSCFG_ITLINE6_SR_EXTI2) == (SYSCFG_ITLINE6_SR_EXTI2));
  776. }
  777. #endif /* SYSCFG_ITLINE6_SR_EXTI2 */
  778. #if defined(SYSCFG_ITLINE6_SR_EXTI3)
  779. /**
  780. * @brief Check if EXTI line 3 interrupt occurred or not.
  781. * @rmtoll SYSCFG_ITLINE6 SR_EXTI3 LL_SYSCFG_IsActiveFlag_EXTI3
  782. * @retval State of bit (1 or 0).
  783. */
  784. __STATIC_INLINE uint32_t LL_SYSCFG_IsActiveFlag_EXTI3(void)
  785. {
  786. return (READ_BIT(SYSCFG->IT_LINE_SR[6], SYSCFG_ITLINE6_SR_EXTI3) == (SYSCFG_ITLINE6_SR_EXTI3));
  787. }
  788. #endif /* SYSCFG_ITLINE6_SR_EXTI3 */
  789. #if defined(SYSCFG_ITLINE7_SR_EXTI4)
  790. /**
  791. * @brief Check if EXTI line 4 interrupt occurred or not.
  792. * @rmtoll SYSCFG_ITLINE7 SR_EXTI4 LL_SYSCFG_IsActiveFlag_EXTI4
  793. * @retval State of bit (1 or 0).
  794. */
  795. __STATIC_INLINE uint32_t LL_SYSCFG_IsActiveFlag_EXTI4(void)
  796. {
  797. return (READ_BIT(SYSCFG->IT_LINE_SR[7], SYSCFG_ITLINE7_SR_EXTI4) == (SYSCFG_ITLINE7_SR_EXTI4));
  798. }
  799. #endif /* SYSCFG_ITLINE7_SR_EXTI4 */
  800. #if defined(SYSCFG_ITLINE7_SR_EXTI5)
  801. /**
  802. * @brief Check if EXTI line 5 interrupt occurred or not.
  803. * @rmtoll SYSCFG_ITLINE7 SR_EXTI5 LL_SYSCFG_IsActiveFlag_EXTI5
  804. * @retval State of bit (1 or 0).
  805. */
  806. __STATIC_INLINE uint32_t LL_SYSCFG_IsActiveFlag_EXTI5(void)
  807. {
  808. return (READ_BIT(SYSCFG->IT_LINE_SR[7], SYSCFG_ITLINE7_SR_EXTI5) == (SYSCFG_ITLINE7_SR_EXTI5));
  809. }
  810. #endif /* SYSCFG_ITLINE7_SR_EXTI5 */
  811. #if defined(SYSCFG_ITLINE7_SR_EXTI6)
  812. /**
  813. * @brief Check if EXTI line 6 interrupt occurred or not.
  814. * @rmtoll SYSCFG_ITLINE7 SR_EXTI6 LL_SYSCFG_IsActiveFlag_EXTI6
  815. * @retval State of bit (1 or 0).
  816. */
  817. __STATIC_INLINE uint32_t LL_SYSCFG_IsActiveFlag_EXTI6(void)
  818. {
  819. return (READ_BIT(SYSCFG->IT_LINE_SR[7], SYSCFG_ITLINE7_SR_EXTI6) == (SYSCFG_ITLINE7_SR_EXTI6));
  820. }
  821. #endif /* SYSCFG_ITLINE7_SR_EXTI6 */
  822. #if defined(SYSCFG_ITLINE7_SR_EXTI7)
  823. /**
  824. * @brief Check if EXTI line 7 interrupt occurred or not.
  825. * @rmtoll SYSCFG_ITLINE7 SR_EXTI7 LL_SYSCFG_IsActiveFlag_EXTI7
  826. * @retval State of bit (1 or 0).
  827. */
  828. __STATIC_INLINE uint32_t LL_SYSCFG_IsActiveFlag_EXTI7(void)
  829. {
  830. return (READ_BIT(SYSCFG->IT_LINE_SR[7], SYSCFG_ITLINE7_SR_EXTI7) == (SYSCFG_ITLINE7_SR_EXTI7));
  831. }
  832. #endif /* SYSCFG_ITLINE7_SR_EXTI7 */
  833. #if defined(SYSCFG_ITLINE7_SR_EXTI8)
  834. /**
  835. * @brief Check if EXTI line 8 interrupt occurred or not.
  836. * @rmtoll SYSCFG_ITLINE7 SR_EXTI8 LL_SYSCFG_IsActiveFlag_EXTI8
  837. * @retval State of bit (1 or 0).
  838. */
  839. __STATIC_INLINE uint32_t LL_SYSCFG_IsActiveFlag_EXTI8(void)
  840. {
  841. return (READ_BIT(SYSCFG->IT_LINE_SR[7], SYSCFG_ITLINE7_SR_EXTI8) == (SYSCFG_ITLINE7_SR_EXTI8));
  842. }
  843. #endif /* SYSCFG_ITLINE7_SR_EXTI8 */
  844. #if defined(SYSCFG_ITLINE7_SR_EXTI9)
  845. /**
  846. * @brief Check if EXTI line 9 interrupt occurred or not.
  847. * @rmtoll SYSCFG_ITLINE7 SR_EXTI9 LL_SYSCFG_IsActiveFlag_EXTI9
  848. * @retval State of bit (1 or 0).
  849. */
  850. __STATIC_INLINE uint32_t LL_SYSCFG_IsActiveFlag_EXTI9(void)
  851. {
  852. return (READ_BIT(SYSCFG->IT_LINE_SR[7], SYSCFG_ITLINE7_SR_EXTI9) == (SYSCFG_ITLINE7_SR_EXTI9));
  853. }
  854. #endif /* SYSCFG_ITLINE7_SR_EXTI9 */
  855. #if defined(SYSCFG_ITLINE7_SR_EXTI10)
  856. /**
  857. * @brief Check if EXTI line 10 interrupt occurred or not.
  858. * @rmtoll SYSCFG_ITLINE7 SR_EXTI10 LL_SYSCFG_IsActiveFlag_EXTI10
  859. * @retval State of bit (1 or 0).
  860. */
  861. __STATIC_INLINE uint32_t LL_SYSCFG_IsActiveFlag_EXTI10(void)
  862. {
  863. return (READ_BIT(SYSCFG->IT_LINE_SR[7], SYSCFG_ITLINE7_SR_EXTI10) == (SYSCFG_ITLINE7_SR_EXTI10));
  864. }
  865. #endif /* SYSCFG_ITLINE7_SR_EXTI10 */
  866. #if defined(SYSCFG_ITLINE7_SR_EXTI11)
  867. /**
  868. * @brief Check if EXTI line 11 interrupt occurred or not.
  869. * @rmtoll SYSCFG_ITLINE7 SR_EXTI11 LL_SYSCFG_IsActiveFlag_EXTI11
  870. * @retval State of bit (1 or 0).
  871. */
  872. __STATIC_INLINE uint32_t LL_SYSCFG_IsActiveFlag_EXTI11(void)
  873. {
  874. return (READ_BIT(SYSCFG->IT_LINE_SR[7], SYSCFG_ITLINE7_SR_EXTI11) == (SYSCFG_ITLINE7_SR_EXTI11));
  875. }
  876. #endif /* SYSCFG_ITLINE7_SR_EXTI11 */
  877. #if defined(SYSCFG_ITLINE7_SR_EXTI12)
  878. /**
  879. * @brief Check if EXTI line 12 interrupt occurred or not.
  880. * @rmtoll SYSCFG_ITLINE7 SR_EXTI12 LL_SYSCFG_IsActiveFlag_EXTI12
  881. * @retval State of bit (1 or 0).
  882. */
  883. __STATIC_INLINE uint32_t LL_SYSCFG_IsActiveFlag_EXTI12(void)
  884. {
  885. return (READ_BIT(SYSCFG->IT_LINE_SR[7], SYSCFG_ITLINE7_SR_EXTI12) == (SYSCFG_ITLINE7_SR_EXTI12));
  886. }
  887. #endif /* SYSCFG_ITLINE7_SR_EXTI12 */
  888. #if defined(SYSCFG_ITLINE7_SR_EXTI13)
  889. /**
  890. * @brief Check if EXTI line 13 interrupt occurred or not.
  891. * @rmtoll SYSCFG_ITLINE7 SR_EXTI13 LL_SYSCFG_IsActiveFlag_EXTI13
  892. * @retval State of bit (1 or 0).
  893. */
  894. __STATIC_INLINE uint32_t LL_SYSCFG_IsActiveFlag_EXTI13(void)
  895. {
  896. return (READ_BIT(SYSCFG->IT_LINE_SR[7], SYSCFG_ITLINE7_SR_EXTI13) == (SYSCFG_ITLINE7_SR_EXTI13));
  897. }
  898. #endif /* SYSCFG_ITLINE7_SR_EXTI13 */
  899. #if defined(SYSCFG_ITLINE7_SR_EXTI14)
  900. /**
  901. * @brief Check if EXTI line 14 interrupt occurred or not.
  902. * @rmtoll SYSCFG_ITLINE7 SR_EXTI14 LL_SYSCFG_IsActiveFlag_EXTI14
  903. * @retval State of bit (1 or 0).
  904. */
  905. __STATIC_INLINE uint32_t LL_SYSCFG_IsActiveFlag_EXTI14(void)
  906. {
  907. return (READ_BIT(SYSCFG->IT_LINE_SR[7], SYSCFG_ITLINE7_SR_EXTI14) == (SYSCFG_ITLINE7_SR_EXTI14));
  908. }
  909. #endif /* SYSCFG_ITLINE7_SR_EXTI14 */
  910. #if defined(SYSCFG_ITLINE7_SR_EXTI15)
  911. /**
  912. * @brief Check if EXTI line 15 interrupt occurred or not.
  913. * @rmtoll SYSCFG_ITLINE7 SR_EXTI15 LL_SYSCFG_IsActiveFlag_EXTI15
  914. * @retval State of bit (1 or 0).
  915. */
  916. __STATIC_INLINE uint32_t LL_SYSCFG_IsActiveFlag_EXTI15(void)
  917. {
  918. return (READ_BIT(SYSCFG->IT_LINE_SR[7], SYSCFG_ITLINE7_SR_EXTI15) == (SYSCFG_ITLINE7_SR_EXTI15));
  919. }
  920. #endif /* SYSCFG_ITLINE7_SR_EXTI15 */
  921. #if defined(SYSCFG_ITLINE8_SR_TSC_EOA)
  922. /**
  923. * @brief Check if Touch sensing controller end of acquisition interrupt occurred or not.
  924. * @rmtoll SYSCFG_ITLINE8 SR_TSC_EOA LL_SYSCFG_IsActiveFlag_TSC_EOA
  925. * @retval State of bit (1 or 0).
  926. */
  927. __STATIC_INLINE uint32_t LL_SYSCFG_IsActiveFlag_TSC_EOA(void)
  928. {
  929. return (READ_BIT(SYSCFG->IT_LINE_SR[8], SYSCFG_ITLINE8_SR_TSC_EOA) == (SYSCFG_ITLINE8_SR_TSC_EOA));
  930. }
  931. #endif /* SYSCFG_ITLINE8_SR_TSC_EOA */
  932. #if defined(SYSCFG_ITLINE8_SR_TSC_MCE)
  933. /**
  934. * @brief Check if Touch sensing controller max counterror interrupt occurred or not.
  935. * @rmtoll SYSCFG_ITLINE8 SR_TSC_MCE LL_SYSCFG_IsActiveFlag_TSC_MCE
  936. * @retval State of bit (1 or 0).
  937. */
  938. __STATIC_INLINE uint32_t LL_SYSCFG_IsActiveFlag_TSC_MCE(void)
  939. {
  940. return (READ_BIT(SYSCFG->IT_LINE_SR[8], SYSCFG_ITLINE8_SR_TSC_MCE) == (SYSCFG_ITLINE8_SR_TSC_MCE));
  941. }
  942. #endif /* SYSCFG_ITLINE8_SR_TSC_MCE */
  943. #if defined(SYSCFG_ITLINE9_SR_DMA1_CH1)
  944. /**
  945. * @brief Check if DMA1 channel 1 interrupt occurred or not.
  946. * @rmtoll SYSCFG_ITLINE9 SR_DMA1_CH1 LL_SYSCFG_IsActiveFlag_DMA1_CH1
  947. * @retval State of bit (1 or 0).
  948. */
  949. __STATIC_INLINE uint32_t LL_SYSCFG_IsActiveFlag_DMA1_CH1(void)
  950. {
  951. return (READ_BIT(SYSCFG->IT_LINE_SR[9], SYSCFG_ITLINE9_SR_DMA1_CH1) == (SYSCFG_ITLINE9_SR_DMA1_CH1));
  952. }
  953. #endif /* SYSCFG_ITLINE9_SR_DMA1_CH1 */
  954. #if defined(SYSCFG_ITLINE10_SR_DMA1_CH2)
  955. /**
  956. * @brief Check if DMA1 channel 2 interrupt occurred or not.
  957. * @rmtoll SYSCFG_ITLINE10 SR_DMA1_CH2 LL_SYSCFG_IsActiveFlag_DMA1_CH2
  958. * @retval State of bit (1 or 0).
  959. */
  960. __STATIC_INLINE uint32_t LL_SYSCFG_IsActiveFlag_DMA1_CH2(void)
  961. {
  962. return (READ_BIT(SYSCFG->IT_LINE_SR[10], SYSCFG_ITLINE10_SR_DMA1_CH2) == (SYSCFG_ITLINE10_SR_DMA1_CH2));
  963. }
  964. #endif /* SYSCFG_ITLINE10_SR_DMA1_CH2 */
  965. #if defined(SYSCFG_ITLINE10_SR_DMA1_CH3)
  966. /**
  967. * @brief Check if DMA1 channel 3 interrupt occurred or not.
  968. * @rmtoll SYSCFG_ITLINE10 SR_DMA1_CH3 LL_SYSCFG_IsActiveFlag_DMA1_CH3
  969. * @retval State of bit (1 or 0).
  970. */
  971. __STATIC_INLINE uint32_t LL_SYSCFG_IsActiveFlag_DMA1_CH3(void)
  972. {
  973. return (READ_BIT(SYSCFG->IT_LINE_SR[10], SYSCFG_ITLINE10_SR_DMA1_CH3) == (SYSCFG_ITLINE10_SR_DMA1_CH3));
  974. }
  975. #endif /* SYSCFG_ITLINE10_SR_DMA1_CH3 */
  976. #if defined(SYSCFG_ITLINE10_SR_DMA2_CH1)
  977. /**
  978. * @brief Check if DMA2 channel 1 interrupt occurred or not.
  979. * @rmtoll SYSCFG_ITLINE10 SR_DMA2_CH1 LL_SYSCFG_IsActiveFlag_DMA2_CH1
  980. * @retval State of bit (1 or 0).
  981. */
  982. __STATIC_INLINE uint32_t LL_SYSCFG_IsActiveFlag_DMA2_CH1(void)
  983. {
  984. return (READ_BIT(SYSCFG->IT_LINE_SR[10], SYSCFG_ITLINE10_SR_DMA2_CH1) == (SYSCFG_ITLINE10_SR_DMA2_CH1));
  985. }
  986. #endif /* SYSCFG_ITLINE10_SR_DMA2_CH1 */
  987. #if defined(SYSCFG_ITLINE10_SR_DMA2_CH2)
  988. /**
  989. * @brief Check if DMA2 channel 2 interrupt occurred or not.
  990. * @rmtoll SYSCFG_ITLINE10 SR_DMA2_CH2 LL_SYSCFG_IsActiveFlag_DMA2_CH2
  991. * @retval State of bit (1 or 0).
  992. */
  993. __STATIC_INLINE uint32_t LL_SYSCFG_IsActiveFlag_DMA2_CH2(void)
  994. {
  995. return (READ_BIT(SYSCFG->IT_LINE_SR[10], SYSCFG_ITLINE10_SR_DMA2_CH2) == (SYSCFG_ITLINE10_SR_DMA2_CH2));
  996. }
  997. #endif /* SYSCFG_ITLINE10_SR_DMA2_CH2 */
  998. #if defined(SYSCFG_ITLINE11_SR_DMA1_CH4)
  999. /**
  1000. * @brief Check if DMA1 channel 4 interrupt occurred or not.
  1001. * @rmtoll SYSCFG_ITLINE11 SR_DMA1_CH4 LL_SYSCFG_IsActiveFlag_DMA1_CH4
  1002. * @retval State of bit (1 or 0).
  1003. */
  1004. __STATIC_INLINE uint32_t LL_SYSCFG_IsActiveFlag_DMA1_CH4(void)
  1005. {
  1006. return (READ_BIT(SYSCFG->IT_LINE_SR[11], SYSCFG_ITLINE11_SR_DMA1_CH4) == (SYSCFG_ITLINE11_SR_DMA1_CH4));
  1007. }
  1008. #endif /* SYSCFG_ITLINE11_SR_DMA1_CH4 */
  1009. #if defined(SYSCFG_ITLINE11_SR_DMA1_CH5)
  1010. /**
  1011. * @brief Check if DMA1 channel 5 interrupt occurred or not.
  1012. * @rmtoll SYSCFG_ITLINE11 SR_DMA1_CH5 LL_SYSCFG_IsActiveFlag_DMA1_CH5
  1013. * @retval State of bit (1 or 0).
  1014. */
  1015. __STATIC_INLINE uint32_t LL_SYSCFG_IsActiveFlag_DMA1_CH5(void)
  1016. {
  1017. return (READ_BIT(SYSCFG->IT_LINE_SR[11], SYSCFG_ITLINE11_SR_DMA1_CH5) == (SYSCFG_ITLINE11_SR_DMA1_CH5));
  1018. }
  1019. #endif /* SYSCFG_ITLINE11_SR_DMA1_CH5 */
  1020. #if defined(SYSCFG_ITLINE11_SR_DMA1_CH6)
  1021. /**
  1022. * @brief Check if DMA1 channel 6 interrupt occurred or not.
  1023. * @rmtoll SYSCFG_ITLINE11 SR_DMA1_CH6 LL_SYSCFG_IsActiveFlag_DMA1_CH6
  1024. * @retval State of bit (1 or 0).
  1025. */
  1026. __STATIC_INLINE uint32_t LL_SYSCFG_IsActiveFlag_DMA1_CH6(void)
  1027. {
  1028. return (READ_BIT(SYSCFG->IT_LINE_SR[11], SYSCFG_ITLINE11_SR_DMA1_CH6) == (SYSCFG_ITLINE11_SR_DMA1_CH6));
  1029. }
  1030. #endif /* SYSCFG_ITLINE11_SR_DMA1_CH6 */
  1031. #if defined(SYSCFG_ITLINE11_SR_DMA1_CH7)
  1032. /**
  1033. * @brief Check if DMA1 channel 7 interrupt occurred or not.
  1034. * @rmtoll SYSCFG_ITLINE11 SR_DMA1_CH7 LL_SYSCFG_IsActiveFlag_DMA1_CH7
  1035. * @retval State of bit (1 or 0).
  1036. */
  1037. __STATIC_INLINE uint32_t LL_SYSCFG_IsActiveFlag_DMA1_CH7(void)
  1038. {
  1039. return (READ_BIT(SYSCFG->IT_LINE_SR[11], SYSCFG_ITLINE11_SR_DMA1_CH7) == (SYSCFG_ITLINE11_SR_DMA1_CH7));
  1040. }
  1041. #endif /* SYSCFG_ITLINE11_SR_DMA1_CH7 */
  1042. #if defined(SYSCFG_ITLINE11_SR_DMA2_CH3)
  1043. /**
  1044. * @brief Check if DMA2 channel 3 interrupt occurred or not.
  1045. * @rmtoll SYSCFG_ITLINE11 SR_DMA2_CH3 LL_SYSCFG_IsActiveFlag_DMA2_CH3
  1046. * @retval State of bit (1 or 0).
  1047. */
  1048. __STATIC_INLINE uint32_t LL_SYSCFG_IsActiveFlag_DMA2_CH3(void)
  1049. {
  1050. return (READ_BIT(SYSCFG->IT_LINE_SR[11], SYSCFG_ITLINE11_SR_DMA2_CH3) == (SYSCFG_ITLINE11_SR_DMA2_CH3));
  1051. }
  1052. #endif /* SYSCFG_ITLINE11_SR_DMA2_CH3 */
  1053. #if defined(SYSCFG_ITLINE11_SR_DMA2_CH4)
  1054. /**
  1055. * @brief Check if DMA2 channel 4 interrupt occurred or not.
  1056. * @rmtoll SYSCFG_ITLINE11 SR_DMA2_CH4 LL_SYSCFG_IsActiveFlag_DMA2_CH4
  1057. * @retval State of bit (1 or 0).
  1058. */
  1059. __STATIC_INLINE uint32_t LL_SYSCFG_IsActiveFlag_DMA2_CH4(void)
  1060. {
  1061. return (READ_BIT(SYSCFG->IT_LINE_SR[11], SYSCFG_ITLINE11_SR_DMA2_CH4) == (SYSCFG_ITLINE11_SR_DMA2_CH4));
  1062. }
  1063. #endif /* SYSCFG_ITLINE11_SR_DMA2_CH4 */
  1064. #if defined(SYSCFG_ITLINE11_SR_DMA2_CH5)
  1065. /**
  1066. * @brief Check if DMA2 channel 5 interrupt occurred or not.
  1067. * @rmtoll SYSCFG_ITLINE11 SR_DMA2_CH5 LL_SYSCFG_IsActiveFlag_DMA2_CH5
  1068. * @retval State of bit (1 or 0).
  1069. */
  1070. __STATIC_INLINE uint32_t LL_SYSCFG_IsActiveFlag_DMA2_CH5(void)
  1071. {
  1072. return (READ_BIT(SYSCFG->IT_LINE_SR[11], SYSCFG_ITLINE11_SR_DMA2_CH5) == (SYSCFG_ITLINE11_SR_DMA2_CH5));
  1073. }
  1074. #endif /* SYSCFG_ITLINE11_SR_DMA2_CH5 */
  1075. #if defined(SYSCFG_ITLINE12_SR_ADC)
  1076. /**
  1077. * @brief Check if ADC interrupt occurred or not.
  1078. * @rmtoll SYSCFG_ITLINE12 SR_ADC LL_SYSCFG_IsActiveFlag_ADC
  1079. * @retval State of bit (1 or 0).
  1080. */
  1081. __STATIC_INLINE uint32_t LL_SYSCFG_IsActiveFlag_ADC(void)
  1082. {
  1083. return (READ_BIT(SYSCFG->IT_LINE_SR[12], SYSCFG_ITLINE12_SR_ADC) == (SYSCFG_ITLINE12_SR_ADC));
  1084. }
  1085. #endif /* SYSCFG_ITLINE12_SR_ADC */
  1086. #if defined(SYSCFG_ITLINE12_SR_COMP1)
  1087. /**
  1088. * @brief Check if Comparator 1 interrupt occurred or not (EXTI line 21).
  1089. * @rmtoll SYSCFG_ITLINE12 SR_COMP1 LL_SYSCFG_IsActiveFlag_COMP1
  1090. * @retval State of bit (1 or 0).
  1091. */
  1092. __STATIC_INLINE uint32_t LL_SYSCFG_IsActiveFlag_COMP1(void)
  1093. {
  1094. return (READ_BIT(SYSCFG->IT_LINE_SR[12], SYSCFG_ITLINE12_SR_COMP1) == (SYSCFG_ITLINE12_SR_COMP1));
  1095. }
  1096. #endif /* SYSCFG_ITLINE12_SR_COMP1 */
  1097. #if defined(SYSCFG_ITLINE12_SR_COMP2)
  1098. /**
  1099. * @brief Check if Comparator 2 interrupt occurred or not (EXTI line 22).
  1100. * @rmtoll SYSCFG_ITLINE12 SR_COMP2 LL_SYSCFG_IsActiveFlag_COMP2
  1101. * @retval State of bit (1 or 0).
  1102. */
  1103. __STATIC_INLINE uint32_t LL_SYSCFG_IsActiveFlag_COMP2(void)
  1104. {
  1105. return (READ_BIT(SYSCFG->IT_LINE_SR[12], SYSCFG_ITLINE12_SR_COMP2) == (SYSCFG_ITLINE12_SR_COMP2));
  1106. }
  1107. #endif /* SYSCFG_ITLINE12_SR_COMP2 */
  1108. #if defined(SYSCFG_ITLINE13_SR_TIM1_BRK)
  1109. /**
  1110. * @brief Check if Timer 1 break interrupt occurred or not.
  1111. * @rmtoll SYSCFG_ITLINE13 SR_TIM1_BRK LL_SYSCFG_IsActiveFlag_TIM1_BRK
  1112. * @retval State of bit (1 or 0).
  1113. */
  1114. __STATIC_INLINE uint32_t LL_SYSCFG_IsActiveFlag_TIM1_BRK(void)
  1115. {
  1116. return (READ_BIT(SYSCFG->IT_LINE_SR[13], SYSCFG_ITLINE13_SR_TIM1_BRK) == (SYSCFG_ITLINE13_SR_TIM1_BRK));
  1117. }
  1118. #endif /* SYSCFG_ITLINE13_SR_TIM1_BRK */
  1119. #if defined(SYSCFG_ITLINE13_SR_TIM1_UPD)
  1120. /**
  1121. * @brief Check if Timer 1 update interrupt occurred or not.
  1122. * @rmtoll SYSCFG_ITLINE13 SR_TIM1_UPD LL_SYSCFG_IsActiveFlag_TIM1_UPD
  1123. * @retval State of bit (1 or 0).
  1124. */
  1125. __STATIC_INLINE uint32_t LL_SYSCFG_IsActiveFlag_TIM1_UPD(void)
  1126. {
  1127. return (READ_BIT(SYSCFG->IT_LINE_SR[13], SYSCFG_ITLINE13_SR_TIM1_UPD) == (SYSCFG_ITLINE13_SR_TIM1_UPD));
  1128. }
  1129. #endif /* SYSCFG_ITLINE13_SR_TIM1_UPD */
  1130. #if defined(SYSCFG_ITLINE13_SR_TIM1_TRG)
  1131. /**
  1132. * @brief Check if Timer 1 trigger interrupt occurred or not.
  1133. * @rmtoll SYSCFG_ITLINE13 SR_TIM1_TRG LL_SYSCFG_IsActiveFlag_TIM1_TRG
  1134. * @retval State of bit (1 or 0).
  1135. */
  1136. __STATIC_INLINE uint32_t LL_SYSCFG_IsActiveFlag_TIM1_TRG(void)
  1137. {
  1138. return (READ_BIT(SYSCFG->IT_LINE_SR[13], SYSCFG_ITLINE13_SR_TIM1_TRG) == (SYSCFG_ITLINE13_SR_TIM1_TRG));
  1139. }
  1140. #endif /* SYSCFG_ITLINE13_SR_TIM1_TRG */
  1141. #if defined(SYSCFG_ITLINE13_SR_TIM1_CCU)
  1142. /**
  1143. * @brief Check if Timer 1 commutation interrupt occurred or not.
  1144. * @rmtoll SYSCFG_ITLINE13 SR_TIM1_CCU LL_SYSCFG_IsActiveFlag_TIM1_CCU
  1145. * @retval State of bit (1 or 0).
  1146. */
  1147. __STATIC_INLINE uint32_t LL_SYSCFG_IsActiveFlag_TIM1_CCU(void)
  1148. {
  1149. return (READ_BIT(SYSCFG->IT_LINE_SR[13], SYSCFG_ITLINE13_SR_TIM1_CCU) == (SYSCFG_ITLINE13_SR_TIM1_CCU));
  1150. }
  1151. #endif /* SYSCFG_ITLINE13_SR_TIM1_CCU */
  1152. #if defined(SYSCFG_ITLINE14_SR_TIM1_CC)
  1153. /**
  1154. * @brief Check if Timer 1 capture compare interrupt occurred or not.
  1155. * @rmtoll SYSCFG_ITLINE14 SR_TIM1_CC LL_SYSCFG_IsActiveFlag_TIM1_CC
  1156. * @retval State of bit (1 or 0).
  1157. */
  1158. __STATIC_INLINE uint32_t LL_SYSCFG_IsActiveFlag_TIM1_CC(void)
  1159. {
  1160. return (READ_BIT(SYSCFG->IT_LINE_SR[14], SYSCFG_ITLINE14_SR_TIM1_CC) == (SYSCFG_ITLINE14_SR_TIM1_CC));
  1161. }
  1162. #endif /* SYSCFG_ITLINE14_SR_TIM1_CC */
  1163. #if defined(SYSCFG_ITLINE15_SR_TIM2_GLB)
  1164. /**
  1165. * @brief Check if Timer 2 interrupt occurred or not.
  1166. * @rmtoll SYSCFG_ITLINE15 SR_TIM2_GLB LL_SYSCFG_IsActiveFlag_TIM2
  1167. * @retval State of bit (1 or 0).
  1168. */
  1169. __STATIC_INLINE uint32_t LL_SYSCFG_IsActiveFlag_TIM2(void)
  1170. {
  1171. return (READ_BIT(SYSCFG->IT_LINE_SR[15], SYSCFG_ITLINE15_SR_TIM2_GLB) == (SYSCFG_ITLINE15_SR_TIM2_GLB));
  1172. }
  1173. #endif /* SYSCFG_ITLINE15_SR_TIM2_GLB */
  1174. #if defined(SYSCFG_ITLINE16_SR_TIM3_GLB)
  1175. /**
  1176. * @brief Check if Timer 3 interrupt occurred or not.
  1177. * @rmtoll SYSCFG_ITLINE16 SR_TIM3_GLB LL_SYSCFG_IsActiveFlag_TIM3
  1178. * @retval State of bit (1 or 0).
  1179. */
  1180. __STATIC_INLINE uint32_t LL_SYSCFG_IsActiveFlag_TIM3(void)
  1181. {
  1182. return (READ_BIT(SYSCFG->IT_LINE_SR[16], SYSCFG_ITLINE16_SR_TIM3_GLB) == (SYSCFG_ITLINE16_SR_TIM3_GLB));
  1183. }
  1184. #endif /* SYSCFG_ITLINE16_SR_TIM3_GLB */
  1185. #if defined(SYSCFG_ITLINE17_SR_DAC)
  1186. /**
  1187. * @brief Check if DAC underrun interrupt occurred or not.
  1188. * @rmtoll SYSCFG_ITLINE17 SR_DAC LL_SYSCFG_IsActiveFlag_DAC
  1189. * @retval State of bit (1 or 0).
  1190. */
  1191. __STATIC_INLINE uint32_t LL_SYSCFG_IsActiveFlag_DAC(void)
  1192. {
  1193. return (READ_BIT(SYSCFG->IT_LINE_SR[17], SYSCFG_ITLINE17_SR_DAC) == (SYSCFG_ITLINE17_SR_DAC));
  1194. }
  1195. #endif /* SYSCFG_ITLINE17_SR_DAC */
  1196. #if defined(SYSCFG_ITLINE17_SR_TIM6_GLB)
  1197. /**
  1198. * @brief Check if Timer 6 interrupt occurred or not.
  1199. * @rmtoll SYSCFG_ITLINE17 SR_TIM6_GLB LL_SYSCFG_IsActiveFlag_TIM6
  1200. * @retval State of bit (1 or 0).
  1201. */
  1202. __STATIC_INLINE uint32_t LL_SYSCFG_IsActiveFlag_TIM6(void)
  1203. {
  1204. return (READ_BIT(SYSCFG->IT_LINE_SR[17], SYSCFG_ITLINE17_SR_TIM6_GLB) == (SYSCFG_ITLINE17_SR_TIM6_GLB));
  1205. }
  1206. #endif /* SYSCFG_ITLINE17_SR_TIM6_GLB */
  1207. #if defined(SYSCFG_ITLINE18_SR_TIM7_GLB)
  1208. /**
  1209. * @brief Check if Timer 7 interrupt occurred or not.
  1210. * @rmtoll SYSCFG_ITLINE18 SR_TIM7_GLB LL_SYSCFG_IsActiveFlag_TIM7
  1211. * @retval State of bit (1 or 0).
  1212. */
  1213. __STATIC_INLINE uint32_t LL_SYSCFG_IsActiveFlag_TIM7(void)
  1214. {
  1215. return (READ_BIT(SYSCFG->IT_LINE_SR[18], SYSCFG_ITLINE18_SR_TIM7_GLB) == (SYSCFG_ITLINE18_SR_TIM7_GLB));
  1216. }
  1217. #endif /* SYSCFG_ITLINE18_SR_TIM7_GLB */
  1218. #if defined(SYSCFG_ITLINE19_SR_TIM14_GLB)
  1219. /**
  1220. * @brief Check if Timer 14 interrupt occurred or not.
  1221. * @rmtoll SYSCFG_ITLINE19 SR_TIM14_GLB LL_SYSCFG_IsActiveFlag_TIM14
  1222. * @retval State of bit (1 or 0).
  1223. */
  1224. __STATIC_INLINE uint32_t LL_SYSCFG_IsActiveFlag_TIM14(void)
  1225. {
  1226. return (READ_BIT(SYSCFG->IT_LINE_SR[19], SYSCFG_ITLINE19_SR_TIM14_GLB) == (SYSCFG_ITLINE19_SR_TIM14_GLB));
  1227. }
  1228. #endif /* SYSCFG_ITLINE19_SR_TIM14_GLB */
  1229. #if defined(SYSCFG_ITLINE20_SR_TIM15_GLB)
  1230. /**
  1231. * @brief Check if Timer 15 interrupt occurred or not.
  1232. * @rmtoll SYSCFG_ITLINE20 SR_TIM15_GLB LL_SYSCFG_IsActiveFlag_TIM15
  1233. * @retval State of bit (1 or 0).
  1234. */
  1235. __STATIC_INLINE uint32_t LL_SYSCFG_IsActiveFlag_TIM15(void)
  1236. {
  1237. return (READ_BIT(SYSCFG->IT_LINE_SR[20], SYSCFG_ITLINE20_SR_TIM15_GLB) == (SYSCFG_ITLINE20_SR_TIM15_GLB));
  1238. }
  1239. #endif /* SYSCFG_ITLINE20_SR_TIM15_GLB */
  1240. #if defined(SYSCFG_ITLINE21_SR_TIM16_GLB)
  1241. /**
  1242. * @brief Check if Timer 16 interrupt occurred or not.
  1243. * @rmtoll SYSCFG_ITLINE21 SR_TIM16_GLB LL_SYSCFG_IsActiveFlag_TIM16
  1244. * @retval State of bit (1 or 0).
  1245. */
  1246. __STATIC_INLINE uint32_t LL_SYSCFG_IsActiveFlag_TIM16(void)
  1247. {
  1248. return (READ_BIT(SYSCFG->IT_LINE_SR[21], SYSCFG_ITLINE21_SR_TIM16_GLB) == (SYSCFG_ITLINE21_SR_TIM16_GLB));
  1249. }
  1250. #endif /* SYSCFG_ITLINE21_SR_TIM16_GLB */
  1251. #if defined(SYSCFG_ITLINE22_SR_TIM17_GLB)
  1252. /**
  1253. * @brief Check if Timer 17 interrupt occurred or not.
  1254. * @rmtoll SYSCFG_ITLINE22 SR_TIM17_GLB LL_SYSCFG_IsActiveFlag_TIM17
  1255. * @retval State of bit (1 or 0).
  1256. */
  1257. __STATIC_INLINE uint32_t LL_SYSCFG_IsActiveFlag_TIM17(void)
  1258. {
  1259. return (READ_BIT(SYSCFG->IT_LINE_SR[22], SYSCFG_ITLINE22_SR_TIM17_GLB) == (SYSCFG_ITLINE22_SR_TIM17_GLB));
  1260. }
  1261. #endif /* SYSCFG_ITLINE22_SR_TIM17_GLB */
  1262. #if defined(SYSCFG_ITLINE23_SR_I2C1_GLB)
  1263. /**
  1264. * @brief Check if I2C1 interrupt occurred or not, combined with EXTI line 23.
  1265. * @rmtoll SYSCFG_ITLINE23 SR_I2C1_GLB LL_SYSCFG_IsActiveFlag_I2C1
  1266. * @retval State of bit (1 or 0).
  1267. */
  1268. __STATIC_INLINE uint32_t LL_SYSCFG_IsActiveFlag_I2C1(void)
  1269. {
  1270. return (READ_BIT(SYSCFG->IT_LINE_SR[23], SYSCFG_ITLINE23_SR_I2C1_GLB) == (SYSCFG_ITLINE23_SR_I2C1_GLB));
  1271. }
  1272. #endif /* SYSCFG_ITLINE23_SR_I2C1_GLB */
  1273. #if defined(SYSCFG_ITLINE24_SR_I2C2_GLB)
  1274. /**
  1275. * @brief Check if I2C2 interrupt occurred or not.
  1276. * @rmtoll SYSCFG_ITLINE24 SR_I2C2_GLB LL_SYSCFG_IsActiveFlag_I2C2
  1277. * @retval State of bit (1 or 0).
  1278. */
  1279. __STATIC_INLINE uint32_t LL_SYSCFG_IsActiveFlag_I2C2(void)
  1280. {
  1281. return (READ_BIT(SYSCFG->IT_LINE_SR[24], SYSCFG_ITLINE24_SR_I2C2_GLB) == (SYSCFG_ITLINE24_SR_I2C2_GLB));
  1282. }
  1283. #endif /* SYSCFG_ITLINE24_SR_I2C2_GLB */
  1284. #if defined(SYSCFG_ITLINE25_SR_SPI1)
  1285. /**
  1286. * @brief Check if SPI1 interrupt occurred or not.
  1287. * @rmtoll SYSCFG_ITLINE25 SR_SPI1 LL_SYSCFG_IsActiveFlag_SPI1
  1288. * @retval State of bit (1 or 0).
  1289. */
  1290. __STATIC_INLINE uint32_t LL_SYSCFG_IsActiveFlag_SPI1(void)
  1291. {
  1292. return (READ_BIT(SYSCFG->IT_LINE_SR[25], SYSCFG_ITLINE25_SR_SPI1) == (SYSCFG_ITLINE25_SR_SPI1));
  1293. }
  1294. #endif /* SYSCFG_ITLINE25_SR_SPI1 */
  1295. #if defined(SYSCFG_ITLINE26_SR_SPI2)
  1296. /**
  1297. * @brief Check if SPI2 interrupt occurred or not.
  1298. * @rmtoll SYSCFG_ITLINE26 SR_SPI2 LL_SYSCFG_IsActiveFlag_SPI2
  1299. * @retval State of bit (1 or 0).
  1300. */
  1301. __STATIC_INLINE uint32_t LL_SYSCFG_IsActiveFlag_SPI2(void)
  1302. {
  1303. return (READ_BIT(SYSCFG->IT_LINE_SR[26], SYSCFG_ITLINE26_SR_SPI2) == (SYSCFG_ITLINE26_SR_SPI2));
  1304. }
  1305. #endif /* SYSCFG_ITLINE26_SR_SPI2 */
  1306. #if defined(SYSCFG_ITLINE27_SR_USART1_GLB)
  1307. /**
  1308. * @brief Check if USART1 interrupt occurred or not, combined with EXTI line 25.
  1309. * @rmtoll SYSCFG_ITLINE27 SR_USART1_GLB LL_SYSCFG_IsActiveFlag_USART1
  1310. * @retval State of bit (1 or 0).
  1311. */
  1312. __STATIC_INLINE uint32_t LL_SYSCFG_IsActiveFlag_USART1(void)
  1313. {
  1314. return (READ_BIT(SYSCFG->IT_LINE_SR[27], SYSCFG_ITLINE27_SR_USART1_GLB) == (SYSCFG_ITLINE27_SR_USART1_GLB));
  1315. }
  1316. #endif /* SYSCFG_ITLINE27_SR_USART1_GLB */
  1317. #if defined(SYSCFG_ITLINE28_SR_USART2_GLB)
  1318. /**
  1319. * @brief Check if USART2 interrupt occurred or not, combined with EXTI line 26.
  1320. * @rmtoll SYSCFG_ITLINE28 SR_USART2_GLB LL_SYSCFG_IsActiveFlag_USART2
  1321. * @retval State of bit (1 or 0).
  1322. */
  1323. __STATIC_INLINE uint32_t LL_SYSCFG_IsActiveFlag_USART2(void)
  1324. {
  1325. return (READ_BIT(SYSCFG->IT_LINE_SR[28], SYSCFG_ITLINE28_SR_USART2_GLB) == (SYSCFG_ITLINE28_SR_USART2_GLB));
  1326. }
  1327. #endif /* SYSCFG_ITLINE28_SR_USART2_GLB */
  1328. #if defined(SYSCFG_ITLINE29_SR_USART3_GLB)
  1329. /**
  1330. * @brief Check if USART3 interrupt occurred or not, combined with EXTI line 28.
  1331. * @rmtoll SYSCFG_ITLINE29 SR_USART3_GLB LL_SYSCFG_IsActiveFlag_USART3
  1332. * @retval State of bit (1 or 0).
  1333. */
  1334. __STATIC_INLINE uint32_t LL_SYSCFG_IsActiveFlag_USART3(void)
  1335. {
  1336. return (READ_BIT(SYSCFG->IT_LINE_SR[29], SYSCFG_ITLINE29_SR_USART3_GLB) == (SYSCFG_ITLINE29_SR_USART3_GLB));
  1337. }
  1338. #endif /* SYSCFG_ITLINE29_SR_USART3_GLB */
  1339. #if defined(SYSCFG_ITLINE29_SR_USART4_GLB)
  1340. /**
  1341. * @brief Check if USART4 interrupt occurred or not.
  1342. * @rmtoll SYSCFG_ITLINE29 SR_USART4_GLB LL_SYSCFG_IsActiveFlag_USART4
  1343. * @retval State of bit (1 or 0).
  1344. */
  1345. __STATIC_INLINE uint32_t LL_SYSCFG_IsActiveFlag_USART4(void)
  1346. {
  1347. return (READ_BIT(SYSCFG->IT_LINE_SR[29], SYSCFG_ITLINE29_SR_USART4_GLB) == (SYSCFG_ITLINE29_SR_USART4_GLB));
  1348. }
  1349. #endif /* SYSCFG_ITLINE29_SR_USART4_GLB */
  1350. #if defined(SYSCFG_ITLINE29_SR_USART5_GLB)
  1351. /**
  1352. * @brief Check if USART5 interrupt occurred or not.
  1353. * @rmtoll SYSCFG_ITLINE29 SR_USART5_GLB LL_SYSCFG_IsActiveFlag_USART5
  1354. * @retval State of bit (1 or 0).
  1355. */
  1356. __STATIC_INLINE uint32_t LL_SYSCFG_IsActiveFlag_USART5(void)
  1357. {
  1358. return (READ_BIT(SYSCFG->IT_LINE_SR[29], SYSCFG_ITLINE29_SR_USART5_GLB) == (SYSCFG_ITLINE29_SR_USART5_GLB));
  1359. }
  1360. #endif /* SYSCFG_ITLINE29_SR_USART5_GLB */
  1361. #if defined(SYSCFG_ITLINE29_SR_USART6_GLB)
  1362. /**
  1363. * @brief Check if USART6 interrupt occurred or not.
  1364. * @rmtoll SYSCFG_ITLINE29 SR_USART6_GLB LL_SYSCFG_IsActiveFlag_USART6
  1365. * @retval State of bit (1 or 0).
  1366. */
  1367. __STATIC_INLINE uint32_t LL_SYSCFG_IsActiveFlag_USART6(void)
  1368. {
  1369. return (READ_BIT(SYSCFG->IT_LINE_SR[29], SYSCFG_ITLINE29_SR_USART6_GLB) == (SYSCFG_ITLINE29_SR_USART6_GLB));
  1370. }
  1371. #endif /* SYSCFG_ITLINE29_SR_USART6_GLB */
  1372. #if defined(SYSCFG_ITLINE29_SR_USART7_GLB)
  1373. /**
  1374. * @brief Check if USART7 interrupt occurred or not.
  1375. * @rmtoll SYSCFG_ITLINE29 SR_USART7_GLB LL_SYSCFG_IsActiveFlag_USART7
  1376. * @retval State of bit (1 or 0).
  1377. */
  1378. __STATIC_INLINE uint32_t LL_SYSCFG_IsActiveFlag_USART7(void)
  1379. {
  1380. return (READ_BIT(SYSCFG->IT_LINE_SR[29], SYSCFG_ITLINE29_SR_USART7_GLB) == (SYSCFG_ITLINE29_SR_USART7_GLB));
  1381. }
  1382. #endif /* SYSCFG_ITLINE29_SR_USART7_GLB */
  1383. #if defined(SYSCFG_ITLINE29_SR_USART8_GLB)
  1384. /**
  1385. * @brief Check if USART8 interrupt occurred or not.
  1386. * @rmtoll SYSCFG_ITLINE29 SR_USART8_GLB LL_SYSCFG_IsActiveFlag_USART8
  1387. * @retval State of bit (1 or 0).
  1388. */
  1389. __STATIC_INLINE uint32_t LL_SYSCFG_IsActiveFlag_USART8(void)
  1390. {
  1391. return (READ_BIT(SYSCFG->IT_LINE_SR[29], SYSCFG_ITLINE29_SR_USART8_GLB) == (SYSCFG_ITLINE29_SR_USART8_GLB));
  1392. }
  1393. #endif /* SYSCFG_ITLINE29_SR_USART8_GLB */
  1394. #if defined(SYSCFG_ITLINE30_SR_CAN)
  1395. /**
  1396. * @brief Check if CAN interrupt occurred or not.
  1397. * @rmtoll SYSCFG_ITLINE30 SR_CAN LL_SYSCFG_IsActiveFlag_CAN
  1398. * @retval State of bit (1 or 0).
  1399. */
  1400. __STATIC_INLINE uint32_t LL_SYSCFG_IsActiveFlag_CAN(void)
  1401. {
  1402. return (READ_BIT(SYSCFG->IT_LINE_SR[30], SYSCFG_ITLINE30_SR_CAN) == (SYSCFG_ITLINE30_SR_CAN));
  1403. }
  1404. #endif /* SYSCFG_ITLINE30_SR_CAN */
  1405. #if defined(SYSCFG_ITLINE30_SR_CEC)
  1406. /**
  1407. * @brief Check if CEC interrupt occurred or not, combined with EXTI line 27.
  1408. * @rmtoll SYSCFG_ITLINE30 SR_CEC LL_SYSCFG_IsActiveFlag_CEC
  1409. * @retval State of bit (1 or 0).
  1410. */
  1411. __STATIC_INLINE uint32_t LL_SYSCFG_IsActiveFlag_CEC(void)
  1412. {
  1413. return (READ_BIT(SYSCFG->IT_LINE_SR[30], SYSCFG_ITLINE30_SR_CEC) == (SYSCFG_ITLINE30_SR_CEC));
  1414. }
  1415. #endif /* SYSCFG_ITLINE30_SR_CEC */
  1416. /**
  1417. * @brief Set connections to TIMx Break inputs
  1418. * @rmtoll SYSCFG_CFGR2 LOCKUP_LOCK LL_SYSCFG_SetTIMBreakInputs\n
  1419. * SYSCFG_CFGR2 SRAM_PARITY_LOCK LL_SYSCFG_SetTIMBreakInputs\n
  1420. * SYSCFG_CFGR2 PVD_LOCK LL_SYSCFG_SetTIMBreakInputs
  1421. * @param Break This parameter can be a combination of the following values:
  1422. * @arg @ref LL_SYSCFG_TIMBREAK_PVD (*)
  1423. * @arg @ref LL_SYSCFG_TIMBREAK_SRAM_PARITY
  1424. * @arg @ref LL_SYSCFG_TIMBREAK_LOCKUP
  1425. *
  1426. * (*) value not defined in all devices
  1427. * @retval None
  1428. */
  1429. __STATIC_INLINE void LL_SYSCFG_SetTIMBreakInputs(uint32_t Break)
  1430. {
  1431. #if defined(SYSCFG_CFGR2_PVD_LOCK)
  1432. MODIFY_REG(SYSCFG->CFGR2, SYSCFG_CFGR2_LOCKUP_LOCK | SYSCFG_CFGR2_SRAM_PARITY_LOCK | SYSCFG_CFGR2_PVD_LOCK, Break);
  1433. #else
  1434. MODIFY_REG(SYSCFG->CFGR2, SYSCFG_CFGR2_LOCKUP_LOCK | SYSCFG_CFGR2_SRAM_PARITY_LOCK, Break);
  1435. #endif /*SYSCFG_CFGR2_PVD_LOCK*/
  1436. }
  1437. /**
  1438. * @brief Get connections to TIMx Break inputs
  1439. * @rmtoll SYSCFG_CFGR2 LOCKUP_LOCK LL_SYSCFG_GetTIMBreakInputs\n
  1440. * SYSCFG_CFGR2 SRAM_PARITY_LOCK LL_SYSCFG_GetTIMBreakInputs\n
  1441. * SYSCFG_CFGR2 PVD_LOCK LL_SYSCFG_GetTIMBreakInputs
  1442. * @retval Returned value can be can be a combination of the following values:
  1443. * @arg @ref LL_SYSCFG_TIMBREAK_PVD (*)
  1444. * @arg @ref LL_SYSCFG_TIMBREAK_SRAM_PARITY
  1445. * @arg @ref LL_SYSCFG_TIMBREAK_LOCKUP
  1446. *
  1447. * (*) value not defined in all devices
  1448. */
  1449. __STATIC_INLINE uint32_t LL_SYSCFG_GetTIMBreakInputs(void)
  1450. {
  1451. #if defined(SYSCFG_CFGR2_PVD_LOCK)
  1452. return (uint32_t)(READ_BIT(SYSCFG->CFGR2,
  1453. SYSCFG_CFGR2_LOCKUP_LOCK | SYSCFG_CFGR2_SRAM_PARITY_LOCK | SYSCFG_CFGR2_PVD_LOCK));
  1454. #else
  1455. return (uint32_t)(READ_BIT(SYSCFG->CFGR2, SYSCFG_CFGR2_LOCKUP_LOCK | SYSCFG_CFGR2_SRAM_PARITY_LOCK));
  1456. #endif /*SYSCFG_CFGR2_PVD_LOCK*/
  1457. }
  1458. /**
  1459. * @brief Check if SRAM parity error detected
  1460. * @rmtoll SYSCFG_CFGR2 SRAM_PEF LL_SYSCFG_IsActiveFlag_SP
  1461. * @retval State of bit (1 or 0).
  1462. */
  1463. __STATIC_INLINE uint32_t LL_SYSCFG_IsActiveFlag_SP(void)
  1464. {
  1465. return (READ_BIT(SYSCFG->CFGR2, SYSCFG_CFGR2_SRAM_PEF) == (SYSCFG_CFGR2_SRAM_PEF));
  1466. }
  1467. /**
  1468. * @brief Clear SRAM parity error flag
  1469. * @rmtoll SYSCFG_CFGR2 SRAM_PEF LL_SYSCFG_ClearFlag_SP
  1470. * @retval None
  1471. */
  1472. __STATIC_INLINE void LL_SYSCFG_ClearFlag_SP(void)
  1473. {
  1474. SET_BIT(SYSCFG->CFGR2, SYSCFG_CFGR2_SRAM_PEF);
  1475. }
  1476. /**
  1477. * @}
  1478. */
  1479. /** @defgroup SYSTEM_LL_EF_DBGMCU DBGMCU
  1480. * @{
  1481. */
  1482. /**
  1483. * @brief Return the device identifier
  1484. * @note For STM32F03x devices, the device ID is 0x444
  1485. * @note For STM32F04x devices, the device ID is 0x445.
  1486. * @note For STM32F05x devices, the device ID is 0x440
  1487. * @note For STM32F07x devices, the device ID is 0x448
  1488. * @note For STM32F09x devices, the device ID is 0x442
  1489. * @rmtoll DBGMCU_IDCODE DEV_ID LL_DBGMCU_GetDeviceID
  1490. * @retval Values between Min_Data=0x00 and Max_Data=0xFFF
  1491. */
  1492. __STATIC_INLINE uint32_t LL_DBGMCU_GetDeviceID(void)
  1493. {
  1494. return (uint32_t)(READ_BIT(DBGMCU->IDCODE, DBGMCU_IDCODE_DEV_ID));
  1495. }
  1496. /**
  1497. * @brief Return the device revision identifier
  1498. * @note This field indicates the revision of the device.
  1499. For example, it is read as 0x1000 for Revision 1.0.
  1500. * @rmtoll DBGMCU_IDCODE REV_ID LL_DBGMCU_GetRevisionID
  1501. * @retval Values between Min_Data=0x00 and Max_Data=0xFFFF
  1502. */
  1503. __STATIC_INLINE uint32_t LL_DBGMCU_GetRevisionID(void)
  1504. {
  1505. return (uint32_t)(READ_BIT(DBGMCU->IDCODE, DBGMCU_IDCODE_REV_ID) >> DBGMCU_IDCODE_REV_ID_Pos);
  1506. }
  1507. /**
  1508. * @brief Enable the Debug Module during STOP mode
  1509. * @rmtoll DBGMCU_CR DBG_STOP LL_DBGMCU_EnableDBGStopMode
  1510. * @retval None
  1511. */
  1512. __STATIC_INLINE void LL_DBGMCU_EnableDBGStopMode(void)
  1513. {
  1514. SET_BIT(DBGMCU->CR, DBGMCU_CR_DBG_STOP);
  1515. }
  1516. /**
  1517. * @brief Disable the Debug Module during STOP mode
  1518. * @rmtoll DBGMCU_CR DBG_STOP LL_DBGMCU_DisableDBGStopMode
  1519. * @retval None
  1520. */
  1521. __STATIC_INLINE void LL_DBGMCU_DisableDBGStopMode(void)
  1522. {
  1523. CLEAR_BIT(DBGMCU->CR, DBGMCU_CR_DBG_STOP);
  1524. }
  1525. /**
  1526. * @brief Enable the Debug Module during STANDBY mode
  1527. * @rmtoll DBGMCU_CR DBG_STANDBY LL_DBGMCU_EnableDBGStandbyMode
  1528. * @retval None
  1529. */
  1530. __STATIC_INLINE void LL_DBGMCU_EnableDBGStandbyMode(void)
  1531. {
  1532. SET_BIT(DBGMCU->CR, DBGMCU_CR_DBG_STANDBY);
  1533. }
  1534. /**
  1535. * @brief Disable the Debug Module during STANDBY mode
  1536. * @rmtoll DBGMCU_CR DBG_STANDBY LL_DBGMCU_DisableDBGStandbyMode
  1537. * @retval None
  1538. */
  1539. __STATIC_INLINE void LL_DBGMCU_DisableDBGStandbyMode(void)
  1540. {
  1541. CLEAR_BIT(DBGMCU->CR, DBGMCU_CR_DBG_STANDBY);
  1542. }
  1543. /**
  1544. * @brief Freeze APB1 peripherals (group1 peripherals)
  1545. * @rmtoll DBGMCU_APB1FZ DBG_TIM2_STOP LL_DBGMCU_APB1_GRP1_FreezePeriph\n
  1546. * DBGMCU_APB1FZ DBG_TIM3_STOP LL_DBGMCU_APB1_GRP1_FreezePeriph\n
  1547. * DBGMCU_APB1FZ DBG_TIM6_STOP LL_DBGMCU_APB1_GRP1_FreezePeriph\n
  1548. * DBGMCU_APB1FZ DBG_TIM7_STOP LL_DBGMCU_APB1_GRP1_FreezePeriph\n
  1549. * DBGMCU_APB1FZ DBG_TIM14_STOP LL_DBGMCU_APB1_GRP1_FreezePeriph\n
  1550. * DBGMCU_APB1FZ DBG_RTC_STOP LL_DBGMCU_APB1_GRP1_FreezePeriph\n
  1551. * DBGMCU_APB1FZ DBG_WWDG_STOP LL_DBGMCU_APB1_GRP1_FreezePeriph\n
  1552. * DBGMCU_APB1FZ DBG_IWDG_STOP LL_DBGMCU_APB1_GRP1_FreezePeriph\n
  1553. * DBGMCU_APB1FZ DBG_I2C1_SMBUS_TIMEOUT LL_DBGMCU_APB1_GRP1_FreezePeriph\n
  1554. * DBGMCU_APB1FZ DBG_CAN_STOP LL_DBGMCU_APB1_GRP1_FreezePeriph
  1555. * @param Periphs This parameter can be a combination of the following values:
  1556. * @arg @ref LL_DBGMCU_APB1_GRP1_TIM2_STOP (*)
  1557. * @arg @ref LL_DBGMCU_APB1_GRP1_TIM3_STOP
  1558. * @arg @ref LL_DBGMCU_APB1_GRP1_TIM6_STOP (*)
  1559. * @arg @ref LL_DBGMCU_APB1_GRP1_TIM7_STOP (*)
  1560. * @arg @ref LL_DBGMCU_APB1_GRP1_TIM14_STOP
  1561. * @arg @ref LL_DBGMCU_APB1_GRP1_RTC_STOP
  1562. * @arg @ref LL_DBGMCU_APB1_GRP1_WWDG_STOP
  1563. * @arg @ref LL_DBGMCU_APB1_GRP1_IWDG_STOP
  1564. * @arg @ref LL_DBGMCU_APB1_GRP1_I2C1_STOP
  1565. * @arg @ref LL_DBGMCU_APB1_GRP1_CAN_STOP (*)
  1566. *
  1567. * (*) value not defined in all devices
  1568. * @retval None
  1569. */
  1570. __STATIC_INLINE void LL_DBGMCU_APB1_GRP1_FreezePeriph(uint32_t Periphs)
  1571. {
  1572. SET_BIT(DBGMCU->APB1FZ, Periphs);
  1573. }
  1574. /**
  1575. * @brief Unfreeze APB1 peripherals (group1 peripherals)
  1576. * @rmtoll DBGMCU_APB1FZ DBG_TIM2_STOP LL_DBGMCU_APB1_GRP1_UnFreezePeriph\n
  1577. * DBGMCU_APB1FZ DBG_TIM3_STOP LL_DBGMCU_APB1_GRP1_UnFreezePeriph\n
  1578. * DBGMCU_APB1FZ DBG_TIM6_STOP LL_DBGMCU_APB1_GRP1_UnFreezePeriph\n
  1579. * DBGMCU_APB1FZ DBG_TIM7_STOP LL_DBGMCU_APB1_GRP1_UnFreezePeriph\n
  1580. * DBGMCU_APB1FZ DBG_TIM14_STOP LL_DBGMCU_APB1_GRP1_UnFreezePeriph\n
  1581. * DBGMCU_APB1FZ DBG_RTC_STOP LL_DBGMCU_APB1_GRP1_UnFreezePeriph\n
  1582. * DBGMCU_APB1FZ DBG_WWDG_STOP LL_DBGMCU_APB1_GRP1_UnFreezePeriph\n
  1583. * DBGMCU_APB1FZ DBG_IWDG_STOP LL_DBGMCU_APB1_GRP1_UnFreezePeriph\n
  1584. * DBGMCU_APB1FZ DBG_I2C1_SMBUS_TIMEOUT LL_DBGMCU_APB1_GRP1_UnFreezePeriph\n
  1585. * DBGMCU_APB1FZ DBG_CAN_STOP LL_DBGMCU_APB1_GRP1_UnFreezePeriph
  1586. * @param Periphs This parameter can be a combination of the following values:
  1587. * @arg @ref LL_DBGMCU_APB1_GRP1_TIM2_STOP (*)
  1588. * @arg @ref LL_DBGMCU_APB1_GRP1_TIM3_STOP
  1589. * @arg @ref LL_DBGMCU_APB1_GRP1_TIM6_STOP (*)
  1590. * @arg @ref LL_DBGMCU_APB1_GRP1_TIM7_STOP (*)
  1591. * @arg @ref LL_DBGMCU_APB1_GRP1_TIM14_STOP
  1592. * @arg @ref LL_DBGMCU_APB1_GRP1_RTC_STOP
  1593. * @arg @ref LL_DBGMCU_APB1_GRP1_WWDG_STOP
  1594. * @arg @ref LL_DBGMCU_APB1_GRP1_IWDG_STOP
  1595. * @arg @ref LL_DBGMCU_APB1_GRP1_I2C1_STOP
  1596. * @arg @ref LL_DBGMCU_APB1_GRP1_CAN_STOP (*)
  1597. *
  1598. * (*) value not defined in all devices
  1599. * @retval None
  1600. */
  1601. __STATIC_INLINE void LL_DBGMCU_APB1_GRP1_UnFreezePeriph(uint32_t Periphs)
  1602. {
  1603. CLEAR_BIT(DBGMCU->APB1FZ, Periphs);
  1604. }
  1605. /**
  1606. * @brief Freeze APB1 peripherals (group2 peripherals)
  1607. * @rmtoll DBGMCU_APB2FZ DBG_TIM1_STOP LL_DBGMCU_APB1_GRP2_FreezePeriph\n
  1608. * DBGMCU_APB2FZ DBG_TIM15_STOP LL_DBGMCU_APB1_GRP2_FreezePeriph\n
  1609. * DBGMCU_APB2FZ DBG_TIM16_STOP LL_DBGMCU_APB1_GRP2_FreezePeriph\n
  1610. * DBGMCU_APB2FZ DBG_TIM17_STOP LL_DBGMCU_APB1_GRP2_FreezePeriph
  1611. * @param Periphs This parameter can be a combination of the following values:
  1612. * @arg @ref LL_DBGMCU_APB1_GRP2_TIM1_STOP
  1613. * @arg @ref LL_DBGMCU_APB1_GRP2_TIM15_STOP (*)
  1614. * @arg @ref LL_DBGMCU_APB1_GRP2_TIM16_STOP
  1615. * @arg @ref LL_DBGMCU_APB1_GRP2_TIM17_STOP
  1616. *
  1617. * (*) value not defined in all devices
  1618. * @retval None
  1619. */
  1620. __STATIC_INLINE void LL_DBGMCU_APB1_GRP2_FreezePeriph(uint32_t Periphs)
  1621. {
  1622. SET_BIT(DBGMCU->APB2FZ, Periphs);
  1623. }
  1624. /**
  1625. * @brief Unfreeze APB1 peripherals (group2 peripherals)
  1626. * @rmtoll DBGMCU_APB2FZ DBG_TIM1_STOP LL_DBGMCU_APB1_GRP2_UnFreezePeriph\n
  1627. * DBGMCU_APB2FZ DBG_TIM15_STOP LL_DBGMCU_APB1_GRP2_UnFreezePeriph\n
  1628. * DBGMCU_APB2FZ DBG_TIM16_STOP LL_DBGMCU_APB1_GRP2_UnFreezePeriph\n
  1629. * DBGMCU_APB2FZ DBG_TIM17_STOP LL_DBGMCU_APB1_GRP2_UnFreezePeriph
  1630. * @param Periphs This parameter can be a combination of the following values:
  1631. * @arg @ref LL_DBGMCU_APB1_GRP2_TIM1_STOP
  1632. * @arg @ref LL_DBGMCU_APB1_GRP2_TIM15_STOP (*)
  1633. * @arg @ref LL_DBGMCU_APB1_GRP2_TIM16_STOP
  1634. * @arg @ref LL_DBGMCU_APB1_GRP2_TIM17_STOP
  1635. *
  1636. * (*) value not defined in all devices
  1637. * @retval None
  1638. */
  1639. __STATIC_INLINE void LL_DBGMCU_APB1_GRP2_UnFreezePeriph(uint32_t Periphs)
  1640. {
  1641. CLEAR_BIT(DBGMCU->APB2FZ, Periphs);
  1642. }
  1643. /**
  1644. * @}
  1645. */
  1646. /** @defgroup SYSTEM_LL_EF_FLASH FLASH
  1647. * @{
  1648. */
  1649. /**
  1650. * @brief Set FLASH Latency
  1651. * @rmtoll FLASH_ACR LATENCY LL_FLASH_SetLatency
  1652. * @param Latency This parameter can be one of the following values:
  1653. * @arg @ref LL_FLASH_LATENCY_0
  1654. * @arg @ref LL_FLASH_LATENCY_1
  1655. * @retval None
  1656. */
  1657. __STATIC_INLINE void LL_FLASH_SetLatency(uint32_t Latency)
  1658. {
  1659. MODIFY_REG(FLASH->ACR, FLASH_ACR_LATENCY, Latency);
  1660. }
  1661. /**
  1662. * @brief Get FLASH Latency
  1663. * @rmtoll FLASH_ACR LATENCY LL_FLASH_GetLatency
  1664. * @retval Returned value can be one of the following values:
  1665. * @arg @ref LL_FLASH_LATENCY_0
  1666. * @arg @ref LL_FLASH_LATENCY_1
  1667. */
  1668. __STATIC_INLINE uint32_t LL_FLASH_GetLatency(void)
  1669. {
  1670. return (uint32_t)(READ_BIT(FLASH->ACR, FLASH_ACR_LATENCY));
  1671. }
  1672. /**
  1673. * @brief Enable Prefetch
  1674. * @rmtoll FLASH_ACR PRFTBE LL_FLASH_EnablePrefetch
  1675. * @retval None
  1676. */
  1677. __STATIC_INLINE void LL_FLASH_EnablePrefetch(void)
  1678. {
  1679. SET_BIT(FLASH->ACR, FLASH_ACR_PRFTBE);
  1680. }
  1681. /**
  1682. * @brief Disable Prefetch
  1683. * @rmtoll FLASH_ACR PRFTBE LL_FLASH_DisablePrefetch
  1684. * @retval None
  1685. */
  1686. __STATIC_INLINE void LL_FLASH_DisablePrefetch(void)
  1687. {
  1688. CLEAR_BIT(FLASH->ACR, FLASH_ACR_PRFTBE);
  1689. }
  1690. /**
  1691. * @brief Check if Prefetch buffer is enabled
  1692. * @rmtoll FLASH_ACR PRFTBS LL_FLASH_IsPrefetchEnabled
  1693. * @retval State of bit (1 or 0).
  1694. */
  1695. __STATIC_INLINE uint32_t LL_FLASH_IsPrefetchEnabled(void)
  1696. {
  1697. return (READ_BIT(FLASH->ACR, FLASH_ACR_PRFTBS) == (FLASH_ACR_PRFTBS));
  1698. }
  1699. /**
  1700. * @}
  1701. */
  1702. /**
  1703. * @}
  1704. */
  1705. /**
  1706. * @}
  1707. */
  1708. #endif /* defined (FLASH) || defined (SYSCFG) || defined (DBGMCU) */
  1709. /**
  1710. * @}
  1711. */
  1712. #ifdef __cplusplus
  1713. }
  1714. #endif
  1715. #endif /* __STM32F0xx_LL_SYSTEM_H */
  1716. /************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/