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.
 
 
 

1599 lines
59 KiB

  1. /**
  2. ******************************************************************************
  3. * @file stm32wbxx_ll_exti.h
  4. * @author MCD Application Team
  5. * @brief Header file of EXTI LL 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_LL_EXTI_H
  21. #define STM32WBxx_LL_EXTI_H
  22. #ifdef __cplusplus
  23. extern "C" {
  24. #endif
  25. /* Includes ------------------------------------------------------------------*/
  26. #include "stm32wbxx.h"
  27. /** @addtogroup STM32WBxx_LL_Driver
  28. * @{
  29. */
  30. #if defined (EXTI)
  31. /** @defgroup EXTI_LL EXTI
  32. * @{
  33. */
  34. /* Private types -------------------------------------------------------------*/
  35. /* Private variables ---------------------------------------------------------*/
  36. /* Private constants ---------------------------------------------------------*/
  37. /* Private Macros ------------------------------------------------------------*/
  38. #if defined(USE_FULL_LL_DRIVER)
  39. /** @defgroup EXTI_LL_Private_Macros EXTI Private Macros
  40. * @{
  41. */
  42. /**
  43. * @}
  44. */
  45. #endif /*USE_FULL_LL_DRIVER*/
  46. /* Exported types ------------------------------------------------------------*/
  47. #if defined(USE_FULL_LL_DRIVER)
  48. /** @defgroup EXTI_LL_ES_INIT EXTI Exported Init structure
  49. * @{
  50. */
  51. typedef struct
  52. {
  53. uint32_t Line_0_31; /*!< Specifies the EXTI lines to be enabled or disabled for Lines in range 0 to 31
  54. This parameter can be any combination of @ref EXTI_LL_EC_LINE */
  55. uint32_t Line_32_63; /*!< Specifies the EXTI lines to be enabled or disabled for Lines in range 32 to 63
  56. This parameter can be any combination of @ref EXTI_LL_EC_LINE */
  57. FunctionalState LineCommand; /*!< Specifies the new state of the selected EXTI lines.
  58. This parameter can be set either to ENABLE or DISABLE */
  59. uint8_t Mode; /*!< Specifies the mode for the EXTI lines.
  60. This parameter can be a value of @ref EXTI_LL_EC_MODE. */
  61. uint8_t Trigger; /*!< Specifies the trigger signal active edge for the EXTI lines.
  62. This parameter can be a value of @ref EXTI_LL_EC_TRIGGER. */
  63. } LL_EXTI_InitTypeDef;
  64. /**
  65. * @}
  66. */
  67. #endif /*USE_FULL_LL_DRIVER*/
  68. /* Exported constants --------------------------------------------------------*/
  69. /** @defgroup EXTI_LL_Exported_Constants EXTI Exported Constants
  70. * @{
  71. */
  72. /** @defgroup EXTI_LL_EC_LINE LINE
  73. * @{
  74. */
  75. #define LL_EXTI_LINE_0 EXTI_IMR1_IM0 /*!< Extended line 0 */
  76. #define LL_EXTI_LINE_1 EXTI_IMR1_IM1 /*!< Extended line 1 */
  77. #define LL_EXTI_LINE_2 EXTI_IMR1_IM2 /*!< Extended line 2 */
  78. #define LL_EXTI_LINE_3 EXTI_IMR1_IM3 /*!< Extended line 3 */
  79. #define LL_EXTI_LINE_4 EXTI_IMR1_IM4 /*!< Extended line 4 */
  80. #define LL_EXTI_LINE_5 EXTI_IMR1_IM5 /*!< Extended line 5 */
  81. #define LL_EXTI_LINE_6 EXTI_IMR1_IM6 /*!< Extended line 6 */
  82. #define LL_EXTI_LINE_7 EXTI_IMR1_IM7 /*!< Extended line 7 */
  83. #define LL_EXTI_LINE_8 EXTI_IMR1_IM8 /*!< Extended line 8 */
  84. #define LL_EXTI_LINE_9 EXTI_IMR1_IM9 /*!< Extended line 9 */
  85. #define LL_EXTI_LINE_10 EXTI_IMR1_IM10 /*!< Extended line 10 */
  86. #define LL_EXTI_LINE_11 EXTI_IMR1_IM11 /*!< Extended line 11 */
  87. #define LL_EXTI_LINE_12 EXTI_IMR1_IM12 /*!< Extended line 12 */
  88. #define LL_EXTI_LINE_13 EXTI_IMR1_IM13 /*!< Extended line 13 */
  89. #define LL_EXTI_LINE_14 EXTI_IMR1_IM14 /*!< Extended line 14 */
  90. #define LL_EXTI_LINE_15 EXTI_IMR1_IM15 /*!< Extended line 15 */
  91. #define LL_EXTI_LINE_16 EXTI_IMR1_IM16 /*!< Extended line 16 */
  92. #define LL_EXTI_LINE_17 EXTI_IMR1_IM17 /*!< Extended line 17 */
  93. #define LL_EXTI_LINE_18 EXTI_IMR1_IM18 /*!< Extended line 18 */
  94. #define LL_EXTI_LINE_19 EXTI_IMR1_IM19 /*!< Extended line 19 */
  95. #define LL_EXTI_LINE_20 EXTI_IMR1_IM20 /*!< Extended line 20 */
  96. #define LL_EXTI_LINE_21 EXTI_IMR1_IM21 /*!< Extended line 21 */
  97. #define LL_EXTI_LINE_22 EXTI_IMR1_IM22 /*!< Extended line 22 */
  98. #define LL_EXTI_LINE_23 EXTI_IMR1_IM23 /*!< Extended line 23 */
  99. #define LL_EXTI_LINE_24 EXTI_IMR1_IM24 /*!< Extended line 24 */
  100. #define LL_EXTI_LINE_25 EXTI_IMR1_IM25 /*!< Extended line 25 */
  101. #define LL_EXTI_LINE_26 EXTI_IMR1_IM26 /*!< Extended line 26 */
  102. #define LL_EXTI_LINE_27 EXTI_IMR1_IM27 /*!< Extended line 27 */
  103. #define LL_EXTI_LINE_28 EXTI_IMR1_IM28 /*!< Extended line 28 */
  104. #define LL_EXTI_LINE_29 EXTI_IMR1_IM29 /*!< Extended line 29 */
  105. #define LL_EXTI_LINE_30 EXTI_IMR1_IM30 /*!< Extended line 30 */
  106. #define LL_EXTI_LINE_31 EXTI_IMR1_IM31 /*!< Extended line 31 */
  107. #define LL_EXTI_LINE_ALL_0_31 EXTI_IMR1_IM /*!< All Extended line not reserved*/
  108. #define LL_EXTI_LINE_32 EXTI_IMR2_IM32 /*!< Extended line 32 */
  109. #define LL_EXTI_LINE_33 EXTI_IMR2_IM33 /*!< Extended line 33 */
  110. #define LL_EXTI_LINE_34 EXTI_IMR2_IM34 /*!< Extended line 34 */
  111. #define LL_EXTI_LINE_35 EXTI_IMR2_IM35 /*!< Extended line 35 */
  112. #define LL_EXTI_LINE_36 EXTI_IMR2_IM36 /*!< Extended line 36 */
  113. #define LL_EXTI_LINE_37 EXTI_IMR2_IM37 /*!< Extended line 37 */
  114. #define LL_EXTI_LINE_38 EXTI_IMR2_IM38 /*!< Extended line 38 */
  115. #define LL_EXTI_LINE_39 EXTI_IMR2_IM39 /*!< Extended line 39 */
  116. #define LL_EXTI_LINE_40 EXTI_IMR2_IM40 /*!< Extended line 40 */
  117. #define LL_EXTI_LINE_41 EXTI_IMR2_IM41 /*!< Extended line 41 */
  118. #define LL_EXTI_LINE_42 EXTI_IMR2_IM42 /*!< Extended line 42 */
  119. #define LL_EXTI_LINE_43 EXTI_IMR2_IM43 /*!< Extended line 43 */
  120. #define LL_EXTI_LINE_44 EXTI_IMR2_IM44 /*!< Extended line 44 */
  121. #define LL_EXTI_LINE_45 EXTI_IMR2_IM45 /*!< Extended line 45 */
  122. #define LL_EXTI_LINE_46 EXTI_IMR2_IM46 /*!< Extended line 46 */
  123. #define LL_EXTI_LINE_47 EXTI_IMR2_IM47 /*!< Extended line 47 */
  124. #define LL_EXTI_LINE_48 EXTI_IMR2_IM48 /*!< Extended line 48 */
  125. #define LL_EXTI_LINE_ALL_32_63 EXTI_IMR2_IM /*!< All Extended line not reserved*/
  126. #define LL_EXTI_LINE_ALL (0xFFFFFFFFU) /*!< All Extended line */
  127. #if defined(USE_FULL_LL_DRIVER)
  128. #define LL_EXTI_LINE_NONE (0x00000000U) /*!< None Extended line */
  129. #endif /*USE_FULL_LL_DRIVER*/
  130. /**
  131. * @}
  132. */
  133. #if defined(USE_FULL_LL_DRIVER)
  134. /** @defgroup EXTI_LL_EC_MODE Mode
  135. * @{
  136. */
  137. #define LL_EXTI_MODE_IT ((uint8_t)0x00U) /*!< Interrupt Mode */
  138. #define LL_EXTI_MODE_EVENT ((uint8_t)0x01U) /*!< Event Mode */
  139. #define LL_EXTI_MODE_IT_EVENT ((uint8_t)0x02U) /*!< Interrupt & Event Mode */
  140. /**
  141. * @}
  142. */
  143. /** @defgroup EXTI_LL_EC_TRIGGER Edge Trigger
  144. * @{
  145. */
  146. #define LL_EXTI_TRIGGER_NONE ((uint8_t)0x00U) /*!< No Trigger Mode */
  147. #define LL_EXTI_TRIGGER_RISING ((uint8_t)0x01U) /*!< Trigger Rising Mode */
  148. #define LL_EXTI_TRIGGER_FALLING ((uint8_t)0x02U) /*!< Trigger Falling Mode */
  149. #define LL_EXTI_TRIGGER_RISING_FALLING ((uint8_t)0x03U) /*!< Trigger Rising & Falling Mode */
  150. /**
  151. * @}
  152. */
  153. #endif /*USE_FULL_LL_DRIVER*/
  154. /**
  155. * @}
  156. */
  157. /* Exported macro ------------------------------------------------------------*/
  158. /** @defgroup EXTI_LL_Exported_Macros EXTI Exported Macros
  159. * @{
  160. */
  161. /** @defgroup EXTI_LL_EM_WRITE_READ Common Write and read registers Macros
  162. * @{
  163. */
  164. /**
  165. * @brief Write a value in EXTI register
  166. * @param __REG__ Register to be written
  167. * @param __VALUE__ Value to be written in the register
  168. * @retval None
  169. */
  170. #define LL_EXTI_WriteReg(__REG__, __VALUE__) WRITE_REG(EXTI->__REG__, (__VALUE__))
  171. /**
  172. * @brief Read a value in EXTI register
  173. * @param __REG__ Register to be read
  174. * @retval Register value
  175. */
  176. #define LL_EXTI_ReadReg(__REG__) READ_REG(EXTI->__REG__)
  177. /**
  178. * @}
  179. */
  180. /**
  181. * @}
  182. */
  183. /* Exported functions --------------------------------------------------------*/
  184. /** @defgroup EXTI_LL_Exported_Functions EXTI Exported Functions
  185. * @{
  186. */
  187. /** @defgroup EXTI_LL_EF_IT_Management IT_Management
  188. * @{
  189. */
  190. /**
  191. * @brief Enable ExtiLine Interrupt request for Lines in range 0 to 31
  192. * @rmtoll IMR1 IMx LL_EXTI_EnableIT_0_31
  193. * @param ExtiLine This parameter can be one of the following values:
  194. * @arg @ref LL_EXTI_LINE_0
  195. * @arg @ref LL_EXTI_LINE_1
  196. * @arg @ref LL_EXTI_LINE_2
  197. * @arg @ref LL_EXTI_LINE_3
  198. * @arg @ref LL_EXTI_LINE_4
  199. * @arg @ref LL_EXTI_LINE_5
  200. * @arg @ref LL_EXTI_LINE_6
  201. * @arg @ref LL_EXTI_LINE_7
  202. * @arg @ref LL_EXTI_LINE_8
  203. * @arg @ref LL_EXTI_LINE_9
  204. * @arg @ref LL_EXTI_LINE_10
  205. * @arg @ref LL_EXTI_LINE_11
  206. * @arg @ref LL_EXTI_LINE_12
  207. * @arg @ref LL_EXTI_LINE_13
  208. * @arg @ref LL_EXTI_LINE_14
  209. * @arg @ref LL_EXTI_LINE_15
  210. * @arg @ref LL_EXTI_LINE_16
  211. * @arg @ref LL_EXTI_LINE_17
  212. * @arg @ref LL_EXTI_LINE_18
  213. * @arg @ref LL_EXTI_LINE_19
  214. * @arg @ref LL_EXTI_LINE_20
  215. * @arg @ref LL_EXTI_LINE_21
  216. * @arg @ref LL_EXTI_LINE_22
  217. * @arg @ref LL_EXTI_LINE_23
  218. * @arg @ref LL_EXTI_LINE_24
  219. * @arg @ref LL_EXTI_LINE_25
  220. * @arg @ref LL_EXTI_LINE_26
  221. * @arg @ref LL_EXTI_LINE_27
  222. * @arg @ref LL_EXTI_LINE_28
  223. * @arg @ref LL_EXTI_LINE_29
  224. * @arg @ref LL_EXTI_LINE_30
  225. * @arg @ref LL_EXTI_LINE_31
  226. * @arg @ref LL_EXTI_LINE_ALL_0_31
  227. * @retval None
  228. */
  229. __STATIC_INLINE void LL_EXTI_EnableIT_0_31(uint32_t ExtiLine)
  230. {
  231. SET_BIT(EXTI->IMR1, ExtiLine);
  232. }
  233. /**
  234. * @brief Enable ExtiLine Interrupt request for Lines in range 0 to 31 for cpu2
  235. * @rmtoll C2IMR1 IMx LL_C2_EXTI_EnableIT_0_31
  236. * @param ExtiLine This parameter can be one of the following values:
  237. * @arg @ref LL_EXTI_LINE_0
  238. * @arg @ref LL_EXTI_LINE_1
  239. * @arg @ref LL_EXTI_LINE_2
  240. * @arg @ref LL_EXTI_LINE_3
  241. * @arg @ref LL_EXTI_LINE_4
  242. * @arg @ref LL_EXTI_LINE_5
  243. * @arg @ref LL_EXTI_LINE_6
  244. * @arg @ref LL_EXTI_LINE_7
  245. * @arg @ref LL_EXTI_LINE_8
  246. * @arg @ref LL_EXTI_LINE_9
  247. * @arg @ref LL_EXTI_LINE_10
  248. * @arg @ref LL_EXTI_LINE_11
  249. * @arg @ref LL_EXTI_LINE_12
  250. * @arg @ref LL_EXTI_LINE_13
  251. * @arg @ref LL_EXTI_LINE_14
  252. * @arg @ref LL_EXTI_LINE_15
  253. * @arg @ref LL_EXTI_LINE_16
  254. * @arg @ref LL_EXTI_LINE_17
  255. * @arg @ref LL_EXTI_LINE_18
  256. * @arg @ref LL_EXTI_LINE_19
  257. * @arg @ref LL_EXTI_LINE_20
  258. * @arg @ref LL_EXTI_LINE_21
  259. * @arg @ref LL_EXTI_LINE_22
  260. * @arg @ref LL_EXTI_LINE_23
  261. * @arg @ref LL_EXTI_LINE_24
  262. * @arg @ref LL_EXTI_LINE_25
  263. * @arg @ref LL_EXTI_LINE_26
  264. * @arg @ref LL_EXTI_LINE_27
  265. * @arg @ref LL_EXTI_LINE_28
  266. * @arg @ref LL_EXTI_LINE_29
  267. * @arg @ref LL_EXTI_LINE_30
  268. * @arg @ref LL_EXTI_LINE_31
  269. * @arg @ref LL_EXTI_LINE_ALL_0_31
  270. * @retval None
  271. */
  272. __STATIC_INLINE void LL_C2_EXTI_EnableIT_0_31(uint32_t ExtiLine)
  273. {
  274. SET_BIT(EXTI->C2IMR1, ExtiLine);
  275. }
  276. /**
  277. * @brief Enable ExtiLine Interrupt request for Lines in range 32 to 63
  278. * @rmtoll IMR2 IMx LL_EXTI_EnableIT_32_63
  279. * @param ExtiLine This parameter can be one of the following values:
  280. * @arg @ref LL_EXTI_LINE_32
  281. * @arg @ref LL_EXTI_LINE_33
  282. * @arg @ref LL_EXTI_LINE_34
  283. * @arg @ref LL_EXTI_LINE_35
  284. * @arg @ref LL_EXTI_LINE_36
  285. * @arg @ref LL_EXTI_LINE_37
  286. * @arg @ref LL_EXTI_LINE_38
  287. * @arg @ref LL_EXTI_LINE_39
  288. * @arg @ref LL_EXTI_LINE_40
  289. * @arg @ref LL_EXTI_LINE_41
  290. * @arg @ref LL_EXTI_LINE_42
  291. * @arg @ref LL_EXTI_LINE_43
  292. * @arg @ref LL_EXTI_LINE_44
  293. * @arg @ref LL_EXTI_LINE_45
  294. * @arg @ref LL_EXTI_LINE_46
  295. * @arg @ref LL_EXTI_LINE_47
  296. * @arg @ref LL_EXTI_LINE_48
  297. * @arg @ref LL_EXTI_LINE_ALL_32_63
  298. * @retval None
  299. */
  300. __STATIC_INLINE void LL_EXTI_EnableIT_32_63(uint32_t ExtiLine)
  301. {
  302. SET_BIT(EXTI->IMR2, ExtiLine);
  303. }
  304. /**
  305. * @brief Enable ExtiLine Interrupt request for Lines in range 32 to 63 for cpu2
  306. * @rmtoll C2IMR2 IMx LL_C2_EXTI_EnableIT_32_63
  307. * @param ExtiLine This parameter can be one of the following values:
  308. * @arg @ref LL_EXTI_LINE_32
  309. * @arg @ref LL_EXTI_LINE_33
  310. * @arg @ref LL_EXTI_LINE_34
  311. * @arg @ref LL_EXTI_LINE_35
  312. * @arg @ref LL_EXTI_LINE_36
  313. * @arg @ref LL_EXTI_LINE_37
  314. * @arg @ref LL_EXTI_LINE_38
  315. * @arg @ref LL_EXTI_LINE_39
  316. * @arg @ref LL_EXTI_LINE_40
  317. * @arg @ref LL_EXTI_LINE_41
  318. * @arg @ref LL_EXTI_LINE_42
  319. * @arg @ref LL_EXTI_LINE_43
  320. * @arg @ref LL_EXTI_LINE_44
  321. * @arg @ref LL_EXTI_LINE_45
  322. * @arg @ref LL_EXTI_LINE_46
  323. * @arg @ref LL_EXTI_LINE_47
  324. * @arg @ref LL_EXTI_LINE_48
  325. * @arg @ref LL_EXTI_LINE_ALL_32_63
  326. * @retval None
  327. */
  328. __STATIC_INLINE void LL_C2_EXTI_EnableIT_32_63(uint32_t ExtiLine)
  329. {
  330. SET_BIT(EXTI->C2IMR2, ExtiLine);
  331. }
  332. /**
  333. * @brief Disable ExtiLine Interrupt request for Lines in range 0 to 31
  334. * @rmtoll IMR1 IMx LL_EXTI_DisableIT_0_31
  335. * @param ExtiLine This parameter can be one of the following values:
  336. * @arg @ref LL_EXTI_LINE_0
  337. * @arg @ref LL_EXTI_LINE_1
  338. * @arg @ref LL_EXTI_LINE_2
  339. * @arg @ref LL_EXTI_LINE_3
  340. * @arg @ref LL_EXTI_LINE_4
  341. * @arg @ref LL_EXTI_LINE_5
  342. * @arg @ref LL_EXTI_LINE_6
  343. * @arg @ref LL_EXTI_LINE_7
  344. * @arg @ref LL_EXTI_LINE_8
  345. * @arg @ref LL_EXTI_LINE_9
  346. * @arg @ref LL_EXTI_LINE_10
  347. * @arg @ref LL_EXTI_LINE_11
  348. * @arg @ref LL_EXTI_LINE_12
  349. * @arg @ref LL_EXTI_LINE_13
  350. * @arg @ref LL_EXTI_LINE_14
  351. * @arg @ref LL_EXTI_LINE_15
  352. * @arg @ref LL_EXTI_LINE_16
  353. * @arg @ref LL_EXTI_LINE_17
  354. * @arg @ref LL_EXTI_LINE_18
  355. * @arg @ref LL_EXTI_LINE_19
  356. * @arg @ref LL_EXTI_LINE_20
  357. * @arg @ref LL_EXTI_LINE_21
  358. * @arg @ref LL_EXTI_LINE_22
  359. * @arg @ref LL_EXTI_LINE_23
  360. * @arg @ref LL_EXTI_LINE_24
  361. * @arg @ref LL_EXTI_LINE_25
  362. * @arg @ref LL_EXTI_LINE_26
  363. * @arg @ref LL_EXTI_LINE_27
  364. * @arg @ref LL_EXTI_LINE_28
  365. * @arg @ref LL_EXTI_LINE_29
  366. * @arg @ref LL_EXTI_LINE_30
  367. * @arg @ref LL_EXTI_LINE_31
  368. * @arg @ref LL_EXTI_LINE_ALL_0_31
  369. * @retval None
  370. */
  371. __STATIC_INLINE void LL_EXTI_DisableIT_0_31(uint32_t ExtiLine)
  372. {
  373. CLEAR_BIT(EXTI->IMR1, ExtiLine);
  374. }
  375. /**
  376. * @brief Disable ExtiLine Interrupt request for Lines in range 0 to 31 for cpu2
  377. * @rmtoll C2IMR1 IMx LL_C2_EXTI_DisableIT_0_31
  378. * @param ExtiLine This parameter can be one of the following values:
  379. * @arg @ref LL_EXTI_LINE_0
  380. * @arg @ref LL_EXTI_LINE_1
  381. * @arg @ref LL_EXTI_LINE_2
  382. * @arg @ref LL_EXTI_LINE_3
  383. * @arg @ref LL_EXTI_LINE_4
  384. * @arg @ref LL_EXTI_LINE_5
  385. * @arg @ref LL_EXTI_LINE_6
  386. * @arg @ref LL_EXTI_LINE_7
  387. * @arg @ref LL_EXTI_LINE_8
  388. * @arg @ref LL_EXTI_LINE_9
  389. * @arg @ref LL_EXTI_LINE_10
  390. * @arg @ref LL_EXTI_LINE_11
  391. * @arg @ref LL_EXTI_LINE_12
  392. * @arg @ref LL_EXTI_LINE_13
  393. * @arg @ref LL_EXTI_LINE_14
  394. * @arg @ref LL_EXTI_LINE_15
  395. * @arg @ref LL_EXTI_LINE_16
  396. * @arg @ref LL_EXTI_LINE_17
  397. * @arg @ref LL_EXTI_LINE_18
  398. * @arg @ref LL_EXTI_LINE_19
  399. * @arg @ref LL_EXTI_LINE_20
  400. * @arg @ref LL_EXTI_LINE_21
  401. * @arg @ref LL_EXTI_LINE_22
  402. * @arg @ref LL_EXTI_LINE_23
  403. * @arg @ref LL_EXTI_LINE_24
  404. * @arg @ref LL_EXTI_LINE_25
  405. * @arg @ref LL_EXTI_LINE_26
  406. * @arg @ref LL_EXTI_LINE_27
  407. * @arg @ref LL_EXTI_LINE_28
  408. * @arg @ref LL_EXTI_LINE_29
  409. * @arg @ref LL_EXTI_LINE_30
  410. * @arg @ref LL_EXTI_LINE_31
  411. * @arg @ref LL_EXTI_LINE_ALL_0_31
  412. * @retval None
  413. */
  414. __STATIC_INLINE void LL_C2_EXTI_DisableIT_0_31(uint32_t ExtiLine)
  415. {
  416. CLEAR_BIT(EXTI->C2IMR1, ExtiLine);
  417. }
  418. /**
  419. * @brief Disable ExtiLine Interrupt request for Lines in range 32 to 63
  420. * @rmtoll IMR2 IMx LL_EXTI_DisableIT_32_63
  421. * @param ExtiLine This parameter can be one of the following values:
  422. * @arg @ref LL_EXTI_LINE_32
  423. * @arg @ref LL_EXTI_LINE_33
  424. * @arg @ref LL_EXTI_LINE_34
  425. * @arg @ref LL_EXTI_LINE_35
  426. * @arg @ref LL_EXTI_LINE_36
  427. * @arg @ref LL_EXTI_LINE_37
  428. * @arg @ref LL_EXTI_LINE_38
  429. * @arg @ref LL_EXTI_LINE_39
  430. * @arg @ref LL_EXTI_LINE_40
  431. * @arg @ref LL_EXTI_LINE_41
  432. * @arg @ref LL_EXTI_LINE_42
  433. * @arg @ref LL_EXTI_LINE_43
  434. * @arg @ref LL_EXTI_LINE_44
  435. * @arg @ref LL_EXTI_LINE_45
  436. * @arg @ref LL_EXTI_LINE_46
  437. * @arg @ref LL_EXTI_LINE_47
  438. * @arg @ref LL_EXTI_LINE_48
  439. * @arg @ref LL_EXTI_LINE_ALL_32_63
  440. * @retval None
  441. */
  442. __STATIC_INLINE void LL_EXTI_DisableIT_32_63(uint32_t ExtiLine)
  443. {
  444. CLEAR_BIT(EXTI->IMR2, ExtiLine);
  445. }
  446. /**
  447. * @brief Disable ExtiLine Interrupt request for Lines in range 32 to 63 for cpu2
  448. * @rmtoll C2IMR2 IMx LL_C2_EXTI_DisableIT_32_63
  449. * @param ExtiLine This parameter can be one of the following values:
  450. * @arg @ref LL_EXTI_LINE_32
  451. * @arg @ref LL_EXTI_LINE_33
  452. * @arg @ref LL_EXTI_LINE_34
  453. * @arg @ref LL_EXTI_LINE_35
  454. * @arg @ref LL_EXTI_LINE_36
  455. * @arg @ref LL_EXTI_LINE_37
  456. * @arg @ref LL_EXTI_LINE_38
  457. * @arg @ref LL_EXTI_LINE_39
  458. * @arg @ref LL_EXTI_LINE_40
  459. * @arg @ref LL_EXTI_LINE_41
  460. * @arg @ref LL_EXTI_LINE_42
  461. * @arg @ref LL_EXTI_LINE_43
  462. * @arg @ref LL_EXTI_LINE_44
  463. * @arg @ref LL_EXTI_LINE_45
  464. * @arg @ref LL_EXTI_LINE_46
  465. * @arg @ref LL_EXTI_LINE_47
  466. * @arg @ref LL_EXTI_LINE_48
  467. * @arg @ref LL_EXTI_LINE_ALL_32_63
  468. * @retval None
  469. */
  470. __STATIC_INLINE void LL_C2_EXTI_DisableIT_32_63(uint32_t ExtiLine)
  471. {
  472. CLEAR_BIT(EXTI->C2IMR2, ExtiLine);
  473. }
  474. /**
  475. * @brief Indicate if ExtiLine Interrupt request is enabled for Lines in range 0 to 31
  476. * @rmtoll IMR1 IMx LL_EXTI_IsEnabledIT_0_31
  477. * @param ExtiLine This parameter can be one of the following values:
  478. * @arg @ref LL_EXTI_LINE_0
  479. * @arg @ref LL_EXTI_LINE_1
  480. * @arg @ref LL_EXTI_LINE_2
  481. * @arg @ref LL_EXTI_LINE_3
  482. * @arg @ref LL_EXTI_LINE_4
  483. * @arg @ref LL_EXTI_LINE_5
  484. * @arg @ref LL_EXTI_LINE_6
  485. * @arg @ref LL_EXTI_LINE_7
  486. * @arg @ref LL_EXTI_LINE_8
  487. * @arg @ref LL_EXTI_LINE_9
  488. * @arg @ref LL_EXTI_LINE_10
  489. * @arg @ref LL_EXTI_LINE_11
  490. * @arg @ref LL_EXTI_LINE_12
  491. * @arg @ref LL_EXTI_LINE_13
  492. * @arg @ref LL_EXTI_LINE_14
  493. * @arg @ref LL_EXTI_LINE_15
  494. * @arg @ref LL_EXTI_LINE_16
  495. * @arg @ref LL_EXTI_LINE_17
  496. * @arg @ref LL_EXTI_LINE_18
  497. * @arg @ref LL_EXTI_LINE_19
  498. * @arg @ref LL_EXTI_LINE_20
  499. * @arg @ref LL_EXTI_LINE_21
  500. * @arg @ref LL_EXTI_LINE_22
  501. * @arg @ref LL_EXTI_LINE_23
  502. * @arg @ref LL_EXTI_LINE_24
  503. * @arg @ref LL_EXTI_LINE_25
  504. * @arg @ref LL_EXTI_LINE_26
  505. * @arg @ref LL_EXTI_LINE_27
  506. * @arg @ref LL_EXTI_LINE_28
  507. * @arg @ref LL_EXTI_LINE_29
  508. * @arg @ref LL_EXTI_LINE_30
  509. * @arg @ref LL_EXTI_LINE_31
  510. * @arg @ref LL_EXTI_LINE_ALL_0_31
  511. * @retval State of bit (1 or 0).
  512. */
  513. __STATIC_INLINE uint32_t LL_EXTI_IsEnabledIT_0_31(uint32_t ExtiLine)
  514. {
  515. return ((READ_BIT(EXTI->IMR1, ExtiLine) == (ExtiLine)) ? 1UL : 0UL);
  516. }
  517. /**
  518. * @brief Indicate if ExtiLine Interrupt request is enabled for Lines in range 0 to 31 for cpu2
  519. * @rmtoll C2IMR1 IMx LL_C2_EXTI_IsEnabledIT_0_31
  520. * @param ExtiLine This parameter can be one of the following values:
  521. * @arg @ref LL_EXTI_LINE_0
  522. * @arg @ref LL_EXTI_LINE_1
  523. * @arg @ref LL_EXTI_LINE_2
  524. * @arg @ref LL_EXTI_LINE_3
  525. * @arg @ref LL_EXTI_LINE_4
  526. * @arg @ref LL_EXTI_LINE_5
  527. * @arg @ref LL_EXTI_LINE_6
  528. * @arg @ref LL_EXTI_LINE_7
  529. * @arg @ref LL_EXTI_LINE_8
  530. * @arg @ref LL_EXTI_LINE_9
  531. * @arg @ref LL_EXTI_LINE_10
  532. * @arg @ref LL_EXTI_LINE_11
  533. * @arg @ref LL_EXTI_LINE_12
  534. * @arg @ref LL_EXTI_LINE_13
  535. * @arg @ref LL_EXTI_LINE_14
  536. * @arg @ref LL_EXTI_LINE_15
  537. * @arg @ref LL_EXTI_LINE_16
  538. * @arg @ref LL_EXTI_LINE_17
  539. * @arg @ref LL_EXTI_LINE_18
  540. * @arg @ref LL_EXTI_LINE_19
  541. * @arg @ref LL_EXTI_LINE_20
  542. * @arg @ref LL_EXTI_LINE_21
  543. * @arg @ref LL_EXTI_LINE_22
  544. * @arg @ref LL_EXTI_LINE_23
  545. * @arg @ref LL_EXTI_LINE_24
  546. * @arg @ref LL_EXTI_LINE_25
  547. * @arg @ref LL_EXTI_LINE_26
  548. * @arg @ref LL_EXTI_LINE_27
  549. * @arg @ref LL_EXTI_LINE_28
  550. * @arg @ref LL_EXTI_LINE_29
  551. * @arg @ref LL_EXTI_LINE_30
  552. * @arg @ref LL_EXTI_LINE_31
  553. * @arg @ref LL_EXTI_LINE_ALL_0_31
  554. * @retval State of bit (1 or 0).
  555. */
  556. __STATIC_INLINE uint32_t LL_C2_EXTI_IsEnabledIT_0_31(uint32_t ExtiLine)
  557. {
  558. return ((READ_BIT(EXTI->C2IMR1, ExtiLine) == (ExtiLine)) ? 1UL : 0UL);
  559. }
  560. /**
  561. * @brief Indicate if ExtiLine Interrupt request is enabled for Lines in range 32 to 63
  562. * @rmtoll IMR2 IMx LL_EXTI_IsEnabledIT_32_63
  563. * @param ExtiLine This parameter can be one of the following values:
  564. * @arg @ref LL_EXTI_LINE_32
  565. * @arg @ref LL_EXTI_LINE_33
  566. * @arg @ref LL_EXTI_LINE_34
  567. * @arg @ref LL_EXTI_LINE_35
  568. * @arg @ref LL_EXTI_LINE_36
  569. * @arg @ref LL_EXTI_LINE_37
  570. * @arg @ref LL_EXTI_LINE_38
  571. * @arg @ref LL_EXTI_LINE_39
  572. * @arg @ref LL_EXTI_LINE_40
  573. * @arg @ref LL_EXTI_LINE_41
  574. * @arg @ref LL_EXTI_LINE_42
  575. * @arg @ref LL_EXTI_LINE_43
  576. * @arg @ref LL_EXTI_LINE_44
  577. * @arg @ref LL_EXTI_LINE_45
  578. * @arg @ref LL_EXTI_LINE_46
  579. * @arg @ref LL_EXTI_LINE_47
  580. * @arg @ref LL_EXTI_LINE_48
  581. * @arg @ref LL_EXTI_LINE_ALL_32_63
  582. * @retval State of bit (1 or 0).
  583. */
  584. __STATIC_INLINE uint32_t LL_EXTI_IsEnabledIT_32_63(uint32_t ExtiLine)
  585. {
  586. return ((READ_BIT(EXTI->IMR2, ExtiLine) == (ExtiLine)) ? 1UL : 0UL);
  587. }
  588. /**
  589. * @brief Indicate if ExtiLine Interrupt request is enabled for Lines in range 32 to 63 for cpu2
  590. * @rmtoll C2IMR2 IMx LL_C2_EXTI_IsEnabledIT_32_63
  591. * @param ExtiLine This parameter can be one of the following values:
  592. * @arg @ref LL_EXTI_LINE_32
  593. * @arg @ref LL_EXTI_LINE_33
  594. * @arg @ref LL_EXTI_LINE_34
  595. * @arg @ref LL_EXTI_LINE_35
  596. * @arg @ref LL_EXTI_LINE_36
  597. * @arg @ref LL_EXTI_LINE_37
  598. * @arg @ref LL_EXTI_LINE_38
  599. * @arg @ref LL_EXTI_LINE_39
  600. * @arg @ref LL_EXTI_LINE_40
  601. * @arg @ref LL_EXTI_LINE_41
  602. * @arg @ref LL_EXTI_LINE_42
  603. * @arg @ref LL_EXTI_LINE_43
  604. * @arg @ref LL_EXTI_LINE_44
  605. * @arg @ref LL_EXTI_LINE_45
  606. * @arg @ref LL_EXTI_LINE_46
  607. * @arg @ref LL_EXTI_LINE_47
  608. * @arg @ref LL_EXTI_LINE_48
  609. * @arg @ref LL_EXTI_LINE_ALL_32_63
  610. * @retval State of bit (1 or 0).
  611. */
  612. __STATIC_INLINE uint32_t LL_C2_EXTI_IsEnabledIT_32_63(uint32_t ExtiLine)
  613. {
  614. return ((READ_BIT(EXTI->C2IMR2, ExtiLine) == (ExtiLine)) ? 1UL : 0UL);
  615. }
  616. /**
  617. * @}
  618. */
  619. /** @defgroup EXTI_LL_EF_Event_Management Event_Management
  620. * @{
  621. */
  622. /**
  623. * @brief Enable ExtiLine Event request for Lines in range 0 to 31
  624. * @rmtoll EMR1 EMx LL_EXTI_EnableEvent_0_31
  625. * @param ExtiLine This parameter can be one of the following values:
  626. * @arg @ref LL_EXTI_LINE_0
  627. * @arg @ref LL_EXTI_LINE_1
  628. * @arg @ref LL_EXTI_LINE_2
  629. * @arg @ref LL_EXTI_LINE_3
  630. * @arg @ref LL_EXTI_LINE_4
  631. * @arg @ref LL_EXTI_LINE_5
  632. * @arg @ref LL_EXTI_LINE_6
  633. * @arg @ref LL_EXTI_LINE_7
  634. * @arg @ref LL_EXTI_LINE_8
  635. * @arg @ref LL_EXTI_LINE_9
  636. * @arg @ref LL_EXTI_LINE_10
  637. * @arg @ref LL_EXTI_LINE_11
  638. * @arg @ref LL_EXTI_LINE_12
  639. * @arg @ref LL_EXTI_LINE_13
  640. * @arg @ref LL_EXTI_LINE_14
  641. * @arg @ref LL_EXTI_LINE_15
  642. * @arg @ref LL_EXTI_LINE_17
  643. * @arg @ref LL_EXTI_LINE_18
  644. * @arg @ref LL_EXTI_LINE_19
  645. * @arg @ref LL_EXTI_LINE_20
  646. * @arg @ref LL_EXTI_LINE_21
  647. * @arg @ref LL_EXTI_LINE_ALL_0_31
  648. * @retval None
  649. */
  650. __STATIC_INLINE void LL_EXTI_EnableEvent_0_31(uint32_t ExtiLine)
  651. {
  652. SET_BIT(EXTI->EMR1, ExtiLine);
  653. }
  654. /**
  655. * @brief Enable ExtiLine Event request for Lines in range 0 to 31 for cpu2
  656. * @rmtoll C2EMR1 EMx LL_C2_EXTI_EnableEvent_0_31
  657. * @param ExtiLine This parameter can be one of the following values:
  658. * @arg @ref LL_EXTI_LINE_0
  659. * @arg @ref LL_EXTI_LINE_1
  660. * @arg @ref LL_EXTI_LINE_2
  661. * @arg @ref LL_EXTI_LINE_3
  662. * @arg @ref LL_EXTI_LINE_4
  663. * @arg @ref LL_EXTI_LINE_5
  664. * @arg @ref LL_EXTI_LINE_6
  665. * @arg @ref LL_EXTI_LINE_7
  666. * @arg @ref LL_EXTI_LINE_8
  667. * @arg @ref LL_EXTI_LINE_9
  668. * @arg @ref LL_EXTI_LINE_10
  669. * @arg @ref LL_EXTI_LINE_11
  670. * @arg @ref LL_EXTI_LINE_12
  671. * @arg @ref LL_EXTI_LINE_13
  672. * @arg @ref LL_EXTI_LINE_14
  673. * @arg @ref LL_EXTI_LINE_15
  674. * @arg @ref LL_EXTI_LINE_17
  675. * @arg @ref LL_EXTI_LINE_18
  676. * @arg @ref LL_EXTI_LINE_19
  677. * @arg @ref LL_EXTI_LINE_20
  678. * @arg @ref LL_EXTI_LINE_21
  679. * @arg @ref LL_EXTI_LINE_ALL_0_31
  680. * @retval None
  681. */
  682. __STATIC_INLINE void LL_C2_EXTI_EnableEvent_0_31(uint32_t ExtiLine)
  683. {
  684. SET_BIT(EXTI->C2EMR1, ExtiLine);
  685. }
  686. /**
  687. * @brief Enable ExtiLine Event request for Lines in range 32 to 63
  688. * @rmtoll EMR2 EMx LL_EXTI_EnableEvent_32_63
  689. * @param ExtiLine This parameter can be a combination of the following values:
  690. * @arg @ref LL_EXTI_LINE_40
  691. * @arg @ref LL_EXTI_LINE_41
  692. * @arg @ref LL_EXTI_LINE_ALL_32_63
  693. * @retval None
  694. */
  695. __STATIC_INLINE void LL_EXTI_EnableEvent_32_63(uint32_t ExtiLine)
  696. {
  697. SET_BIT(EXTI->EMR2, ExtiLine);
  698. }
  699. /**
  700. * @brief Enable ExtiLine Event request for Lines in range 32 to 63 for cpu2
  701. * @rmtoll C2EMR2 EMx LL_C2_EXTI_EnableEvent_32_63
  702. * @param ExtiLine This parameter can be a combination of the following values:
  703. * @arg @ref LL_EXTI_LINE_40
  704. * @arg @ref LL_EXTI_LINE_41
  705. * @arg @ref LL_EXTI_LINE_ALL_32_63
  706. * @retval None
  707. */
  708. __STATIC_INLINE void LL_C2_EXTI_EnableEvent_32_63(uint32_t ExtiLine)
  709. {
  710. SET_BIT(EXTI->C2EMR2, ExtiLine);
  711. }
  712. /**
  713. * @brief Disable ExtiLine Event request for Lines in range 0 to 31
  714. * @rmtoll EMR1 EMx LL_EXTI_DisableEvent_0_31
  715. * @param ExtiLine This parameter can be one of the following values:
  716. * @arg @ref LL_EXTI_LINE_0
  717. * @arg @ref LL_EXTI_LINE_1
  718. * @arg @ref LL_EXTI_LINE_2
  719. * @arg @ref LL_EXTI_LINE_3
  720. * @arg @ref LL_EXTI_LINE_4
  721. * @arg @ref LL_EXTI_LINE_5
  722. * @arg @ref LL_EXTI_LINE_6
  723. * @arg @ref LL_EXTI_LINE_7
  724. * @arg @ref LL_EXTI_LINE_8
  725. * @arg @ref LL_EXTI_LINE_9
  726. * @arg @ref LL_EXTI_LINE_10
  727. * @arg @ref LL_EXTI_LINE_11
  728. * @arg @ref LL_EXTI_LINE_12
  729. * @arg @ref LL_EXTI_LINE_13
  730. * @arg @ref LL_EXTI_LINE_14
  731. * @arg @ref LL_EXTI_LINE_15
  732. * @arg @ref LL_EXTI_LINE_17
  733. * @arg @ref LL_EXTI_LINE_18
  734. * @arg @ref LL_EXTI_LINE_19
  735. * @arg @ref LL_EXTI_LINE_20
  736. * @arg @ref LL_EXTI_LINE_21
  737. * @arg @ref LL_EXTI_LINE_ALL_0_31
  738. * @retval None
  739. */
  740. __STATIC_INLINE void LL_EXTI_DisableEvent_0_31(uint32_t ExtiLine)
  741. {
  742. CLEAR_BIT(EXTI->EMR1, ExtiLine);
  743. }
  744. /**
  745. * @brief Disable ExtiLine Event request for Lines in range 0 to 31 for cpu2
  746. * @rmtoll C2EMR1 EMx LL_C2_EXTI_DisableEvent_0_31
  747. * @param ExtiLine This parameter can be one of the following values:
  748. * @arg @ref LL_EXTI_LINE_0
  749. * @arg @ref LL_EXTI_LINE_1
  750. * @arg @ref LL_EXTI_LINE_2
  751. * @arg @ref LL_EXTI_LINE_3
  752. * @arg @ref LL_EXTI_LINE_4
  753. * @arg @ref LL_EXTI_LINE_5
  754. * @arg @ref LL_EXTI_LINE_6
  755. * @arg @ref LL_EXTI_LINE_7
  756. * @arg @ref LL_EXTI_LINE_8
  757. * @arg @ref LL_EXTI_LINE_9
  758. * @arg @ref LL_EXTI_LINE_10
  759. * @arg @ref LL_EXTI_LINE_11
  760. * @arg @ref LL_EXTI_LINE_12
  761. * @arg @ref LL_EXTI_LINE_13
  762. * @arg @ref LL_EXTI_LINE_14
  763. * @arg @ref LL_EXTI_LINE_15
  764. * @arg @ref LL_EXTI_LINE_17
  765. * @arg @ref LL_EXTI_LINE_18
  766. * @arg @ref LL_EXTI_LINE_19
  767. * @arg @ref LL_EXTI_LINE_20
  768. * @arg @ref LL_EXTI_LINE_21
  769. * @arg @ref LL_EXTI_LINE_ALL_0_31
  770. * @retval None
  771. */
  772. __STATIC_INLINE void LL_C2_EXTI_DisableEvent_0_31(uint32_t ExtiLine)
  773. {
  774. CLEAR_BIT(EXTI->C2EMR1, ExtiLine);
  775. }
  776. /**
  777. * @brief Disable ExtiLine Event request for Lines in range 32 to 63
  778. * @rmtoll EMR2 EMx LL_EXTI_DisableEvent_32_63
  779. * @param ExtiLine This parameter can be a combination of the following values:
  780. * @arg @ref LL_EXTI_LINE_40
  781. * @arg @ref LL_EXTI_LINE_41
  782. * @arg @ref LL_EXTI_LINE_ALL_32_63
  783. * @retval None
  784. */
  785. __STATIC_INLINE void LL_EXTI_DisableEvent_32_63(uint32_t ExtiLine)
  786. {
  787. CLEAR_BIT(EXTI->EMR2, ExtiLine);
  788. }
  789. /**
  790. * @brief Disable ExtiLine Event request for Lines in range 32 to 63 for cpu2
  791. * @rmtoll C2EMR2 EMx LL_C2_EXTI_DisableEvent_32_63
  792. * @param ExtiLine This parameter can be a combination of the following values:
  793. * @arg @ref LL_EXTI_LINE_40
  794. * @arg @ref LL_EXTI_LINE_41
  795. * @arg @ref LL_EXTI_LINE_ALL_32_63
  796. * @retval None
  797. */
  798. __STATIC_INLINE void LL_C2_EXTI_DisableEvent_32_63(uint32_t ExtiLine)
  799. {
  800. CLEAR_BIT(EXTI->C2EMR2, ExtiLine);
  801. }
  802. /**
  803. * @brief Indicate if ExtiLine Event request is enabled for Lines in range 0 to 31
  804. * @rmtoll EMR1 EMx LL_EXTI_IsEnabledEvent_0_31
  805. * @param ExtiLine This parameter can be one of the following values:
  806. * @arg @ref LL_EXTI_LINE_0
  807. * @arg @ref LL_EXTI_LINE_1
  808. * @arg @ref LL_EXTI_LINE_2
  809. * @arg @ref LL_EXTI_LINE_3
  810. * @arg @ref LL_EXTI_LINE_4
  811. * @arg @ref LL_EXTI_LINE_5
  812. * @arg @ref LL_EXTI_LINE_6
  813. * @arg @ref LL_EXTI_LINE_7
  814. * @arg @ref LL_EXTI_LINE_8
  815. * @arg @ref LL_EXTI_LINE_9
  816. * @arg @ref LL_EXTI_LINE_10
  817. * @arg @ref LL_EXTI_LINE_11
  818. * @arg @ref LL_EXTI_LINE_12
  819. * @arg @ref LL_EXTI_LINE_13
  820. * @arg @ref LL_EXTI_LINE_14
  821. * @arg @ref LL_EXTI_LINE_15
  822. * @arg @ref LL_EXTI_LINE_17
  823. * @arg @ref LL_EXTI_LINE_18
  824. * @arg @ref LL_EXTI_LINE_19
  825. * @arg @ref LL_EXTI_LINE_20
  826. * @arg @ref LL_EXTI_LINE_21
  827. * @arg @ref LL_EXTI_LINE_ALL_0_31
  828. * @note Please check each device line mapping for EXTI Line availability
  829. * @retval State of bit (1 or 0).
  830. */
  831. __STATIC_INLINE uint32_t LL_EXTI_IsEnabledEvent_0_31(uint32_t ExtiLine)
  832. {
  833. return ((READ_BIT(EXTI->EMR1, ExtiLine) == (ExtiLine)) ? 1UL : 0UL);
  834. }
  835. /**
  836. * @brief Indicate if ExtiLine Event request is enabled for Lines in range 0 to 31 for cpu2
  837. * @rmtoll C2EMR1 EMx LL_C2_EXTI_IsEnabledEvent_0_31
  838. * @param ExtiLine This parameter can be one of the following values:
  839. * @arg @ref LL_EXTI_LINE_0
  840. * @arg @ref LL_EXTI_LINE_1
  841. * @arg @ref LL_EXTI_LINE_2
  842. * @arg @ref LL_EXTI_LINE_3
  843. * @arg @ref LL_EXTI_LINE_4
  844. * @arg @ref LL_EXTI_LINE_5
  845. * @arg @ref LL_EXTI_LINE_6
  846. * @arg @ref LL_EXTI_LINE_7
  847. * @arg @ref LL_EXTI_LINE_8
  848. * @arg @ref LL_EXTI_LINE_9
  849. * @arg @ref LL_EXTI_LINE_10
  850. * @arg @ref LL_EXTI_LINE_11
  851. * @arg @ref LL_EXTI_LINE_12
  852. * @arg @ref LL_EXTI_LINE_13
  853. * @arg @ref LL_EXTI_LINE_14
  854. * @arg @ref LL_EXTI_LINE_15
  855. * @arg @ref LL_EXTI_LINE_17
  856. * @arg @ref LL_EXTI_LINE_18
  857. * @arg @ref LL_EXTI_LINE_19
  858. * @arg @ref LL_EXTI_LINE_20
  859. * @arg @ref LL_EXTI_LINE_21
  860. * @arg @ref LL_EXTI_LINE_ALL_0_31
  861. * @note Please check each device line mapping for EXTI Line availability
  862. * @retval State of bit (1 or 0).
  863. */
  864. __STATIC_INLINE uint32_t LL_C2_EXTI_IsEnabledEvent_0_31(uint32_t ExtiLine)
  865. {
  866. return ((READ_BIT(EXTI->C2EMR1, ExtiLine) == (ExtiLine)) ? 1UL : 0UL);
  867. }
  868. /**
  869. * @brief Indicate if ExtiLine Event request is enabled for Lines in range 32 to 63
  870. * @rmtoll EMR2 EMx LL_EXTI_IsEnabledEvent_32_63
  871. * @param ExtiLine This parameter can be a combination of the following values:
  872. * @arg @ref LL_EXTI_LINE_40
  873. * @arg @ref LL_EXTI_LINE_41
  874. * @arg @ref LL_EXTI_LINE_ALL_32_63
  875. * @retval State of bit (1 or 0).
  876. */
  877. __STATIC_INLINE uint32_t LL_EXTI_IsEnabledEvent_32_63(uint32_t ExtiLine)
  878. {
  879. return ((READ_BIT(EXTI->EMR2, ExtiLine) == (ExtiLine)) ? 1UL : 0UL);
  880. }
  881. /**
  882. * @brief Indicate if ExtiLine Event request is enabled for Lines in range 32 to 63 for cpu2
  883. * @rmtoll EMR2 EMx LL_C2_EXTI_IsEnabledEvent_32_63
  884. * @param ExtiLine This parameter can be a combination of the following values:
  885. * @arg @ref LL_EXTI_LINE_40
  886. * @arg @ref LL_EXTI_LINE_41
  887. * @arg @ref LL_EXTI_LINE_ALL_32_63
  888. * @retval State of bit (1 or 0).
  889. */
  890. __STATIC_INLINE uint32_t LL_C2_EXTI_IsEnabledEvent_32_63(uint32_t ExtiLine)
  891. {
  892. return ((READ_BIT(EXTI->C2EMR2, ExtiLine) == (ExtiLine)) ? 1UL : 0UL);
  893. }
  894. /**
  895. * @}
  896. */
  897. /** @defgroup EXTI_LL_EF_Rising_Trigger_Management Rising_Trigger_Management
  898. * @{
  899. */
  900. /**
  901. * @brief Enable ExtiLine Rising Edge Trigger for Lines in range 0 to 31
  902. * @note The configurable wakeup lines are edge-triggered. No glitch must be
  903. * generated on these lines. If a rising edge on a configurable interrupt
  904. * line occurs during a write operation in the EXTI_RTSR register, the
  905. * pending bit is not set.
  906. * Rising and falling edge triggers can be set for
  907. * the same interrupt line. In this case, both generate a trigger
  908. * condition.
  909. * @rmtoll RTSR1 RTx LL_EXTI_EnableRisingTrig_0_31
  910. * @param ExtiLine This parameter can be a combination of the following values:
  911. * @arg @ref LL_EXTI_LINE_0
  912. * @arg @ref LL_EXTI_LINE_1
  913. * @arg @ref LL_EXTI_LINE_2
  914. * @arg @ref LL_EXTI_LINE_3
  915. * @arg @ref LL_EXTI_LINE_4
  916. * @arg @ref LL_EXTI_LINE_5
  917. * @arg @ref LL_EXTI_LINE_6
  918. * @arg @ref LL_EXTI_LINE_7
  919. * @arg @ref LL_EXTI_LINE_8
  920. * @arg @ref LL_EXTI_LINE_9
  921. * @arg @ref LL_EXTI_LINE_10
  922. * @arg @ref LL_EXTI_LINE_11
  923. * @arg @ref LL_EXTI_LINE_12
  924. * @arg @ref LL_EXTI_LINE_13
  925. * @arg @ref LL_EXTI_LINE_14
  926. * @arg @ref LL_EXTI_LINE_15
  927. * @arg @ref LL_EXTI_LINE_16
  928. * @arg @ref LL_EXTI_LINE_17
  929. * @arg @ref LL_EXTI_LINE_18
  930. * @arg @ref LL_EXTI_LINE_19
  931. * @arg @ref LL_EXTI_LINE_20
  932. * @arg @ref LL_EXTI_LINE_21
  933. * @arg @ref LL_EXTI_LINE_31
  934. * @retval None
  935. */
  936. __STATIC_INLINE void LL_EXTI_EnableRisingTrig_0_31(uint32_t ExtiLine)
  937. {
  938. SET_BIT(EXTI->RTSR1, ExtiLine);
  939. }
  940. /**
  941. * @brief Enable ExtiLine Rising Edge Trigger for Lines in range 32 to 63
  942. * @note The configurable wakeup lines are edge-triggered. No glitch must be
  943. * generated on these lines. If a rising edge on a configurable interrupt
  944. * line occurs during a write operation in the EXTI_RTSR register, the
  945. * pending bit is not set.Rising and falling edge triggers can be set for
  946. * the same interrupt line. In this case, both generate a trigger
  947. * condition.
  948. * @rmtoll RTSR2 RTx LL_EXTI_EnableRisingTrig_32_63
  949. * @param ExtiLine This parameter can be a combination of the following values:
  950. * @arg @ref LL_EXTI_LINE_33
  951. * @arg @ref LL_EXTI_LINE_40
  952. * @arg @ref LL_EXTI_LINE_41
  953. * @retval None
  954. */
  955. __STATIC_INLINE void LL_EXTI_EnableRisingTrig_32_63(uint32_t ExtiLine)
  956. {
  957. SET_BIT(EXTI->RTSR2, ExtiLine);
  958. }
  959. /**
  960. * @brief Disable ExtiLine Rising Edge Trigger for Lines in range 0 to 31
  961. * @note The configurable wakeup lines are edge-triggered. No glitch must be
  962. * generated on these lines. If a rising edge on a configurable interrupt
  963. * line occurs during a write operation in the EXTI_RTSR register, the
  964. * pending bit is not set.
  965. * Rising and falling edge triggers can be set for
  966. * the same interrupt line. In this case, both generate a trigger
  967. * condition.
  968. * @rmtoll RTSR1 RTx LL_EXTI_DisableRisingTrig_0_31
  969. * @param ExtiLine This parameter can be a combination of the following values:
  970. * @arg @ref LL_EXTI_LINE_0
  971. * @arg @ref LL_EXTI_LINE_1
  972. * @arg @ref LL_EXTI_LINE_2
  973. * @arg @ref LL_EXTI_LINE_3
  974. * @arg @ref LL_EXTI_LINE_4
  975. * @arg @ref LL_EXTI_LINE_5
  976. * @arg @ref LL_EXTI_LINE_6
  977. * @arg @ref LL_EXTI_LINE_7
  978. * @arg @ref LL_EXTI_LINE_8
  979. * @arg @ref LL_EXTI_LINE_9
  980. * @arg @ref LL_EXTI_LINE_10
  981. * @arg @ref LL_EXTI_LINE_11
  982. * @arg @ref LL_EXTI_LINE_12
  983. * @arg @ref LL_EXTI_LINE_13
  984. * @arg @ref LL_EXTI_LINE_14
  985. * @arg @ref LL_EXTI_LINE_15
  986. * @arg @ref LL_EXTI_LINE_16
  987. * @arg @ref LL_EXTI_LINE_17
  988. * @arg @ref LL_EXTI_LINE_18
  989. * @arg @ref LL_EXTI_LINE_19
  990. * @arg @ref LL_EXTI_LINE_20
  991. * @arg @ref LL_EXTI_LINE_21
  992. * @arg @ref LL_EXTI_LINE_31
  993. * @retval None
  994. */
  995. __STATIC_INLINE void LL_EXTI_DisableRisingTrig_0_31(uint32_t ExtiLine)
  996. {
  997. CLEAR_BIT(EXTI->RTSR1, ExtiLine);
  998. }
  999. /**
  1000. * @brief Disable ExtiLine Rising Edge Trigger for Lines in range 32 to 63
  1001. * @note The configurable wakeup lines are edge-triggered. No glitch must be
  1002. * generated on these lines. If a rising edge on a configurable interrupt
  1003. * line occurs during a write operation in the EXTI_RTSR register, the
  1004. * pending bit is not set.
  1005. * Rising and falling edge triggers can be set for
  1006. * the same interrupt line. In this case, both generate a trigger
  1007. * condition.
  1008. * @rmtoll RTSR2 RTx LL_EXTI_DisableRisingTrig_32_63
  1009. * @param ExtiLine This parameter can be a combination of the following values:
  1010. * @arg @ref LL_EXTI_LINE_33
  1011. * @arg @ref LL_EXTI_LINE_40
  1012. * @arg @ref LL_EXTI_LINE_41
  1013. * @retval None
  1014. */
  1015. __STATIC_INLINE void LL_EXTI_DisableRisingTrig_32_63(uint32_t ExtiLine)
  1016. {
  1017. CLEAR_BIT(EXTI->RTSR2, ExtiLine);
  1018. }
  1019. /**
  1020. * @brief Check if rising edge trigger is enabled for Lines in range 0 to 31
  1021. * @rmtoll RTSR1 RTx LL_EXTI_IsEnabledRisingTrig_0_31
  1022. * @param ExtiLine This parameter can be a combination of the following values:
  1023. * @arg @ref LL_EXTI_LINE_0
  1024. * @arg @ref LL_EXTI_LINE_1
  1025. * @arg @ref LL_EXTI_LINE_2
  1026. * @arg @ref LL_EXTI_LINE_3
  1027. * @arg @ref LL_EXTI_LINE_4
  1028. * @arg @ref LL_EXTI_LINE_5
  1029. * @arg @ref LL_EXTI_LINE_6
  1030. * @arg @ref LL_EXTI_LINE_7
  1031. * @arg @ref LL_EXTI_LINE_8
  1032. * @arg @ref LL_EXTI_LINE_9
  1033. * @arg @ref LL_EXTI_LINE_10
  1034. * @arg @ref LL_EXTI_LINE_11
  1035. * @arg @ref LL_EXTI_LINE_12
  1036. * @arg @ref LL_EXTI_LINE_13
  1037. * @arg @ref LL_EXTI_LINE_14
  1038. * @arg @ref LL_EXTI_LINE_15
  1039. * @arg @ref LL_EXTI_LINE_16
  1040. * @arg @ref LL_EXTI_LINE_17
  1041. * @arg @ref LL_EXTI_LINE_18
  1042. * @arg @ref LL_EXTI_LINE_19
  1043. * @arg @ref LL_EXTI_LINE_20
  1044. * @arg @ref LL_EXTI_LINE_21
  1045. * @arg @ref LL_EXTI_LINE_31
  1046. * @retval State of bit (1 or 0).
  1047. */
  1048. __STATIC_INLINE uint32_t LL_EXTI_IsEnabledRisingTrig_0_31(uint32_t ExtiLine)
  1049. {
  1050. return ((READ_BIT(EXTI->RTSR1, ExtiLine) == (ExtiLine)) ? 1UL : 0UL);
  1051. }
  1052. /**
  1053. * @brief Check if rising edge trigger is enabled for Lines in range 32 to 63
  1054. * @rmtoll RTSR2 RTx LL_EXTI_IsEnabledRisingTrig_32_63
  1055. * @param ExtiLine This parameter can be a combination of the following values:
  1056. * @arg @ref LL_EXTI_LINE_33
  1057. * @arg @ref LL_EXTI_LINE_40
  1058. * @arg @ref LL_EXTI_LINE_41
  1059. * @retval State of bit (1 or 0).
  1060. */
  1061. __STATIC_INLINE uint32_t LL_EXTI_IsEnabledRisingTrig_32_63(uint32_t ExtiLine)
  1062. {
  1063. return ((READ_BIT(EXTI->RTSR2, ExtiLine) == (ExtiLine)) ? 1UL : 0UL);
  1064. }
  1065. /**
  1066. * @}
  1067. */
  1068. /** @defgroup EXTI_LL_EF_Falling_Trigger_Management Falling_Trigger_Management
  1069. * @{
  1070. */
  1071. /**
  1072. * @brief Enable ExtiLine Falling Edge Trigger for Lines in range 0 to 31
  1073. * @note The configurable wakeup lines are edge-triggered. No glitch must be
  1074. * generated on these lines. If a falling edge on a configurable interrupt
  1075. * line occurs during a write operation in the EXTI_FTSR register, the
  1076. * pending bit is not set.
  1077. * Rising and falling edge triggers can be set for
  1078. * the same interrupt line. In this case, both generate a trigger
  1079. * condition.
  1080. * @rmtoll FTSR1 FTx LL_EXTI_EnableFallingTrig_0_31
  1081. * @param ExtiLine This parameter can be a combination of the following values:
  1082. * @arg @ref LL_EXTI_LINE_0
  1083. * @arg @ref LL_EXTI_LINE_1
  1084. * @arg @ref LL_EXTI_LINE_2
  1085. * @arg @ref LL_EXTI_LINE_3
  1086. * @arg @ref LL_EXTI_LINE_4
  1087. * @arg @ref LL_EXTI_LINE_5
  1088. * @arg @ref LL_EXTI_LINE_6
  1089. * @arg @ref LL_EXTI_LINE_7
  1090. * @arg @ref LL_EXTI_LINE_8
  1091. * @arg @ref LL_EXTI_LINE_9
  1092. * @arg @ref LL_EXTI_LINE_10
  1093. * @arg @ref LL_EXTI_LINE_11
  1094. * @arg @ref LL_EXTI_LINE_12
  1095. * @arg @ref LL_EXTI_LINE_13
  1096. * @arg @ref LL_EXTI_LINE_14
  1097. * @arg @ref LL_EXTI_LINE_15
  1098. * @arg @ref LL_EXTI_LINE_16
  1099. * @arg @ref LL_EXTI_LINE_18
  1100. * @arg @ref LL_EXTI_LINE_19
  1101. * @arg @ref LL_EXTI_LINE_20
  1102. * @arg @ref LL_EXTI_LINE_21
  1103. * @arg @ref LL_EXTI_LINE_22
  1104. * @arg @ref LL_EXTI_LINE_29
  1105. * @arg @ref LL_EXTI_LINE_30
  1106. * @arg @ref LL_EXTI_LINE_31
  1107. * @note Please check each device line mapping for EXTI Line availability
  1108. * @retval None
  1109. */
  1110. __STATIC_INLINE void LL_EXTI_EnableFallingTrig_0_31(uint32_t ExtiLine)
  1111. {
  1112. SET_BIT(EXTI->FTSR1, ExtiLine);
  1113. }
  1114. /**
  1115. * @brief Enable ExtiLine Falling Edge Trigger for Lines in range 32 to 63
  1116. * @note The configurable wakeup lines are edge-triggered. No glitch must be
  1117. * generated on these lines. If a Falling edge on a configurable interrupt
  1118. * line occurs during a write operation in the EXTI_FTSR register, the
  1119. * pending bit is not set.
  1120. * Rising and falling edge triggers can be set for
  1121. * the same interrupt line. In this case, both generate a trigger
  1122. * condition.
  1123. * @rmtoll FTSR2 FTx LL_EXTI_EnableFallingTrig_32_63
  1124. * @param ExtiLine This parameter can be a combination of the following values:
  1125. * @arg @ref LL_EXTI_LINE_35
  1126. * @arg @ref LL_EXTI_LINE_36
  1127. * @arg @ref LL_EXTI_LINE_37
  1128. * @arg @ref LL_EXTI_LINE_38
  1129. * @retval None
  1130. */
  1131. __STATIC_INLINE void LL_EXTI_EnableFallingTrig_32_63(uint32_t ExtiLine)
  1132. {
  1133. SET_BIT(EXTI->FTSR2, ExtiLine);
  1134. }
  1135. /**
  1136. * @brief Disable ExtiLine Falling Edge Trigger for Lines in range 0 to 31
  1137. * @note The configurable wakeup lines are edge-triggered. No glitch must be
  1138. * generated on these lines. If a Falling edge on a configurable interrupt
  1139. * line occurs during a write operation in the EXTI_FTSR register, the
  1140. * pending bit is not set.
  1141. * Rising and falling edge triggers can be set for the same interrupt line.
  1142. * In this case, both generate a trigger condition.
  1143. * @rmtoll FTSR1 FTx LL_EXTI_DisableFallingTrig_0_31
  1144. * @param ExtiLine This parameter can be a combination of the following values:
  1145. * @arg @ref LL_EXTI_LINE_0
  1146. * @arg @ref LL_EXTI_LINE_1
  1147. * @arg @ref LL_EXTI_LINE_2
  1148. * @arg @ref LL_EXTI_LINE_3
  1149. * @arg @ref LL_EXTI_LINE_4
  1150. * @arg @ref LL_EXTI_LINE_5
  1151. * @arg @ref LL_EXTI_LINE_6
  1152. * @arg @ref LL_EXTI_LINE_7
  1153. * @arg @ref LL_EXTI_LINE_8
  1154. * @arg @ref LL_EXTI_LINE_9
  1155. * @arg @ref LL_EXTI_LINE_10
  1156. * @arg @ref LL_EXTI_LINE_11
  1157. * @arg @ref LL_EXTI_LINE_12
  1158. * @arg @ref LL_EXTI_LINE_13
  1159. * @arg @ref LL_EXTI_LINE_14
  1160. * @arg @ref LL_EXTI_LINE_15
  1161. * @arg @ref LL_EXTI_LINE_16
  1162. * @arg @ref LL_EXTI_LINE_18
  1163. * @arg @ref LL_EXTI_LINE_19
  1164. * @arg @ref LL_EXTI_LINE_20
  1165. * @arg @ref LL_EXTI_LINE_21
  1166. * @arg @ref LL_EXTI_LINE_22
  1167. * @arg @ref LL_EXTI_LINE_29
  1168. * @arg @ref LL_EXTI_LINE_30
  1169. * @arg @ref LL_EXTI_LINE_31
  1170. * @note Please check each device line mapping for EXTI Line availability
  1171. * @retval None
  1172. */
  1173. __STATIC_INLINE void LL_EXTI_DisableFallingTrig_0_31(uint32_t ExtiLine)
  1174. {
  1175. CLEAR_BIT(EXTI->FTSR1, ExtiLine);
  1176. }
  1177. /**
  1178. * @brief Disable ExtiLine Falling Edge Trigger for Lines in range 32 to 63
  1179. * @note The configurable wakeup lines are edge-triggered. No glitch must be
  1180. * generated on these lines. If a Falling edge on a configurable interrupt
  1181. * line occurs during a write operation in the EXTI_FTSR register, the
  1182. * pending bit is not set.
  1183. * Rising and falling edge triggers can be set for the same interrupt line.
  1184. * In this case, both generate a trigger condition.
  1185. * @rmtoll FTSR2 FTx LL_EXTI_DisableFallingTrig_32_63
  1186. * @param ExtiLine This parameter can be a combination of the following values:
  1187. * @arg @ref LL_EXTI_LINE_35
  1188. * @arg @ref LL_EXTI_LINE_36
  1189. * @arg @ref LL_EXTI_LINE_37
  1190. * @arg @ref LL_EXTI_LINE_38
  1191. * @retval None
  1192. */
  1193. __STATIC_INLINE void LL_EXTI_DisableFallingTrig_32_63(uint32_t ExtiLine)
  1194. {
  1195. CLEAR_BIT(EXTI->FTSR2, ExtiLine);
  1196. }
  1197. /**
  1198. * @brief Check if falling edge trigger is enabled for Lines in range 0 to 31
  1199. * @rmtoll FTSR1 FTx LL_EXTI_IsEnabledFallingTrig_0_31
  1200. * @param ExtiLine This parameter can be a combination of the following values:
  1201. * @arg @ref LL_EXTI_LINE_0
  1202. * @arg @ref LL_EXTI_LINE_1
  1203. * @arg @ref LL_EXTI_LINE_2
  1204. * @arg @ref LL_EXTI_LINE_3
  1205. * @arg @ref LL_EXTI_LINE_4
  1206. * @arg @ref LL_EXTI_LINE_5
  1207. * @arg @ref LL_EXTI_LINE_6
  1208. * @arg @ref LL_EXTI_LINE_7
  1209. * @arg @ref LL_EXTI_LINE_8
  1210. * @arg @ref LL_EXTI_LINE_9
  1211. * @arg @ref LL_EXTI_LINE_10
  1212. * @arg @ref LL_EXTI_LINE_11
  1213. * @arg @ref LL_EXTI_LINE_12
  1214. * @arg @ref LL_EXTI_LINE_13
  1215. * @arg @ref LL_EXTI_LINE_14
  1216. * @arg @ref LL_EXTI_LINE_15
  1217. * @arg @ref LL_EXTI_LINE_16
  1218. * @arg @ref LL_EXTI_LINE_18
  1219. * @arg @ref LL_EXTI_LINE_19
  1220. * @arg @ref LL_EXTI_LINE_20
  1221. * @arg @ref LL_EXTI_LINE_21
  1222. * @arg @ref LL_EXTI_LINE_22
  1223. * @arg @ref LL_EXTI_LINE_29
  1224. * @arg @ref LL_EXTI_LINE_30
  1225. * @arg @ref LL_EXTI_LINE_31
  1226. * @note Please check each device line mapping for EXTI Line availability
  1227. * @retval State of bit (1 or 0).
  1228. */
  1229. __STATIC_INLINE uint32_t LL_EXTI_IsEnabledFallingTrig_0_31(uint32_t ExtiLine)
  1230. {
  1231. return ((READ_BIT(EXTI->FTSR1, ExtiLine) == (ExtiLine)) ? 1UL : 0UL);
  1232. }
  1233. /**
  1234. * @brief Check if falling edge trigger is enabled for Lines in range 32 to 63
  1235. * @rmtoll FTSR2 FTx LL_EXTI_IsEnabledFallingTrig_32_63
  1236. * @param ExtiLine This parameter can be a combination of the following values:
  1237. * @arg @ref LL_EXTI_LINE_35
  1238. * @arg @ref LL_EXTI_LINE_36
  1239. * @arg @ref LL_EXTI_LINE_37
  1240. * @arg @ref LL_EXTI_LINE_38
  1241. * @retval State of bit (1 or 0).
  1242. */
  1243. __STATIC_INLINE uint32_t LL_EXTI_IsEnabledFallingTrig_32_63(uint32_t ExtiLine)
  1244. {
  1245. return ((READ_BIT(EXTI->FTSR2, ExtiLine) == (ExtiLine)) ? 1UL : 0UL);
  1246. }
  1247. /**
  1248. * @}
  1249. */
  1250. /** @defgroup EXTI_LL_EF_Software_Interrupt_Management Software_Interrupt_Management
  1251. * @{
  1252. */
  1253. /**
  1254. * @brief Generate a software Interrupt Event for Lines in range 0 to 31
  1255. * @note If the interrupt is enabled on this line in the EXTI_IMR1, writing a 1 to
  1256. * this bit when it is at '0' sets the corresponding pending bit in EXTI_PR1
  1257. * resulting in an interrupt request generation.
  1258. * This bit is cleared by clearing the corresponding bit in the EXTI_PR1
  1259. * register (by writing a 1 into the bit)
  1260. * @rmtoll SWIER1 SWIx LL_EXTI_GenerateSWI_0_31
  1261. * @param ExtiLine This parameter can be a combination of the following values:
  1262. * @arg @ref LL_EXTI_LINE_0
  1263. * @arg @ref LL_EXTI_LINE_1
  1264. * @arg @ref LL_EXTI_LINE_2
  1265. * @arg @ref LL_EXTI_LINE_3
  1266. * @arg @ref LL_EXTI_LINE_4
  1267. * @arg @ref LL_EXTI_LINE_5
  1268. * @arg @ref LL_EXTI_LINE_6
  1269. * @arg @ref LL_EXTI_LINE_7
  1270. * @arg @ref LL_EXTI_LINE_8
  1271. * @arg @ref LL_EXTI_LINE_9
  1272. * @arg @ref LL_EXTI_LINE_10
  1273. * @arg @ref LL_EXTI_LINE_11
  1274. * @arg @ref LL_EXTI_LINE_12
  1275. * @arg @ref LL_EXTI_LINE_13
  1276. * @arg @ref LL_EXTI_LINE_14
  1277. * @arg @ref LL_EXTI_LINE_15
  1278. * @arg @ref LL_EXTI_LINE_16
  1279. * @arg @ref LL_EXTI_LINE_18
  1280. * @arg @ref LL_EXTI_LINE_19
  1281. * @arg @ref LL_EXTI_LINE_20
  1282. * @arg @ref LL_EXTI_LINE_21
  1283. * @arg @ref LL_EXTI_LINE_22
  1284. * @arg @ref LL_EXTI_LINE_29
  1285. * @arg @ref LL_EXTI_LINE_30
  1286. * @arg @ref LL_EXTI_LINE_31
  1287. * @note Please check each device line mapping for EXTI Line availability
  1288. * @retval None
  1289. */
  1290. __STATIC_INLINE void LL_EXTI_GenerateSWI_0_31(uint32_t ExtiLine)
  1291. {
  1292. SET_BIT(EXTI->SWIER1, ExtiLine);
  1293. }
  1294. /**
  1295. * @brief Generate a software Interrupt Event for Lines in range 32 to 63
  1296. * @note If the interrupt is enabled on this line inthe EXTI_IMR2, writing a 1 to
  1297. * this bit when it is at '0' sets the corresponding pending bit in EXTI_PR2
  1298. * resulting in an interrupt request generation.
  1299. * This bit is cleared by clearing the corresponding bit in the EXTI_PR2
  1300. * register (by writing a 1 into the bit)
  1301. * @rmtoll SWIER2 SWIx LL_EXTI_GenerateSWI_32_63
  1302. * @param ExtiLine This parameter can be a combination of the following values:
  1303. * @arg @ref LL_EXTI_LINE_35
  1304. * @arg @ref LL_EXTI_LINE_36
  1305. * @arg @ref LL_EXTI_LINE_37
  1306. * @arg @ref LL_EXTI_LINE_38
  1307. * @retval None
  1308. */
  1309. __STATIC_INLINE void LL_EXTI_GenerateSWI_32_63(uint32_t ExtiLine)
  1310. {
  1311. SET_BIT(EXTI->SWIER2, ExtiLine);
  1312. }
  1313. /**
  1314. * @}
  1315. */
  1316. /** @defgroup EXTI_LL_EF_Flag_Management Flag_Management
  1317. * @{
  1318. */
  1319. /**
  1320. * @brief Check if the ExtLine Flag is set or not for Lines in range 0 to 31
  1321. * @note This bit is set when the selected edge event arrives on the interrupt
  1322. * line. This bit is cleared by writing a 1 to the bit.
  1323. * @rmtoll PR1 PIFx LL_EXTI_IsActiveFlag_0_31
  1324. * @param ExtiLine This parameter can be a combination of the following values:
  1325. * @arg @ref LL_EXTI_LINE_0
  1326. * @arg @ref LL_EXTI_LINE_1
  1327. * @arg @ref LL_EXTI_LINE_2
  1328. * @arg @ref LL_EXTI_LINE_3
  1329. * @arg @ref LL_EXTI_LINE_4
  1330. * @arg @ref LL_EXTI_LINE_5
  1331. * @arg @ref LL_EXTI_LINE_6
  1332. * @arg @ref LL_EXTI_LINE_7
  1333. * @arg @ref LL_EXTI_LINE_8
  1334. * @arg @ref LL_EXTI_LINE_9
  1335. * @arg @ref LL_EXTI_LINE_10
  1336. * @arg @ref LL_EXTI_LINE_11
  1337. * @arg @ref LL_EXTI_LINE_12
  1338. * @arg @ref LL_EXTI_LINE_13
  1339. * @arg @ref LL_EXTI_LINE_14
  1340. * @arg @ref LL_EXTI_LINE_15
  1341. * @arg @ref LL_EXTI_LINE_16
  1342. * @arg @ref LL_EXTI_LINE_18
  1343. * @arg @ref LL_EXTI_LINE_19
  1344. * @arg @ref LL_EXTI_LINE_20
  1345. * @arg @ref LL_EXTI_LINE_21
  1346. * @arg @ref LL_EXTI_LINE_31
  1347. * @retval State of bit (1 or 0).
  1348. */
  1349. __STATIC_INLINE uint32_t LL_EXTI_IsActiveFlag_0_31(uint32_t ExtiLine)
  1350. {
  1351. return ((READ_BIT(EXTI->PR1, ExtiLine) == (ExtiLine)) ? 1UL : 0UL);
  1352. }
  1353. /**
  1354. * @brief Check if the ExtLine Flag is set or not for Lines in range 32 to 63
  1355. * @note This bit is set when the selected edge event arrives on the interrupt
  1356. * line. This bit is cleared by writing a 1 to the bit.
  1357. * @rmtoll PR2 PIFx LL_EXTI_IsActiveFlag_32_63
  1358. * @param ExtiLine This parameter can be a combination of the following values:
  1359. * @arg @ref LL_EXTI_LINE_33
  1360. * @arg @ref LL_EXTI_LINE_40
  1361. * @arg @ref LL_EXTI_LINE_41
  1362. * @retval State of bit (1 or 0).
  1363. */
  1364. __STATIC_INLINE uint32_t LL_EXTI_IsActiveFlag_32_63(uint32_t ExtiLine)
  1365. {
  1366. return ((READ_BIT(EXTI->PR2, ExtiLine) == (ExtiLine)) ? 1UL : 0UL);
  1367. }
  1368. /**
  1369. * @brief Read ExtLine Combination Flag for Lines in range 0 to 31
  1370. * @note This bit is set when the selected edge event arrives on the interrupt
  1371. * line. This bit is cleared by writing a 1 to the bit.
  1372. * @rmtoll PR1 PIFx LL_EXTI_ReadFlag_0_31
  1373. * @param ExtiLine This parameter can be a combination of the following values:
  1374. * @arg @ref LL_EXTI_LINE_0
  1375. * @arg @ref LL_EXTI_LINE_1
  1376. * @arg @ref LL_EXTI_LINE_2
  1377. * @arg @ref LL_EXTI_LINE_3
  1378. * @arg @ref LL_EXTI_LINE_4
  1379. * @arg @ref LL_EXTI_LINE_5
  1380. * @arg @ref LL_EXTI_LINE_6
  1381. * @arg @ref LL_EXTI_LINE_7
  1382. * @arg @ref LL_EXTI_LINE_8
  1383. * @arg @ref LL_EXTI_LINE_9
  1384. * @arg @ref LL_EXTI_LINE_10
  1385. * @arg @ref LL_EXTI_LINE_11
  1386. * @arg @ref LL_EXTI_LINE_12
  1387. * @arg @ref LL_EXTI_LINE_13
  1388. * @arg @ref LL_EXTI_LINE_14
  1389. * @arg @ref LL_EXTI_LINE_15
  1390. * @arg @ref LL_EXTI_LINE_16
  1391. * @arg @ref LL_EXTI_LINE_18
  1392. * @arg @ref LL_EXTI_LINE_19
  1393. * @arg @ref LL_EXTI_LINE_20
  1394. * @arg @ref LL_EXTI_LINE_21
  1395. * @arg @ref LL_EXTI_LINE_31
  1396. * @retval @note This bit is set when the selected edge event arrives on the interrupt
  1397. */
  1398. __STATIC_INLINE uint32_t LL_EXTI_ReadFlag_0_31(uint32_t ExtiLine)
  1399. {
  1400. return (uint32_t)(READ_BIT(EXTI->PR1, ExtiLine));
  1401. }
  1402. /**
  1403. * @brief Read ExtLine Combination Flag for Lines in range 32 to 63
  1404. * @note This bit is set when the selected edge event arrives on the interrupt
  1405. * line. This bit is cleared by writing a 1 to the bit.
  1406. * @rmtoll PR2 PIFx LL_EXTI_ReadFlag_32_63
  1407. * @param ExtiLine This parameter can be a combination of the following values:
  1408. * @arg @ref LL_EXTI_LINE_33
  1409. * @arg @ref LL_EXTI_LINE_40
  1410. * @arg @ref LL_EXTI_LINE_41
  1411. * @retval @note This bit is set when the selected edge event arrives on the interrupt
  1412. */
  1413. __STATIC_INLINE uint32_t LL_EXTI_ReadFlag_32_63(uint32_t ExtiLine)
  1414. {
  1415. return (uint32_t)(READ_BIT(EXTI->PR2, ExtiLine));
  1416. }
  1417. /**
  1418. * @brief Clear ExtLine Flags for Lines in range 0 to 31
  1419. * @note This bit is set when the selected edge event arrives on the interrupt
  1420. * line. This bit is cleared by writing a 1 to the bit.
  1421. * @rmtoll PR1 PIFx LL_EXTI_ClearFlag_0_31
  1422. * @param ExtiLine This parameter can be a combination of the following values:
  1423. * @arg @ref LL_EXTI_LINE_0
  1424. * @arg @ref LL_EXTI_LINE_1
  1425. * @arg @ref LL_EXTI_LINE_2
  1426. * @arg @ref LL_EXTI_LINE_3
  1427. * @arg @ref LL_EXTI_LINE_4
  1428. * @arg @ref LL_EXTI_LINE_5
  1429. * @arg @ref LL_EXTI_LINE_6
  1430. * @arg @ref LL_EXTI_LINE_7
  1431. * @arg @ref LL_EXTI_LINE_8
  1432. * @arg @ref LL_EXTI_LINE_9
  1433. * @arg @ref LL_EXTI_LINE_10
  1434. * @arg @ref LL_EXTI_LINE_11
  1435. * @arg @ref LL_EXTI_LINE_12
  1436. * @arg @ref LL_EXTI_LINE_13
  1437. * @arg @ref LL_EXTI_LINE_14
  1438. * @arg @ref LL_EXTI_LINE_15
  1439. * @arg @ref LL_EXTI_LINE_16
  1440. * @arg @ref LL_EXTI_LINE_18
  1441. * @arg @ref LL_EXTI_LINE_19
  1442. * @arg @ref LL_EXTI_LINE_20
  1443. * @arg @ref LL_EXTI_LINE_21
  1444. * @arg @ref LL_EXTI_LINE_31
  1445. * @retval None
  1446. */
  1447. __STATIC_INLINE void LL_EXTI_ClearFlag_0_31(uint32_t ExtiLine)
  1448. {
  1449. WRITE_REG(EXTI->PR1, ExtiLine);
  1450. }
  1451. /**
  1452. * @brief Clear ExtLine Flags for Lines in range 32 to 63
  1453. * @note This bit is set when the selected edge event arrives on the interrupt
  1454. * line. This bit is cleared by writing a 1 to the bit.
  1455. * @rmtoll PR2 PIFx LL_EXTI_ClearFlag_32_63
  1456. * @param ExtiLine This parameter can be a combination of the following values:
  1457. * @arg @ref LL_EXTI_LINE_33
  1458. * @arg @ref LL_EXTI_LINE_40
  1459. * @arg @ref LL_EXTI_LINE_41
  1460. * @retval None
  1461. */
  1462. __STATIC_INLINE void LL_EXTI_ClearFlag_32_63(uint32_t ExtiLine)
  1463. {
  1464. WRITE_REG(EXTI->PR2, ExtiLine);
  1465. }
  1466. /**
  1467. * @}
  1468. */
  1469. #if defined(USE_FULL_LL_DRIVER)
  1470. /** @defgroup EXTI_LL_EF_Init Initialization and de-initialization functions
  1471. * @{
  1472. */
  1473. ErrorStatus LL_EXTI_Init(LL_EXTI_InitTypeDef *EXTI_InitStruct);
  1474. ErrorStatus LL_EXTI_DeInit(void);
  1475. void LL_EXTI_StructInit(LL_EXTI_InitTypeDef *EXTI_InitStruct);
  1476. /**
  1477. * @}
  1478. */
  1479. #endif /* USE_FULL_LL_DRIVER */
  1480. /**
  1481. * @}
  1482. */
  1483. /**
  1484. * @}
  1485. */
  1486. #endif /* EXTI */
  1487. /**
  1488. * @}
  1489. */
  1490. #ifdef __cplusplus
  1491. }
  1492. #endif
  1493. #endif /* STM32WBxx_LL_EXTI_H */
  1494. /************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/