stm32f3xx_ll_exti.h 50 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228122912301231123212331234123512361237123812391240124112421243124412451246124712481249125012511252125312541255125612571258125912601261126212631264126512661267126812691270127112721273127412751276127712781279128012811282128312841285128612871288128912901291129212931294129512961297129812991300130113021303130413051306130713081309131013111312131313141315131613171318131913201321132213231324132513261327132813291330133113321333133413351336133713381339134013411342134313441345134613471348134913501351135213531354135513561357135813591360136113621363136413651366136713681369137013711372137313741375137613771378137913801381
  1. /**
  2. ******************************************************************************
  3. * @file stm32f3xx_ll_exti.h
  4. * @author MCD Application Team
  5. * @brief Header file of EXTI LL module.
  6. ******************************************************************************
  7. * @attention
  8. *
  9. * Copyright (c) 2016 STMicroelectronics.
  10. * All rights reserved.
  11. *
  12. * This software is licensed under terms that can be found in the LICENSE file
  13. * in the root directory of this software component.
  14. * If no LICENSE file comes with this software, it is provided AS-IS.
  15. *
  16. ******************************************************************************
  17. */
  18. /* Define to prevent recursive inclusion -------------------------------------*/
  19. #ifndef __STM32F3xx_LL_EXTI_H
  20. #define __STM32F3xx_LL_EXTI_H
  21. #ifdef __cplusplus
  22. extern "C" {
  23. #endif
  24. /* Includes ------------------------------------------------------------------*/
  25. #include "stm32f3xx.h"
  26. /** @addtogroup STM32F3xx_LL_Driver
  27. * @{
  28. */
  29. #if defined (EXTI)
  30. /** @defgroup EXTI_LL EXTI
  31. * @{
  32. */
  33. /* Private types -------------------------------------------------------------*/
  34. /* Private variables ---------------------------------------------------------*/
  35. /* Private constants ---------------------------------------------------------*/
  36. /* Private Macros ------------------------------------------------------------*/
  37. #if defined(USE_FULL_LL_DRIVER)
  38. /** @defgroup EXTI_LL_Private_Macros EXTI Private Macros
  39. * @{
  40. */
  41. /**
  42. * @}
  43. */
  44. #endif /*USE_FULL_LL_DRIVER*/
  45. /* Exported types ------------------------------------------------------------*/
  46. #if defined(USE_FULL_LL_DRIVER)
  47. /** @defgroup EXTI_LL_ES_INIT EXTI Exported Init structure
  48. * @{
  49. */
  50. typedef struct
  51. {
  52. uint32_t Line_0_31; /*!< Specifies the EXTI lines to be enabled or disabled for Lines in range 0 to 31
  53. This parameter can be any combination of @ref EXTI_LL_EC_LINE */
  54. #if defined(EXTI_32_63_SUPPORT)
  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. #endif
  58. FunctionalState LineCommand; /*!< Specifies the new state of the selected EXTI lines.
  59. This parameter can be set either to ENABLE or DISABLE */
  60. uint8_t Mode; /*!< Specifies the mode for the EXTI lines.
  61. This parameter can be a value of @ref EXTI_LL_EC_MODE. */
  62. uint8_t Trigger; /*!< Specifies the trigger signal active edge for the EXTI lines.
  63. This parameter can be a value of @ref EXTI_LL_EC_TRIGGER. */
  64. } LL_EXTI_InitTypeDef;
  65. /**
  66. * @}
  67. */
  68. #endif /*USE_FULL_LL_DRIVER*/
  69. /* Exported constants --------------------------------------------------------*/
  70. /** @defgroup EXTI_LL_Exported_Constants EXTI Exported Constants
  71. * @{
  72. */
  73. /** @defgroup EXTI_LL_EC_LINE LINE
  74. * @{
  75. */
  76. #define LL_EXTI_LINE_0 EXTI_IMR_IM0 /*!< Extended line 0 */
  77. #define LL_EXTI_LINE_1 EXTI_IMR_IM1 /*!< Extended line 1 */
  78. #define LL_EXTI_LINE_2 EXTI_IMR_IM2 /*!< Extended line 2 */
  79. #define LL_EXTI_LINE_3 EXTI_IMR_IM3 /*!< Extended line 3 */
  80. #define LL_EXTI_LINE_4 EXTI_IMR_IM4 /*!< Extended line 4 */
  81. #define LL_EXTI_LINE_5 EXTI_IMR_IM5 /*!< Extended line 5 */
  82. #define LL_EXTI_LINE_6 EXTI_IMR_IM6 /*!< Extended line 6 */
  83. #define LL_EXTI_LINE_7 EXTI_IMR_IM7 /*!< Extended line 7 */
  84. #define LL_EXTI_LINE_8 EXTI_IMR_IM8 /*!< Extended line 8 */
  85. #define LL_EXTI_LINE_9 EXTI_IMR_IM9 /*!< Extended line 9 */
  86. #define LL_EXTI_LINE_10 EXTI_IMR_IM10 /*!< Extended line 10 */
  87. #define LL_EXTI_LINE_11 EXTI_IMR_IM11 /*!< Extended line 11 */
  88. #define LL_EXTI_LINE_12 EXTI_IMR_IM12 /*!< Extended line 12 */
  89. #define LL_EXTI_LINE_13 EXTI_IMR_IM13 /*!< Extended line 13 */
  90. #define LL_EXTI_LINE_14 EXTI_IMR_IM14 /*!< Extended line 14 */
  91. #define LL_EXTI_LINE_15 EXTI_IMR_IM15 /*!< Extended line 15 */
  92. #if defined(EXTI_IMR_IM16)
  93. #define LL_EXTI_LINE_16 EXTI_IMR_IM16 /*!< Extended line 16 */
  94. #endif
  95. #define LL_EXTI_LINE_17 EXTI_IMR_IM17 /*!< Extended line 17 */
  96. #if defined(EXTI_IMR_IM18)
  97. #define LL_EXTI_LINE_18 EXTI_IMR_IM18 /*!< Extended line 18 */
  98. #endif
  99. #define LL_EXTI_LINE_19 EXTI_IMR_IM19 /*!< Extended line 19 */
  100. #if defined(EXTI_IMR_IM20)
  101. #define LL_EXTI_LINE_20 EXTI_IMR_IM20 /*!< Extended line 20 */
  102. #endif
  103. #if defined(EXTI_IMR_IM21)
  104. #define LL_EXTI_LINE_21 EXTI_IMR_IM21 /*!< Extended line 21 */
  105. #endif
  106. #if defined(EXTI_IMR_IM22)
  107. #define LL_EXTI_LINE_22 EXTI_IMR_IM22 /*!< Extended line 22 */
  108. #endif
  109. #define LL_EXTI_LINE_23 EXTI_IMR_IM23 /*!< Extended line 23 */
  110. #if defined(EXTI_IMR_IM24)
  111. #define LL_EXTI_LINE_24 EXTI_IMR_IM24 /*!< Extended line 24 */
  112. #endif
  113. #if defined(EXTI_IMR_IM25)
  114. #define LL_EXTI_LINE_25 EXTI_IMR_IM25 /*!< Extended line 25 */
  115. #endif
  116. #if defined(EXTI_IMR_IM26)
  117. #define LL_EXTI_LINE_26 EXTI_IMR_IM26 /*!< Extended line 26 */
  118. #endif
  119. #if defined(EXTI_IMR_IM27)
  120. #define LL_EXTI_LINE_27 EXTI_IMR_IM27 /*!< Extended line 27 */
  121. #endif
  122. #if defined(EXTI_IMR_IM28)
  123. #define LL_EXTI_LINE_28 EXTI_IMR_IM28 /*!< Extended line 28 */
  124. #endif
  125. #if defined(EXTI_IMR_IM29)
  126. #define LL_EXTI_LINE_29 EXTI_IMR_IM29 /*!< Extended line 29 */
  127. #endif
  128. #if defined(EXTI_IMR_IM30)
  129. #define LL_EXTI_LINE_30 EXTI_IMR_IM30 /*!< Extended line 30 */
  130. #endif
  131. #if defined(EXTI_IMR_IM31)
  132. #define LL_EXTI_LINE_31 EXTI_IMR_IM31 /*!< Extended line 31 */
  133. #endif
  134. #define LL_EXTI_LINE_ALL_0_31 EXTI_IMR_IM /*!< All Extended line not reserved*/
  135. #if defined(EXTI_32_63_SUPPORT)
  136. #define LL_EXTI_LINE_32 EXTI_IMR2_IM32 /*!< Extended line 32 */
  137. #if defined(EXTI_IMR2_IM33)
  138. #define LL_EXTI_LINE_33 EXTI_IMR2_IM33 /*!< Extended line 33 */
  139. #endif
  140. #if defined(EXTI_IMR2_IM34)
  141. #define LL_EXTI_LINE_34 EXTI_IMR2_IM34 /*!< Extended line 34 */
  142. #endif
  143. #if defined(EXTI_IMR2_IM35)
  144. #define LL_EXTI_LINE_35 EXTI_IMR2_IM35 /*!< Extended line 35 */
  145. #endif
  146. #if defined(EXTI_IMR2_IM36)
  147. #define LL_EXTI_LINE_36 EXTI_IMR2_IM36 /*!< Extended line 36 */
  148. #endif
  149. #if defined(EXTI_IMR2_IM37)
  150. #define LL_EXTI_LINE_37 EXTI_IMR2_IM37 /*!< Extended line 37 */
  151. #endif
  152. #if defined(EXTI_IMR2_IM38)
  153. #define LL_EXTI_LINE_38 EXTI_IMR2_IM38 /*!< Extended line 38 */
  154. #endif
  155. #if defined(EXTI_IMR2_IM39)
  156. #define LL_EXTI_LINE_39 EXTI_IMR2_IM39 /*!< Extended line 39 */
  157. #endif
  158. #if defined(EXTI_IMR2_IM40)
  159. #define LL_EXTI_LINE_40 EXTI_IMR2_IM40 /*!< Extended line 40 */
  160. #endif
  161. #define LL_EXTI_LINE_ALL_32_63 EXTI_IMR2_IM /*!< All Extended line not reserved*/
  162. #endif
  163. #define LL_EXTI_LINE_ALL (0xFFFFFFFFU) /*!< All Extended line */
  164. #if defined(USE_FULL_LL_DRIVER)
  165. #define LL_EXTI_LINE_NONE (0x00000000U) /*!< None Extended line */
  166. #endif /*USE_FULL_LL_DRIVER*/
  167. /**
  168. * @}
  169. */
  170. #if defined(USE_FULL_LL_DRIVER)
  171. /** @defgroup EXTI_LL_EC_MODE Mode
  172. * @{
  173. */
  174. #define LL_EXTI_MODE_IT ((uint8_t)0x00U) /*!< Interrupt Mode */
  175. #define LL_EXTI_MODE_EVENT ((uint8_t)0x01U) /*!< Event Mode */
  176. #define LL_EXTI_MODE_IT_EVENT ((uint8_t)0x02U) /*!< Interrupt & Event Mode */
  177. /**
  178. * @}
  179. */
  180. /** @defgroup EXTI_LL_EC_TRIGGER Edge Trigger
  181. * @{
  182. */
  183. #define LL_EXTI_TRIGGER_NONE ((uint8_t)0x00U) /*!< No Trigger Mode */
  184. #define LL_EXTI_TRIGGER_RISING ((uint8_t)0x01U) /*!< Trigger Rising Mode */
  185. #define LL_EXTI_TRIGGER_FALLING ((uint8_t)0x02U) /*!< Trigger Falling Mode */
  186. #define LL_EXTI_TRIGGER_RISING_FALLING ((uint8_t)0x03U) /*!< Trigger Rising & Falling Mode */
  187. /**
  188. * @}
  189. */
  190. #endif /*USE_FULL_LL_DRIVER*/
  191. /**
  192. * @}
  193. */
  194. /* Exported macro ------------------------------------------------------------*/
  195. /** @defgroup EXTI_LL_Exported_Macros EXTI Exported Macros
  196. * @{
  197. */
  198. /** @defgroup EXTI_LL_EM_WRITE_READ Common Write and read registers Macros
  199. * @{
  200. */
  201. /**
  202. * @brief Write a value in EXTI register
  203. * @param __REG__ Register to be written
  204. * @param __VALUE__ Value to be written in the register
  205. * @retval None
  206. */
  207. #define LL_EXTI_WriteReg(__REG__, __VALUE__) WRITE_REG(EXTI->__REG__, (__VALUE__))
  208. /**
  209. * @brief Read a value in EXTI register
  210. * @param __REG__ Register to be read
  211. * @retval Register value
  212. */
  213. #define LL_EXTI_ReadReg(__REG__) READ_REG(EXTI->__REG__)
  214. /**
  215. * @}
  216. */
  217. /**
  218. * @}
  219. */
  220. /* Exported functions --------------------------------------------------------*/
  221. /** @defgroup EXTI_LL_Exported_Functions EXTI Exported Functions
  222. * @{
  223. */
  224. /** @defgroup EXTI_LL_EF_IT_Management IT_Management
  225. * @{
  226. */
  227. /**
  228. * @brief Enable ExtiLine Interrupt request for Lines in range 0 to 31
  229. * @note The reset value for the direct or internal lines (see RM)
  230. * is set to 1 in order to enable the interrupt by default.
  231. * Bits are set automatically at Power on.
  232. * @rmtoll IMR IMx LL_EXTI_EnableIT_0_31
  233. * @param ExtiLine This parameter can be one of the following values:
  234. * @arg @ref LL_EXTI_LINE_0
  235. * @arg @ref LL_EXTI_LINE_1
  236. * @arg @ref LL_EXTI_LINE_2
  237. * @arg @ref LL_EXTI_LINE_3
  238. * @arg @ref LL_EXTI_LINE_4
  239. * @arg @ref LL_EXTI_LINE_5
  240. * @arg @ref LL_EXTI_LINE_6
  241. * @arg @ref LL_EXTI_LINE_7
  242. * @arg @ref LL_EXTI_LINE_8
  243. * @arg @ref LL_EXTI_LINE_9
  244. * @arg @ref LL_EXTI_LINE_10
  245. * @arg @ref LL_EXTI_LINE_11
  246. * @arg @ref LL_EXTI_LINE_12
  247. * @arg @ref LL_EXTI_LINE_13
  248. * @arg @ref LL_EXTI_LINE_14
  249. * @arg @ref LL_EXTI_LINE_15
  250. * @arg @ref LL_EXTI_LINE_16
  251. * @arg @ref LL_EXTI_LINE_17
  252. * @arg @ref LL_EXTI_LINE_18
  253. * @arg @ref LL_EXTI_LINE_19
  254. * @arg @ref LL_EXTI_LINE_20
  255. * @arg @ref LL_EXTI_LINE_21
  256. * @arg @ref LL_EXTI_LINE_22
  257. * @arg @ref LL_EXTI_LINE_23
  258. * @arg @ref LL_EXTI_LINE_24
  259. * @arg @ref LL_EXTI_LINE_25
  260. * @arg @ref LL_EXTI_LINE_26
  261. * @arg @ref LL_EXTI_LINE_27
  262. * @arg @ref LL_EXTI_LINE_28
  263. * @arg @ref LL_EXTI_LINE_29
  264. * @arg @ref LL_EXTI_LINE_30
  265. * @arg @ref LL_EXTI_LINE_31
  266. * @arg @ref LL_EXTI_LINE_ALL_0_31
  267. * @note Please check each device line mapping for EXTI Line availability
  268. * @retval None
  269. */
  270. __STATIC_INLINE void LL_EXTI_EnableIT_0_31(uint32_t ExtiLine)
  271. {
  272. SET_BIT(EXTI->IMR, ExtiLine);
  273. }
  274. #if defined(EXTI_32_63_SUPPORT)
  275. /**
  276. * @brief Enable ExtiLine Interrupt request for Lines in range 32 to 63
  277. * @note The reset value for the direct lines (lines from 32 to 34, line
  278. * 39) is set to 1 in order to enable the interrupt by default.
  279. * Bits are set automatically at Power on.
  280. * @rmtoll IMR2 IMx LL_EXTI_EnableIT_32_63
  281. * @param ExtiLine This parameter can be one of the following values:
  282. * @arg @ref LL_EXTI_LINE_32
  283. * @arg @ref LL_EXTI_LINE_33
  284. * @arg @ref LL_EXTI_LINE_34
  285. * @arg @ref LL_EXTI_LINE_35
  286. * @arg @ref LL_EXTI_LINE_36
  287. * @arg @ref LL_EXTI_LINE_37
  288. * @arg @ref LL_EXTI_LINE_38
  289. * @arg @ref LL_EXTI_LINE_39
  290. * @arg @ref LL_EXTI_LINE_ALL_32_63
  291. * @retval None
  292. */
  293. __STATIC_INLINE void LL_EXTI_EnableIT_32_63(uint32_t ExtiLine)
  294. {
  295. SET_BIT(EXTI->IMR2, ExtiLine);
  296. }
  297. #endif
  298. /**
  299. * @brief Disable ExtiLine Interrupt request for Lines in range 0 to 31
  300. * @note The reset value for the direct or internal lines (see RM)
  301. * is set to 1 in order to enable the interrupt by default.
  302. * Bits are set automatically at Power on.
  303. * @rmtoll IMR IMx LL_EXTI_DisableIT_0_31
  304. * @param ExtiLine This parameter can be one of the following values:
  305. * @arg @ref LL_EXTI_LINE_0
  306. * @arg @ref LL_EXTI_LINE_1
  307. * @arg @ref LL_EXTI_LINE_2
  308. * @arg @ref LL_EXTI_LINE_3
  309. * @arg @ref LL_EXTI_LINE_4
  310. * @arg @ref LL_EXTI_LINE_5
  311. * @arg @ref LL_EXTI_LINE_6
  312. * @arg @ref LL_EXTI_LINE_7
  313. * @arg @ref LL_EXTI_LINE_8
  314. * @arg @ref LL_EXTI_LINE_9
  315. * @arg @ref LL_EXTI_LINE_10
  316. * @arg @ref LL_EXTI_LINE_11
  317. * @arg @ref LL_EXTI_LINE_12
  318. * @arg @ref LL_EXTI_LINE_13
  319. * @arg @ref LL_EXTI_LINE_14
  320. * @arg @ref LL_EXTI_LINE_15
  321. * @arg @ref LL_EXTI_LINE_16
  322. * @arg @ref LL_EXTI_LINE_17
  323. * @arg @ref LL_EXTI_LINE_18
  324. * @arg @ref LL_EXTI_LINE_19
  325. * @arg @ref LL_EXTI_LINE_20
  326. * @arg @ref LL_EXTI_LINE_21
  327. * @arg @ref LL_EXTI_LINE_22
  328. * @arg @ref LL_EXTI_LINE_23
  329. * @arg @ref LL_EXTI_LINE_24
  330. * @arg @ref LL_EXTI_LINE_25
  331. * @arg @ref LL_EXTI_LINE_26
  332. * @arg @ref LL_EXTI_LINE_27
  333. * @arg @ref LL_EXTI_LINE_28
  334. * @arg @ref LL_EXTI_LINE_29
  335. * @arg @ref LL_EXTI_LINE_30
  336. * @arg @ref LL_EXTI_LINE_31
  337. * @arg @ref LL_EXTI_LINE_ALL_0_31
  338. * @note Please check each device line mapping for EXTI Line availability
  339. * @retval None
  340. */
  341. __STATIC_INLINE void LL_EXTI_DisableIT_0_31(uint32_t ExtiLine)
  342. {
  343. CLEAR_BIT(EXTI->IMR, ExtiLine);
  344. }
  345. #if defined(EXTI_32_63_SUPPORT)
  346. /**
  347. * @brief Disable ExtiLine Interrupt request for Lines in range 32 to 63
  348. * @note The reset value for the direct lines (lines from 32 to 34, line
  349. * 39) is set to 1 in order to enable the interrupt by default.
  350. * Bits are set automatically at Power on.
  351. * @rmtoll IMR2 IMx LL_EXTI_DisableIT_32_63
  352. * @param ExtiLine This parameter can be one of the following values:
  353. * @arg @ref LL_EXTI_LINE_32
  354. * @arg @ref LL_EXTI_LINE_33
  355. * @arg @ref LL_EXTI_LINE_34
  356. * @arg @ref LL_EXTI_LINE_35
  357. * @arg @ref LL_EXTI_LINE_36
  358. * @arg @ref LL_EXTI_LINE_37
  359. * @arg @ref LL_EXTI_LINE_38
  360. * @arg @ref LL_EXTI_LINE_39
  361. * @arg @ref LL_EXTI_LINE_ALL_32_63
  362. * @retval None
  363. */
  364. __STATIC_INLINE void LL_EXTI_DisableIT_32_63(uint32_t ExtiLine)
  365. {
  366. CLEAR_BIT(EXTI->IMR2, ExtiLine);
  367. }
  368. #endif
  369. /**
  370. * @brief Indicate if ExtiLine Interrupt request is enabled for Lines in range 0 to 31
  371. * @note The reset value for the direct or internal lines (see RM)
  372. * is set to 1 in order to enable the interrupt by default.
  373. * Bits are set automatically at Power on.
  374. * @rmtoll IMR IMx LL_EXTI_IsEnabledIT_0_31
  375. * @param ExtiLine This parameter can be one of the following values:
  376. * @arg @ref LL_EXTI_LINE_0
  377. * @arg @ref LL_EXTI_LINE_1
  378. * @arg @ref LL_EXTI_LINE_2
  379. * @arg @ref LL_EXTI_LINE_3
  380. * @arg @ref LL_EXTI_LINE_4
  381. * @arg @ref LL_EXTI_LINE_5
  382. * @arg @ref LL_EXTI_LINE_6
  383. * @arg @ref LL_EXTI_LINE_7
  384. * @arg @ref LL_EXTI_LINE_8
  385. * @arg @ref LL_EXTI_LINE_9
  386. * @arg @ref LL_EXTI_LINE_10
  387. * @arg @ref LL_EXTI_LINE_11
  388. * @arg @ref LL_EXTI_LINE_12
  389. * @arg @ref LL_EXTI_LINE_13
  390. * @arg @ref LL_EXTI_LINE_14
  391. * @arg @ref LL_EXTI_LINE_15
  392. * @arg @ref LL_EXTI_LINE_16
  393. * @arg @ref LL_EXTI_LINE_17
  394. * @arg @ref LL_EXTI_LINE_18
  395. * @arg @ref LL_EXTI_LINE_19
  396. * @arg @ref LL_EXTI_LINE_20
  397. * @arg @ref LL_EXTI_LINE_21
  398. * @arg @ref LL_EXTI_LINE_22
  399. * @arg @ref LL_EXTI_LINE_23
  400. * @arg @ref LL_EXTI_LINE_24
  401. * @arg @ref LL_EXTI_LINE_25
  402. * @arg @ref LL_EXTI_LINE_26
  403. * @arg @ref LL_EXTI_LINE_27
  404. * @arg @ref LL_EXTI_LINE_28
  405. * @arg @ref LL_EXTI_LINE_29
  406. * @arg @ref LL_EXTI_LINE_30
  407. * @arg @ref LL_EXTI_LINE_31
  408. * @arg @ref LL_EXTI_LINE_ALL_0_31
  409. * @note Please check each device line mapping for EXTI Line availability
  410. * @retval State of bit (1 or 0).
  411. */
  412. __STATIC_INLINE uint32_t LL_EXTI_IsEnabledIT_0_31(uint32_t ExtiLine)
  413. {
  414. return (READ_BIT(EXTI->IMR, ExtiLine) == (ExtiLine));
  415. }
  416. #if defined(EXTI_32_63_SUPPORT)
  417. /**
  418. * @brief Indicate if ExtiLine Interrupt request is enabled for Lines in range 32 to 63
  419. * @note The reset value for the direct lines (lines from 32 to 34, line
  420. * 39) is set to 1 in order to enable the interrupt by default.
  421. * Bits are set automatically at Power on.
  422. * @rmtoll IMR2 IMx LL_EXTI_IsEnabledIT_32_63
  423. * @param ExtiLine This parameter can be one of the following values:
  424. * @arg @ref LL_EXTI_LINE_32
  425. * @arg @ref LL_EXTI_LINE_33
  426. * @arg @ref LL_EXTI_LINE_34
  427. * @arg @ref LL_EXTI_LINE_35
  428. * @arg @ref LL_EXTI_LINE_36
  429. * @arg @ref LL_EXTI_LINE_37
  430. * @arg @ref LL_EXTI_LINE_38
  431. * @arg @ref LL_EXTI_LINE_39
  432. * @arg @ref LL_EXTI_LINE_ALL_32_63
  433. * @retval State of bit (1 or 0).
  434. */
  435. __STATIC_INLINE uint32_t LL_EXTI_IsEnabledIT_32_63(uint32_t ExtiLine)
  436. {
  437. return (READ_BIT(EXTI->IMR2, ExtiLine) == (ExtiLine));
  438. }
  439. #endif
  440. /**
  441. * @}
  442. */
  443. /** @defgroup EXTI_LL_EF_Event_Management Event_Management
  444. * @{
  445. */
  446. /**
  447. * @brief Enable ExtiLine Event request for Lines in range 0 to 31
  448. * @rmtoll EMR EMx LL_EXTI_EnableEvent_0_31
  449. * @param ExtiLine This parameter can be one of the following values:
  450. * @arg @ref LL_EXTI_LINE_0
  451. * @arg @ref LL_EXTI_LINE_1
  452. * @arg @ref LL_EXTI_LINE_2
  453. * @arg @ref LL_EXTI_LINE_3
  454. * @arg @ref LL_EXTI_LINE_4
  455. * @arg @ref LL_EXTI_LINE_5
  456. * @arg @ref LL_EXTI_LINE_6
  457. * @arg @ref LL_EXTI_LINE_7
  458. * @arg @ref LL_EXTI_LINE_8
  459. * @arg @ref LL_EXTI_LINE_9
  460. * @arg @ref LL_EXTI_LINE_10
  461. * @arg @ref LL_EXTI_LINE_11
  462. * @arg @ref LL_EXTI_LINE_12
  463. * @arg @ref LL_EXTI_LINE_13
  464. * @arg @ref LL_EXTI_LINE_14
  465. * @arg @ref LL_EXTI_LINE_15
  466. * @arg @ref LL_EXTI_LINE_16
  467. * @arg @ref LL_EXTI_LINE_17
  468. * @arg @ref LL_EXTI_LINE_18
  469. * @arg @ref LL_EXTI_LINE_19
  470. * @arg @ref LL_EXTI_LINE_20
  471. * @arg @ref LL_EXTI_LINE_21
  472. * @arg @ref LL_EXTI_LINE_22
  473. * @arg @ref LL_EXTI_LINE_23
  474. * @arg @ref LL_EXTI_LINE_24
  475. * @arg @ref LL_EXTI_LINE_25
  476. * @arg @ref LL_EXTI_LINE_26
  477. * @arg @ref LL_EXTI_LINE_27
  478. * @arg @ref LL_EXTI_LINE_28
  479. * @arg @ref LL_EXTI_LINE_29
  480. * @arg @ref LL_EXTI_LINE_30
  481. * @arg @ref LL_EXTI_LINE_31
  482. * @arg @ref LL_EXTI_LINE_ALL_0_31
  483. * @note Please check each device line mapping for EXTI Line availability
  484. * @retval None
  485. */
  486. __STATIC_INLINE void LL_EXTI_EnableEvent_0_31(uint32_t ExtiLine)
  487. {
  488. SET_BIT(EXTI->EMR, ExtiLine);
  489. }
  490. #if defined(EXTI_32_63_SUPPORT)
  491. /**
  492. * @brief Enable ExtiLine Event request for Lines in range 32 to 63
  493. * @rmtoll EMR2 EMx LL_EXTI_EnableEvent_32_63
  494. * @param ExtiLine This parameter can be a combination of the following values:
  495. * @arg @ref LL_EXTI_LINE_32
  496. * @arg @ref LL_EXTI_LINE_33
  497. * @arg @ref LL_EXTI_LINE_34
  498. * @arg @ref LL_EXTI_LINE_35
  499. * @arg @ref LL_EXTI_LINE_36
  500. * @arg @ref LL_EXTI_LINE_37
  501. * @arg @ref LL_EXTI_LINE_38
  502. * @arg @ref LL_EXTI_LINE_39
  503. * @arg @ref LL_EXTI_LINE_ALL_32_63
  504. * @retval None
  505. */
  506. __STATIC_INLINE void LL_EXTI_EnableEvent_32_63(uint32_t ExtiLine)
  507. {
  508. SET_BIT(EXTI->EMR2, ExtiLine);
  509. }
  510. #endif
  511. /**
  512. * @brief Disable ExtiLine Event request for Lines in range 0 to 31
  513. * @rmtoll EMR EMx LL_EXTI_DisableEvent_0_31
  514. * @param ExtiLine This parameter can be one of the following values:
  515. * @arg @ref LL_EXTI_LINE_0
  516. * @arg @ref LL_EXTI_LINE_1
  517. * @arg @ref LL_EXTI_LINE_2
  518. * @arg @ref LL_EXTI_LINE_3
  519. * @arg @ref LL_EXTI_LINE_4
  520. * @arg @ref LL_EXTI_LINE_5
  521. * @arg @ref LL_EXTI_LINE_6
  522. * @arg @ref LL_EXTI_LINE_7
  523. * @arg @ref LL_EXTI_LINE_8
  524. * @arg @ref LL_EXTI_LINE_9
  525. * @arg @ref LL_EXTI_LINE_10
  526. * @arg @ref LL_EXTI_LINE_11
  527. * @arg @ref LL_EXTI_LINE_12
  528. * @arg @ref LL_EXTI_LINE_13
  529. * @arg @ref LL_EXTI_LINE_14
  530. * @arg @ref LL_EXTI_LINE_15
  531. * @arg @ref LL_EXTI_LINE_16
  532. * @arg @ref LL_EXTI_LINE_17
  533. * @arg @ref LL_EXTI_LINE_18
  534. * @arg @ref LL_EXTI_LINE_19
  535. * @arg @ref LL_EXTI_LINE_20
  536. * @arg @ref LL_EXTI_LINE_21
  537. * @arg @ref LL_EXTI_LINE_22
  538. * @arg @ref LL_EXTI_LINE_23
  539. * @arg @ref LL_EXTI_LINE_24
  540. * @arg @ref LL_EXTI_LINE_25
  541. * @arg @ref LL_EXTI_LINE_26
  542. * @arg @ref LL_EXTI_LINE_27
  543. * @arg @ref LL_EXTI_LINE_28
  544. * @arg @ref LL_EXTI_LINE_29
  545. * @arg @ref LL_EXTI_LINE_30
  546. * @arg @ref LL_EXTI_LINE_31
  547. * @arg @ref LL_EXTI_LINE_ALL_0_31
  548. * @note Please check each device line mapping for EXTI Line availability
  549. * @retval None
  550. */
  551. __STATIC_INLINE void LL_EXTI_DisableEvent_0_31(uint32_t ExtiLine)
  552. {
  553. CLEAR_BIT(EXTI->EMR, ExtiLine);
  554. }
  555. #if defined(EXTI_32_63_SUPPORT)
  556. /**
  557. * @brief Disable ExtiLine Event request for Lines in range 32 to 63
  558. * @rmtoll EMR2 EMx LL_EXTI_DisableEvent_32_63
  559. * @param ExtiLine This parameter can be a combination of the following values:
  560. * @arg @ref LL_EXTI_LINE_32
  561. * @arg @ref LL_EXTI_LINE_33
  562. * @arg @ref LL_EXTI_LINE_34
  563. * @arg @ref LL_EXTI_LINE_35
  564. * @arg @ref LL_EXTI_LINE_36
  565. * @arg @ref LL_EXTI_LINE_37
  566. * @arg @ref LL_EXTI_LINE_38
  567. * @arg @ref LL_EXTI_LINE_39
  568. * @arg @ref LL_EXTI_LINE_ALL_32_63
  569. * @retval None
  570. */
  571. __STATIC_INLINE void LL_EXTI_DisableEvent_32_63(uint32_t ExtiLine)
  572. {
  573. CLEAR_BIT(EXTI->EMR2, ExtiLine);
  574. }
  575. #endif
  576. /**
  577. * @brief Indicate if ExtiLine Event request is enabled for Lines in range 0 to 31
  578. * @rmtoll EMR EMx LL_EXTI_IsEnabledEvent_0_31
  579. * @param ExtiLine This parameter can be one of the following values:
  580. * @arg @ref LL_EXTI_LINE_0
  581. * @arg @ref LL_EXTI_LINE_1
  582. * @arg @ref LL_EXTI_LINE_2
  583. * @arg @ref LL_EXTI_LINE_3
  584. * @arg @ref LL_EXTI_LINE_4
  585. * @arg @ref LL_EXTI_LINE_5
  586. * @arg @ref LL_EXTI_LINE_6
  587. * @arg @ref LL_EXTI_LINE_7
  588. * @arg @ref LL_EXTI_LINE_8
  589. * @arg @ref LL_EXTI_LINE_9
  590. * @arg @ref LL_EXTI_LINE_10
  591. * @arg @ref LL_EXTI_LINE_11
  592. * @arg @ref LL_EXTI_LINE_12
  593. * @arg @ref LL_EXTI_LINE_13
  594. * @arg @ref LL_EXTI_LINE_14
  595. * @arg @ref LL_EXTI_LINE_15
  596. * @arg @ref LL_EXTI_LINE_16
  597. * @arg @ref LL_EXTI_LINE_17
  598. * @arg @ref LL_EXTI_LINE_18
  599. * @arg @ref LL_EXTI_LINE_19
  600. * @arg @ref LL_EXTI_LINE_20
  601. * @arg @ref LL_EXTI_LINE_21
  602. * @arg @ref LL_EXTI_LINE_22
  603. * @arg @ref LL_EXTI_LINE_23
  604. * @arg @ref LL_EXTI_LINE_24
  605. * @arg @ref LL_EXTI_LINE_25
  606. * @arg @ref LL_EXTI_LINE_26
  607. * @arg @ref LL_EXTI_LINE_27
  608. * @arg @ref LL_EXTI_LINE_28
  609. * @arg @ref LL_EXTI_LINE_29
  610. * @arg @ref LL_EXTI_LINE_30
  611. * @arg @ref LL_EXTI_LINE_31
  612. * @arg @ref LL_EXTI_LINE_ALL_0_31
  613. * @note Please check each device line mapping for EXTI Line availability
  614. * @retval State of bit (1 or 0).
  615. */
  616. __STATIC_INLINE uint32_t LL_EXTI_IsEnabledEvent_0_31(uint32_t ExtiLine)
  617. {
  618. return (READ_BIT(EXTI->EMR, ExtiLine) == (ExtiLine));
  619. }
  620. #if defined(EXTI_32_63_SUPPORT)
  621. /**
  622. * @brief Indicate if ExtiLine Event request is enabled for Lines in range 32 to 63
  623. * @rmtoll EMR2 EMx LL_EXTI_IsEnabledEvent_32_63
  624. * @param ExtiLine This parameter can be a combination of the following values:
  625. * @arg @ref LL_EXTI_LINE_32
  626. * @arg @ref LL_EXTI_LINE_33
  627. * @arg @ref LL_EXTI_LINE_34
  628. * @arg @ref LL_EXTI_LINE_35
  629. * @arg @ref LL_EXTI_LINE_36
  630. * @arg @ref LL_EXTI_LINE_37
  631. * @arg @ref LL_EXTI_LINE_38
  632. * @arg @ref LL_EXTI_LINE_39
  633. * @arg @ref LL_EXTI_LINE_ALL_32_63
  634. * @retval State of bit (1 or 0).
  635. */
  636. __STATIC_INLINE uint32_t LL_EXTI_IsEnabledEvent_32_63(uint32_t ExtiLine)
  637. {
  638. return (READ_BIT(EXTI->EMR2, ExtiLine) == (ExtiLine));
  639. }
  640. #endif
  641. /**
  642. * @}
  643. */
  644. /** @defgroup EXTI_LL_EF_Rising_Trigger_Management Rising_Trigger_Management
  645. * @{
  646. */
  647. /**
  648. * @brief Enable ExtiLine Rising Edge Trigger for Lines in range 0 to 31
  649. * @note The configurable wakeup lines are edge-triggered. No glitch must be
  650. * generated on these lines. If a rising edge on a configurable interrupt
  651. * line occurs during a write operation in the EXTI_RTSR register, the
  652. * pending bit is not set.
  653. * Rising and falling edge triggers can be set for
  654. * the same interrupt line. In this case, both generate a trigger
  655. * condition.
  656. * @rmtoll RTSR RTx LL_EXTI_EnableRisingTrig_0_31
  657. * @param ExtiLine This parameter can be a combination 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_16
  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_22
  680. * @arg @ref LL_EXTI_LINE_29
  681. * @arg @ref LL_EXTI_LINE_30
  682. * @arg @ref LL_EXTI_LINE_31
  683. * @note Please check each device line mapping for EXTI Line availability
  684. * @retval None
  685. */
  686. __STATIC_INLINE void LL_EXTI_EnableRisingTrig_0_31(uint32_t ExtiLine)
  687. {
  688. SET_BIT(EXTI->RTSR, ExtiLine);
  689. }
  690. #if defined(EXTI_32_63_SUPPORT)
  691. /**
  692. * @brief Enable ExtiLine Rising Edge Trigger for Lines in range 32 to 63
  693. * @note The configurable wakeup lines are edge-triggered. No glitch must be
  694. * generated on these lines. If a rising edge on a configurable interrupt
  695. * line occurs during a write operation in the EXTI_RTSR register, the
  696. * pending bit is not set.Rising and falling edge triggers can be set for
  697. * the same interrupt line. In this case, both generate a trigger
  698. * condition.
  699. * @rmtoll RTSR2 RTx LL_EXTI_EnableRisingTrig_32_63
  700. * @param ExtiLine This parameter can be a combination of the following values:
  701. * @arg @ref LL_EXTI_LINE_35
  702. * @arg @ref LL_EXTI_LINE_36
  703. * @arg @ref LL_EXTI_LINE_37
  704. * @arg @ref LL_EXTI_LINE_38
  705. * @retval None
  706. */
  707. __STATIC_INLINE void LL_EXTI_EnableRisingTrig_32_63(uint32_t ExtiLine)
  708. {
  709. SET_BIT(EXTI->RTSR2, ExtiLine);
  710. }
  711. #endif
  712. /**
  713. * @brief Disable ExtiLine Rising Edge Trigger for Lines in range 0 to 31
  714. * @note The configurable wakeup lines are edge-triggered. No glitch must be
  715. * generated on these lines. If a rising edge on a configurable interrupt
  716. * line occurs during a write operation in the EXTI_RTSR register, the
  717. * pending bit is not set.
  718. * Rising and falling edge triggers can be set for
  719. * the same interrupt line. In this case, both generate a trigger
  720. * condition.
  721. * @rmtoll RTSR RTx LL_EXTI_DisableRisingTrig_0_31
  722. * @param ExtiLine This parameter can be a combination of the following values:
  723. * @arg @ref LL_EXTI_LINE_0
  724. * @arg @ref LL_EXTI_LINE_1
  725. * @arg @ref LL_EXTI_LINE_2
  726. * @arg @ref LL_EXTI_LINE_3
  727. * @arg @ref LL_EXTI_LINE_4
  728. * @arg @ref LL_EXTI_LINE_5
  729. * @arg @ref LL_EXTI_LINE_6
  730. * @arg @ref LL_EXTI_LINE_7
  731. * @arg @ref LL_EXTI_LINE_8
  732. * @arg @ref LL_EXTI_LINE_9
  733. * @arg @ref LL_EXTI_LINE_10
  734. * @arg @ref LL_EXTI_LINE_11
  735. * @arg @ref LL_EXTI_LINE_12
  736. * @arg @ref LL_EXTI_LINE_13
  737. * @arg @ref LL_EXTI_LINE_14
  738. * @arg @ref LL_EXTI_LINE_15
  739. * @arg @ref LL_EXTI_LINE_16
  740. * @arg @ref LL_EXTI_LINE_18
  741. * @arg @ref LL_EXTI_LINE_19
  742. * @arg @ref LL_EXTI_LINE_20
  743. * @arg @ref LL_EXTI_LINE_21
  744. * @arg @ref LL_EXTI_LINE_22
  745. * @arg @ref LL_EXTI_LINE_29
  746. * @arg @ref LL_EXTI_LINE_30
  747. * @arg @ref LL_EXTI_LINE_31
  748. * @note Please check each device line mapping for EXTI Line availability
  749. * @retval None
  750. */
  751. __STATIC_INLINE void LL_EXTI_DisableRisingTrig_0_31(uint32_t ExtiLine)
  752. {
  753. CLEAR_BIT(EXTI->RTSR, ExtiLine);
  754. }
  755. #if defined(EXTI_32_63_SUPPORT)
  756. /**
  757. * @brief Disable ExtiLine Rising Edge Trigger for Lines in range 32 to 63
  758. * @note The configurable wakeup lines are edge-triggered. No glitch must be
  759. * generated on these lines. If a rising edge on a configurable interrupt
  760. * line occurs during a write operation in the EXTI_RTSR register, the
  761. * pending bit is not set.
  762. * Rising and falling edge triggers can be set for
  763. * the same interrupt line. In this case, both generate a trigger
  764. * condition.
  765. * @rmtoll RTSR2 RTx LL_EXTI_DisableRisingTrig_32_63
  766. * @param ExtiLine This parameter can be a combination of the following values:
  767. * @arg @ref LL_EXTI_LINE_35
  768. * @arg @ref LL_EXTI_LINE_36
  769. * @arg @ref LL_EXTI_LINE_37
  770. * @arg @ref LL_EXTI_LINE_38
  771. * @retval None
  772. */
  773. __STATIC_INLINE void LL_EXTI_DisableRisingTrig_32_63(uint32_t ExtiLine)
  774. {
  775. CLEAR_BIT(EXTI->RTSR2, ExtiLine);
  776. }
  777. #endif
  778. /**
  779. * @brief Check if rising edge trigger is enabled for Lines in range 0 to 31
  780. * @rmtoll RTSR RTx LL_EXTI_IsEnabledRisingTrig_0_31
  781. * @param ExtiLine This parameter can be a combination of the following values:
  782. * @arg @ref LL_EXTI_LINE_0
  783. * @arg @ref LL_EXTI_LINE_1
  784. * @arg @ref LL_EXTI_LINE_2
  785. * @arg @ref LL_EXTI_LINE_3
  786. * @arg @ref LL_EXTI_LINE_4
  787. * @arg @ref LL_EXTI_LINE_5
  788. * @arg @ref LL_EXTI_LINE_6
  789. * @arg @ref LL_EXTI_LINE_7
  790. * @arg @ref LL_EXTI_LINE_8
  791. * @arg @ref LL_EXTI_LINE_9
  792. * @arg @ref LL_EXTI_LINE_10
  793. * @arg @ref LL_EXTI_LINE_11
  794. * @arg @ref LL_EXTI_LINE_12
  795. * @arg @ref LL_EXTI_LINE_13
  796. * @arg @ref LL_EXTI_LINE_14
  797. * @arg @ref LL_EXTI_LINE_15
  798. * @arg @ref LL_EXTI_LINE_16
  799. * @arg @ref LL_EXTI_LINE_18
  800. * @arg @ref LL_EXTI_LINE_19
  801. * @arg @ref LL_EXTI_LINE_20
  802. * @arg @ref LL_EXTI_LINE_21
  803. * @arg @ref LL_EXTI_LINE_22
  804. * @arg @ref LL_EXTI_LINE_29
  805. * @arg @ref LL_EXTI_LINE_30
  806. * @arg @ref LL_EXTI_LINE_31
  807. * @note Please check each device line mapping for EXTI Line availability
  808. * @retval State of bit (1 or 0).
  809. */
  810. __STATIC_INLINE uint32_t LL_EXTI_IsEnabledRisingTrig_0_31(uint32_t ExtiLine)
  811. {
  812. return (READ_BIT(EXTI->RTSR, ExtiLine) == (ExtiLine));
  813. }
  814. #if defined(EXTI_32_63_SUPPORT)
  815. /**
  816. * @brief Check if rising edge trigger is enabled for Lines in range 32 to 63
  817. * @rmtoll RTSR2 RTx LL_EXTI_IsEnabledRisingTrig_32_63
  818. * @param ExtiLine This parameter can be a combination of the following values:
  819. * @arg @ref LL_EXTI_LINE_35
  820. * @arg @ref LL_EXTI_LINE_36
  821. * @arg @ref LL_EXTI_LINE_37
  822. * @arg @ref LL_EXTI_LINE_38
  823. * @retval State of bit (1 or 0).
  824. */
  825. __STATIC_INLINE uint32_t LL_EXTI_IsEnabledRisingTrig_32_63(uint32_t ExtiLine)
  826. {
  827. return (READ_BIT(EXTI->RTSR2, ExtiLine) == (ExtiLine));
  828. }
  829. #endif
  830. /**
  831. * @}
  832. */
  833. /** @defgroup EXTI_LL_EF_Falling_Trigger_Management Falling_Trigger_Management
  834. * @{
  835. */
  836. /**
  837. * @brief Enable ExtiLine Falling Edge Trigger for Lines in range 0 to 31
  838. * @note The configurable wakeup lines are edge-triggered. No glitch must be
  839. * generated on these lines. If a falling edge on a configurable interrupt
  840. * line occurs during a write operation in the EXTI_FTSR register, the
  841. * pending bit is not set.
  842. * Rising and falling edge triggers can be set for
  843. * the same interrupt line. In this case, both generate a trigger
  844. * condition.
  845. * @rmtoll FTSR FTx LL_EXTI_EnableFallingTrig_0_31
  846. * @param ExtiLine This parameter can be a combination of the following values:
  847. * @arg @ref LL_EXTI_LINE_0
  848. * @arg @ref LL_EXTI_LINE_1
  849. * @arg @ref LL_EXTI_LINE_2
  850. * @arg @ref LL_EXTI_LINE_3
  851. * @arg @ref LL_EXTI_LINE_4
  852. * @arg @ref LL_EXTI_LINE_5
  853. * @arg @ref LL_EXTI_LINE_6
  854. * @arg @ref LL_EXTI_LINE_7
  855. * @arg @ref LL_EXTI_LINE_8
  856. * @arg @ref LL_EXTI_LINE_9
  857. * @arg @ref LL_EXTI_LINE_10
  858. * @arg @ref LL_EXTI_LINE_11
  859. * @arg @ref LL_EXTI_LINE_12
  860. * @arg @ref LL_EXTI_LINE_13
  861. * @arg @ref LL_EXTI_LINE_14
  862. * @arg @ref LL_EXTI_LINE_15
  863. * @arg @ref LL_EXTI_LINE_16
  864. * @arg @ref LL_EXTI_LINE_18
  865. * @arg @ref LL_EXTI_LINE_19
  866. * @arg @ref LL_EXTI_LINE_20
  867. * @arg @ref LL_EXTI_LINE_21
  868. * @arg @ref LL_EXTI_LINE_22
  869. * @arg @ref LL_EXTI_LINE_29
  870. * @arg @ref LL_EXTI_LINE_30
  871. * @arg @ref LL_EXTI_LINE_31
  872. * @note Please check each device line mapping for EXTI Line availability
  873. * @retval None
  874. */
  875. __STATIC_INLINE void LL_EXTI_EnableFallingTrig_0_31(uint32_t ExtiLine)
  876. {
  877. SET_BIT(EXTI->FTSR, ExtiLine);
  878. }
  879. #if defined(EXTI_32_63_SUPPORT)
  880. /**
  881. * @brief Enable ExtiLine Falling Edge Trigger for Lines in range 32 to 63
  882. * @note The configurable wakeup lines are edge-triggered. No glitch must be
  883. * generated on these lines. If a Falling edge on a configurable interrupt
  884. * line occurs during a write operation in the EXTI_FTSR register, the
  885. * pending bit is not set.
  886. * Rising and falling edge triggers can be set for
  887. * the same interrupt line. In this case, both generate a trigger
  888. * condition.
  889. * @rmtoll FTSR2 FTx LL_EXTI_EnableFallingTrig_32_63
  890. * @param ExtiLine This parameter can be a combination of the following values:
  891. * @arg @ref LL_EXTI_LINE_35
  892. * @arg @ref LL_EXTI_LINE_36
  893. * @arg @ref LL_EXTI_LINE_37
  894. * @arg @ref LL_EXTI_LINE_38
  895. * @retval None
  896. */
  897. __STATIC_INLINE void LL_EXTI_EnableFallingTrig_32_63(uint32_t ExtiLine)
  898. {
  899. SET_BIT(EXTI->FTSR2, ExtiLine);
  900. }
  901. #endif
  902. /**
  903. * @brief Disable ExtiLine Falling Edge Trigger for Lines in range 0 to 31
  904. * @note The configurable wakeup lines are edge-triggered. No glitch must be
  905. * generated on these lines. If a Falling edge on a configurable interrupt
  906. * line occurs during a write operation in the EXTI_FTSR register, the
  907. * pending bit is not set.
  908. * Rising and falling edge triggers can be set for the same interrupt line.
  909. * In this case, both generate a trigger condition.
  910. * @rmtoll FTSR FTx LL_EXTI_DisableFallingTrig_0_31
  911. * @param ExtiLine This parameter can be a combination of the following values:
  912. * @arg @ref LL_EXTI_LINE_0
  913. * @arg @ref LL_EXTI_LINE_1
  914. * @arg @ref LL_EXTI_LINE_2
  915. * @arg @ref LL_EXTI_LINE_3
  916. * @arg @ref LL_EXTI_LINE_4
  917. * @arg @ref LL_EXTI_LINE_5
  918. * @arg @ref LL_EXTI_LINE_6
  919. * @arg @ref LL_EXTI_LINE_7
  920. * @arg @ref LL_EXTI_LINE_8
  921. * @arg @ref LL_EXTI_LINE_9
  922. * @arg @ref LL_EXTI_LINE_10
  923. * @arg @ref LL_EXTI_LINE_11
  924. * @arg @ref LL_EXTI_LINE_12
  925. * @arg @ref LL_EXTI_LINE_13
  926. * @arg @ref LL_EXTI_LINE_14
  927. * @arg @ref LL_EXTI_LINE_15
  928. * @arg @ref LL_EXTI_LINE_16
  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_22
  934. * @arg @ref LL_EXTI_LINE_29
  935. * @arg @ref LL_EXTI_LINE_30
  936. * @arg @ref LL_EXTI_LINE_31
  937. * @note Please check each device line mapping for EXTI Line availability
  938. * @retval None
  939. */
  940. __STATIC_INLINE void LL_EXTI_DisableFallingTrig_0_31(uint32_t ExtiLine)
  941. {
  942. CLEAR_BIT(EXTI->FTSR, ExtiLine);
  943. }
  944. #if defined(EXTI_32_63_SUPPORT)
  945. /**
  946. * @brief Disable ExtiLine Falling Edge Trigger for Lines in range 32 to 63
  947. * @note The configurable wakeup lines are edge-triggered. No glitch must be
  948. * generated on these lines. If a Falling edge on a configurable interrupt
  949. * line occurs during a write operation in the EXTI_FTSR register, the
  950. * pending bit is not set.
  951. * Rising and falling edge triggers can be set for the same interrupt line.
  952. * In this case, both generate a trigger condition.
  953. * @rmtoll FTSR2 FTx LL_EXTI_DisableFallingTrig_32_63
  954. * @param ExtiLine This parameter can be a combination of the following values:
  955. * @arg @ref LL_EXTI_LINE_35
  956. * @arg @ref LL_EXTI_LINE_36
  957. * @arg @ref LL_EXTI_LINE_37
  958. * @arg @ref LL_EXTI_LINE_38
  959. * @retval None
  960. */
  961. __STATIC_INLINE void LL_EXTI_DisableFallingTrig_32_63(uint32_t ExtiLine)
  962. {
  963. CLEAR_BIT(EXTI->FTSR2, ExtiLine);
  964. }
  965. #endif
  966. /**
  967. * @brief Check if falling edge trigger is enabled for Lines in range 0 to 31
  968. * @rmtoll FTSR FTx LL_EXTI_IsEnabledFallingTrig_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_18
  988. * @arg @ref LL_EXTI_LINE_19
  989. * @arg @ref LL_EXTI_LINE_20
  990. * @arg @ref LL_EXTI_LINE_21
  991. * @arg @ref LL_EXTI_LINE_22
  992. * @arg @ref LL_EXTI_LINE_29
  993. * @arg @ref LL_EXTI_LINE_30
  994. * @arg @ref LL_EXTI_LINE_31
  995. * @note Please check each device line mapping for EXTI Line availability
  996. * @retval State of bit (1 or 0).
  997. */
  998. __STATIC_INLINE uint32_t LL_EXTI_IsEnabledFallingTrig_0_31(uint32_t ExtiLine)
  999. {
  1000. return (READ_BIT(EXTI->FTSR, ExtiLine) == (ExtiLine));
  1001. }
  1002. #if defined(EXTI_32_63_SUPPORT)
  1003. /**
  1004. * @brief Check if falling edge trigger is enabled for Lines in range 32 to 63
  1005. * @rmtoll FTSR2 FTx LL_EXTI_IsEnabledFallingTrig_32_63
  1006. * @param ExtiLine This parameter can be a combination of the following values:
  1007. * @arg @ref LL_EXTI_LINE_35
  1008. * @arg @ref LL_EXTI_LINE_36
  1009. * @arg @ref LL_EXTI_LINE_37
  1010. * @arg @ref LL_EXTI_LINE_38
  1011. * @retval State of bit (1 or 0).
  1012. */
  1013. __STATIC_INLINE uint32_t LL_EXTI_IsEnabledFallingTrig_32_63(uint32_t ExtiLine)
  1014. {
  1015. return (READ_BIT(EXTI->FTSR2, ExtiLine) == (ExtiLine));
  1016. }
  1017. #endif
  1018. /**
  1019. * @}
  1020. */
  1021. /** @defgroup EXTI_LL_EF_Software_Interrupt_Management Software_Interrupt_Management
  1022. * @{
  1023. */
  1024. /**
  1025. * @brief Generate a software Interrupt Event for Lines in range 0 to 31
  1026. * @note If the interrupt is enabled on this line in the EXTI_IMR, writing a 1 to
  1027. * this bit when it is at '0' sets the corresponding pending bit in EXTI_PR
  1028. * resulting in an interrupt request generation.
  1029. * This bit is cleared by clearing the corresponding bit in the EXTI_PR
  1030. * register (by writing a 1 into the bit)
  1031. * @rmtoll SWIER SWIx LL_EXTI_GenerateSWI_0_31
  1032. * @param ExtiLine This parameter can be a combination of the following values:
  1033. * @arg @ref LL_EXTI_LINE_0
  1034. * @arg @ref LL_EXTI_LINE_1
  1035. * @arg @ref LL_EXTI_LINE_2
  1036. * @arg @ref LL_EXTI_LINE_3
  1037. * @arg @ref LL_EXTI_LINE_4
  1038. * @arg @ref LL_EXTI_LINE_5
  1039. * @arg @ref LL_EXTI_LINE_6
  1040. * @arg @ref LL_EXTI_LINE_7
  1041. * @arg @ref LL_EXTI_LINE_8
  1042. * @arg @ref LL_EXTI_LINE_9
  1043. * @arg @ref LL_EXTI_LINE_10
  1044. * @arg @ref LL_EXTI_LINE_11
  1045. * @arg @ref LL_EXTI_LINE_12
  1046. * @arg @ref LL_EXTI_LINE_13
  1047. * @arg @ref LL_EXTI_LINE_14
  1048. * @arg @ref LL_EXTI_LINE_15
  1049. * @arg @ref LL_EXTI_LINE_16
  1050. * @arg @ref LL_EXTI_LINE_18
  1051. * @arg @ref LL_EXTI_LINE_19
  1052. * @arg @ref LL_EXTI_LINE_20
  1053. * @arg @ref LL_EXTI_LINE_21
  1054. * @arg @ref LL_EXTI_LINE_22
  1055. * @arg @ref LL_EXTI_LINE_29
  1056. * @arg @ref LL_EXTI_LINE_30
  1057. * @arg @ref LL_EXTI_LINE_31
  1058. * @note Please check each device line mapping for EXTI Line availability
  1059. * @retval None
  1060. */
  1061. __STATIC_INLINE void LL_EXTI_GenerateSWI_0_31(uint32_t ExtiLine)
  1062. {
  1063. SET_BIT(EXTI->SWIER, ExtiLine);
  1064. }
  1065. #if defined(EXTI_32_63_SUPPORT)
  1066. /**
  1067. * @brief Generate a software Interrupt Event for Lines in range 32 to 63
  1068. * @note If the interrupt is enabled on this line in the EXTI_IMR2, writing a 1 to
  1069. * this bit when it is at '0' sets the corresponding pending bit in EXTI_PR2
  1070. * resulting in an interrupt request generation.
  1071. * This bit is cleared by clearing the corresponding bit in the EXTI_PR2
  1072. * register (by writing a 1 into the bit)
  1073. * @rmtoll SWIER2 SWIx LL_EXTI_GenerateSWI_32_63
  1074. * @param ExtiLine This parameter can be a combination of the following values:
  1075. * @arg @ref LL_EXTI_LINE_35
  1076. * @arg @ref LL_EXTI_LINE_36
  1077. * @arg @ref LL_EXTI_LINE_37
  1078. * @arg @ref LL_EXTI_LINE_38
  1079. * @retval None
  1080. */
  1081. __STATIC_INLINE void LL_EXTI_GenerateSWI_32_63(uint32_t ExtiLine)
  1082. {
  1083. SET_BIT(EXTI->SWIER2, ExtiLine);
  1084. }
  1085. #endif
  1086. /**
  1087. * @}
  1088. */
  1089. /** @defgroup EXTI_LL_EF_Flag_Management Flag_Management
  1090. * @{
  1091. */
  1092. /**
  1093. * @brief Check if the ExtLine Flag is set or not for Lines in range 0 to 31
  1094. * @note This bit is set when the selected edge event arrives on the interrupt
  1095. * line. This bit is cleared by writing a 1 to the bit.
  1096. * @rmtoll PR PIFx LL_EXTI_IsActiveFlag_0_31
  1097. * @param ExtiLine This parameter can be a combination of the following values:
  1098. * @arg @ref LL_EXTI_LINE_0
  1099. * @arg @ref LL_EXTI_LINE_1
  1100. * @arg @ref LL_EXTI_LINE_2
  1101. * @arg @ref LL_EXTI_LINE_3
  1102. * @arg @ref LL_EXTI_LINE_4
  1103. * @arg @ref LL_EXTI_LINE_5
  1104. * @arg @ref LL_EXTI_LINE_6
  1105. * @arg @ref LL_EXTI_LINE_7
  1106. * @arg @ref LL_EXTI_LINE_8
  1107. * @arg @ref LL_EXTI_LINE_9
  1108. * @arg @ref LL_EXTI_LINE_10
  1109. * @arg @ref LL_EXTI_LINE_11
  1110. * @arg @ref LL_EXTI_LINE_12
  1111. * @arg @ref LL_EXTI_LINE_13
  1112. * @arg @ref LL_EXTI_LINE_14
  1113. * @arg @ref LL_EXTI_LINE_15
  1114. * @arg @ref LL_EXTI_LINE_16
  1115. * @arg @ref LL_EXTI_LINE_18
  1116. * @arg @ref LL_EXTI_LINE_19
  1117. * @arg @ref LL_EXTI_LINE_20
  1118. * @arg @ref LL_EXTI_LINE_21
  1119. * @arg @ref LL_EXTI_LINE_22
  1120. * @arg @ref LL_EXTI_LINE_29
  1121. * @arg @ref LL_EXTI_LINE_30
  1122. * @arg @ref LL_EXTI_LINE_31
  1123. * @note Please check each device line mapping for EXTI Line availability
  1124. * @retval State of bit (1 or 0).
  1125. */
  1126. __STATIC_INLINE uint32_t LL_EXTI_IsActiveFlag_0_31(uint32_t ExtiLine)
  1127. {
  1128. return (READ_BIT(EXTI->PR, ExtiLine) == (ExtiLine));
  1129. }
  1130. #if defined(EXTI_32_63_SUPPORT)
  1131. /**
  1132. * @brief Check if the ExtLine Flag is set or not for Lines in range 32 to 63
  1133. * @note This bit is set when the selected edge event arrives on the interrupt
  1134. * line. This bit is cleared by writing a 1 to the bit.
  1135. * @rmtoll PR2 PIFx LL_EXTI_IsActiveFlag_32_63
  1136. * @param ExtiLine This parameter can be a combination of the following values:
  1137. * @arg @ref LL_EXTI_LINE_35
  1138. * @arg @ref LL_EXTI_LINE_36
  1139. * @arg @ref LL_EXTI_LINE_37
  1140. * @arg @ref LL_EXTI_LINE_38
  1141. * @retval State of bit (1 or 0).
  1142. */
  1143. __STATIC_INLINE uint32_t LL_EXTI_IsActiveFlag_32_63(uint32_t ExtiLine)
  1144. {
  1145. return (READ_BIT(EXTI->PR2, ExtiLine) == (ExtiLine));
  1146. }
  1147. #endif
  1148. /**
  1149. * @brief Read ExtLine Combination Flag for Lines in range 0 to 31
  1150. * @note This bit is set when the selected edge event arrives on the interrupt
  1151. * line. This bit is cleared by writing a 1 to the bit.
  1152. * @rmtoll PR PIFx LL_EXTI_ReadFlag_0_31
  1153. * @param ExtiLine This parameter can be a combination of the following values:
  1154. * @arg @ref LL_EXTI_LINE_0
  1155. * @arg @ref LL_EXTI_LINE_1
  1156. * @arg @ref LL_EXTI_LINE_2
  1157. * @arg @ref LL_EXTI_LINE_3
  1158. * @arg @ref LL_EXTI_LINE_4
  1159. * @arg @ref LL_EXTI_LINE_5
  1160. * @arg @ref LL_EXTI_LINE_6
  1161. * @arg @ref LL_EXTI_LINE_7
  1162. * @arg @ref LL_EXTI_LINE_8
  1163. * @arg @ref LL_EXTI_LINE_9
  1164. * @arg @ref LL_EXTI_LINE_10
  1165. * @arg @ref LL_EXTI_LINE_11
  1166. * @arg @ref LL_EXTI_LINE_12
  1167. * @arg @ref LL_EXTI_LINE_13
  1168. * @arg @ref LL_EXTI_LINE_14
  1169. * @arg @ref LL_EXTI_LINE_15
  1170. * @arg @ref LL_EXTI_LINE_16
  1171. * @arg @ref LL_EXTI_LINE_18
  1172. * @arg @ref LL_EXTI_LINE_19
  1173. * @arg @ref LL_EXTI_LINE_20
  1174. * @arg @ref LL_EXTI_LINE_21
  1175. * @arg @ref LL_EXTI_LINE_22
  1176. * @arg @ref LL_EXTI_LINE_29
  1177. * @arg @ref LL_EXTI_LINE_30
  1178. * @arg @ref LL_EXTI_LINE_31
  1179. * @note Please check each device line mapping for EXTI Line availability
  1180. * @retval @note This bit is set when the selected edge event arrives on the interrupt
  1181. */
  1182. __STATIC_INLINE uint32_t LL_EXTI_ReadFlag_0_31(uint32_t ExtiLine)
  1183. {
  1184. return (uint32_t)(READ_BIT(EXTI->PR, ExtiLine));
  1185. }
  1186. #if defined(EXTI_32_63_SUPPORT)
  1187. /**
  1188. * @brief Read ExtLine Combination Flag for Lines in range 32 to 63
  1189. * @note This bit is set when the selected edge event arrives on the interrupt
  1190. * line. This bit is cleared by writing a 1 to the bit.
  1191. * @rmtoll PR2 PIFx LL_EXTI_ReadFlag_32_63
  1192. * @param ExtiLine This parameter can be a combination of the following values:
  1193. * @arg @ref LL_EXTI_LINE_35
  1194. * @arg @ref LL_EXTI_LINE_36
  1195. * @arg @ref LL_EXTI_LINE_37
  1196. * @arg @ref LL_EXTI_LINE_38
  1197. * @retval @note This bit is set when the selected edge event arrives on the interrupt
  1198. */
  1199. __STATIC_INLINE uint32_t LL_EXTI_ReadFlag_32_63(uint32_t ExtiLine)
  1200. {
  1201. return (uint32_t)(READ_BIT(EXTI->PR2, ExtiLine));
  1202. }
  1203. #endif
  1204. /**
  1205. * @brief Clear ExtLine Flags for Lines in range 0 to 31
  1206. * @note This bit is set when the selected edge event arrives on the interrupt
  1207. * line. This bit is cleared by writing a 1 to the bit.
  1208. * @rmtoll PR PIFx LL_EXTI_ClearFlag_0_31
  1209. * @param ExtiLine This parameter can be a combination of the following values:
  1210. * @arg @ref LL_EXTI_LINE_0
  1211. * @arg @ref LL_EXTI_LINE_1
  1212. * @arg @ref LL_EXTI_LINE_2
  1213. * @arg @ref LL_EXTI_LINE_3
  1214. * @arg @ref LL_EXTI_LINE_4
  1215. * @arg @ref LL_EXTI_LINE_5
  1216. * @arg @ref LL_EXTI_LINE_6
  1217. * @arg @ref LL_EXTI_LINE_7
  1218. * @arg @ref LL_EXTI_LINE_8
  1219. * @arg @ref LL_EXTI_LINE_9
  1220. * @arg @ref LL_EXTI_LINE_10
  1221. * @arg @ref LL_EXTI_LINE_11
  1222. * @arg @ref LL_EXTI_LINE_12
  1223. * @arg @ref LL_EXTI_LINE_13
  1224. * @arg @ref LL_EXTI_LINE_14
  1225. * @arg @ref LL_EXTI_LINE_15
  1226. * @arg @ref LL_EXTI_LINE_16
  1227. * @arg @ref LL_EXTI_LINE_18
  1228. * @arg @ref LL_EXTI_LINE_19
  1229. * @arg @ref LL_EXTI_LINE_20
  1230. * @arg @ref LL_EXTI_LINE_21
  1231. * @arg @ref LL_EXTI_LINE_22
  1232. * @arg @ref LL_EXTI_LINE_29
  1233. * @arg @ref LL_EXTI_LINE_30
  1234. * @arg @ref LL_EXTI_LINE_31
  1235. * @note Please check each device line mapping for EXTI Line availability
  1236. * @retval None
  1237. */
  1238. __STATIC_INLINE void LL_EXTI_ClearFlag_0_31(uint32_t ExtiLine)
  1239. {
  1240. WRITE_REG(EXTI->PR, ExtiLine);
  1241. }
  1242. #if defined(EXTI_32_63_SUPPORT)
  1243. /**
  1244. * @brief Clear ExtLine Flags for Lines in range 32 to 63
  1245. * @note This bit is set when the selected edge event arrives on the interrupt
  1246. * line. This bit is cleared by writing a 1 to the bit.
  1247. * @rmtoll PR2 PIFx LL_EXTI_ClearFlag_32_63
  1248. * @param ExtiLine This parameter can be a combination of the following values:
  1249. * @arg @ref LL_EXTI_LINE_35
  1250. * @arg @ref LL_EXTI_LINE_36
  1251. * @arg @ref LL_EXTI_LINE_37
  1252. * @arg @ref LL_EXTI_LINE_38
  1253. * @retval None
  1254. */
  1255. __STATIC_INLINE void LL_EXTI_ClearFlag_32_63(uint32_t ExtiLine)
  1256. {
  1257. WRITE_REG(EXTI->PR2, ExtiLine);
  1258. }
  1259. #endif
  1260. /**
  1261. * @}
  1262. */
  1263. #if defined(USE_FULL_LL_DRIVER)
  1264. /** @defgroup EXTI_LL_EF_Init Initialization and de-initialization functions
  1265. * @{
  1266. */
  1267. uint32_t LL_EXTI_Init(LL_EXTI_InitTypeDef *EXTI_InitStruct);
  1268. uint32_t LL_EXTI_DeInit(void);
  1269. void LL_EXTI_StructInit(LL_EXTI_InitTypeDef *EXTI_InitStruct);
  1270. /**
  1271. * @}
  1272. */
  1273. #endif /* USE_FULL_LL_DRIVER */
  1274. /**
  1275. * @}
  1276. */
  1277. /**
  1278. * @}
  1279. */
  1280. #endif /* EXTI */
  1281. /**
  1282. * @}
  1283. */
  1284. #ifdef __cplusplus
  1285. }
  1286. #endif
  1287. #endif /* __STM32F3xx_LL_EXTI_H */