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.

stm32l1xx_ll_exti.h 35KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016
  1. /**
  2. ******************************************************************************
  3. * @file stm32l1xx_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) 2017 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 __STM32L1xx_LL_EXTI_H
  21. #define __STM32L1xx_LL_EXTI_H
  22. #ifdef __cplusplus
  23. extern "C" {
  24. #endif
  25. /* Includes ------------------------------------------------------------------*/
  26. #include "stm32l1xx.h"
  27. /** @addtogroup STM32L1xx_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. FunctionalState LineCommand; /*!< Specifies the new state of the selected EXTI lines.
  56. This parameter can be set either to ENABLE or DISABLE */
  57. uint8_t Mode; /*!< Specifies the mode for the EXTI lines.
  58. This parameter can be a value of @ref EXTI_LL_EC_MODE. */
  59. uint8_t Trigger; /*!< Specifies the trigger signal active edge for the EXTI lines.
  60. This parameter can be a value of @ref EXTI_LL_EC_TRIGGER. */
  61. } LL_EXTI_InitTypeDef;
  62. /**
  63. * @}
  64. */
  65. #endif /*USE_FULL_LL_DRIVER*/
  66. /* Exported constants --------------------------------------------------------*/
  67. /** @defgroup EXTI_LL_Exported_Constants EXTI Exported Constants
  68. * @{
  69. */
  70. /** @defgroup EXTI_LL_EC_LINE LINE
  71. * @{
  72. */
  73. #define LL_EXTI_LINE_0 EXTI_IMR_IM0 /*!< Extended line 0 */
  74. #define LL_EXTI_LINE_1 EXTI_IMR_IM1 /*!< Extended line 1 */
  75. #define LL_EXTI_LINE_2 EXTI_IMR_IM2 /*!< Extended line 2 */
  76. #define LL_EXTI_LINE_3 EXTI_IMR_IM3 /*!< Extended line 3 */
  77. #define LL_EXTI_LINE_4 EXTI_IMR_IM4 /*!< Extended line 4 */
  78. #define LL_EXTI_LINE_5 EXTI_IMR_IM5 /*!< Extended line 5 */
  79. #define LL_EXTI_LINE_6 EXTI_IMR_IM6 /*!< Extended line 6 */
  80. #define LL_EXTI_LINE_7 EXTI_IMR_IM7 /*!< Extended line 7 */
  81. #define LL_EXTI_LINE_8 EXTI_IMR_IM8 /*!< Extended line 8 */
  82. #define LL_EXTI_LINE_9 EXTI_IMR_IM9 /*!< Extended line 9 */
  83. #define LL_EXTI_LINE_10 EXTI_IMR_IM10 /*!< Extended line 10 */
  84. #define LL_EXTI_LINE_11 EXTI_IMR_IM11 /*!< Extended line 11 */
  85. #define LL_EXTI_LINE_12 EXTI_IMR_IM12 /*!< Extended line 12 */
  86. #define LL_EXTI_LINE_13 EXTI_IMR_IM13 /*!< Extended line 13 */
  87. #define LL_EXTI_LINE_14 EXTI_IMR_IM14 /*!< Extended line 14 */
  88. #define LL_EXTI_LINE_15 EXTI_IMR_IM15 /*!< Extended line 15 */
  89. #if defined(EXTI_IMR_IM16)
  90. #define LL_EXTI_LINE_16 EXTI_IMR_IM16 /*!< Extended line 16 */
  91. #endif
  92. #define LL_EXTI_LINE_17 EXTI_IMR_IM17 /*!< Extended line 17 */
  93. #if defined(EXTI_IMR_IM18)
  94. #define LL_EXTI_LINE_18 EXTI_IMR_IM18 /*!< Extended line 18 */
  95. #endif
  96. #define LL_EXTI_LINE_19 EXTI_IMR_IM19 /*!< Extended line 19 */
  97. #if defined(EXTI_IMR_IM20)
  98. #define LL_EXTI_LINE_20 EXTI_IMR_IM20 /*!< Extended line 20 */
  99. #endif
  100. #if defined(EXTI_IMR_IM21)
  101. #define LL_EXTI_LINE_21 EXTI_IMR_IM21 /*!< Extended line 21 */
  102. #endif
  103. #if defined(EXTI_IMR_IM22)
  104. #define LL_EXTI_LINE_22 EXTI_IMR_IM22 /*!< Extended line 22 */
  105. #endif
  106. #define LL_EXTI_LINE_23 EXTI_IMR_IM23 /*!< Extended line 23 */
  107. #if defined(EXTI_IMR_IM24)
  108. #define LL_EXTI_LINE_24 EXTI_IMR_IM24 /*!< Extended line 24 */
  109. #endif
  110. #if defined(EXTI_IMR_IM25)
  111. #define LL_EXTI_LINE_25 EXTI_IMR_IM25 /*!< Extended line 25 */
  112. #endif
  113. #if defined(EXTI_IMR_IM26)
  114. #define LL_EXTI_LINE_26 EXTI_IMR_IM26 /*!< Extended line 26 */
  115. #endif
  116. #if defined(EXTI_IMR_IM27)
  117. #define LL_EXTI_LINE_27 EXTI_IMR_IM27 /*!< Extended line 27 */
  118. #endif
  119. #if defined(EXTI_IMR_IM28)
  120. #define LL_EXTI_LINE_28 EXTI_IMR_IM28 /*!< Extended line 28 */
  121. #endif
  122. #if defined(EXTI_IMR_IM29)
  123. #define LL_EXTI_LINE_29 EXTI_IMR_IM29 /*!< Extended line 29 */
  124. #endif
  125. #if defined(EXTI_IMR_IM30)
  126. #define LL_EXTI_LINE_30 EXTI_IMR_IM30 /*!< Extended line 30 */
  127. #endif
  128. #if defined(EXTI_IMR_IM31)
  129. #define LL_EXTI_LINE_31 EXTI_IMR_IM31 /*!< Extended line 31 */
  130. #endif
  131. #define LL_EXTI_LINE_ALL_0_31 EXTI_IMR_IM /*!< All Extended line not reserved*/
  132. #define LL_EXTI_LINE_ALL (0xFFFFFFFFU) /*!< All Extended line */
  133. #if defined(USE_FULL_LL_DRIVER)
  134. #define LL_EXTI_LINE_NONE (0x00000000U) /*!< None Extended line */
  135. #endif /*USE_FULL_LL_DRIVER*/
  136. /**
  137. * @}
  138. */
  139. #if defined(USE_FULL_LL_DRIVER)
  140. /** @defgroup EXTI_LL_EC_MODE Mode
  141. * @{
  142. */
  143. #define LL_EXTI_MODE_IT ((uint8_t)0x00U) /*!< Interrupt Mode */
  144. #define LL_EXTI_MODE_EVENT ((uint8_t)0x01U) /*!< Event Mode */
  145. #define LL_EXTI_MODE_IT_EVENT ((uint8_t)0x02U) /*!< Interrupt & Event Mode */
  146. /**
  147. * @}
  148. */
  149. /** @defgroup EXTI_LL_EC_TRIGGER Edge Trigger
  150. * @{
  151. */
  152. #define LL_EXTI_TRIGGER_NONE ((uint8_t)0x00U) /*!< No Trigger Mode */
  153. #define LL_EXTI_TRIGGER_RISING ((uint8_t)0x01U) /*!< Trigger Rising Mode */
  154. #define LL_EXTI_TRIGGER_FALLING ((uint8_t)0x02U) /*!< Trigger Falling Mode */
  155. #define LL_EXTI_TRIGGER_RISING_FALLING ((uint8_t)0x03U) /*!< Trigger Rising & Falling Mode */
  156. /**
  157. * @}
  158. */
  159. #endif /*USE_FULL_LL_DRIVER*/
  160. /**
  161. * @}
  162. */
  163. /* Exported macro ------------------------------------------------------------*/
  164. /** @defgroup EXTI_LL_Exported_Macros EXTI Exported Macros
  165. * @{
  166. */
  167. /** @defgroup EXTI_LL_EM_WRITE_READ Common Write and read registers Macros
  168. * @{
  169. */
  170. /**
  171. * @brief Write a value in EXTI register
  172. * @param __REG__ Register to be written
  173. * @param __VALUE__ Value to be written in the register
  174. * @retval None
  175. */
  176. #define LL_EXTI_WriteReg(__REG__, __VALUE__) WRITE_REG(EXTI->__REG__, (__VALUE__))
  177. /**
  178. * @brief Read a value in EXTI register
  179. * @param __REG__ Register to be read
  180. * @retval Register value
  181. */
  182. #define LL_EXTI_ReadReg(__REG__) READ_REG(EXTI->__REG__)
  183. /**
  184. * @}
  185. */
  186. /**
  187. * @}
  188. */
  189. /* Exported functions --------------------------------------------------------*/
  190. /** @defgroup EXTI_LL_Exported_Functions EXTI Exported Functions
  191. * @{
  192. */
  193. /** @defgroup EXTI_LL_EF_IT_Management IT_Management
  194. * @{
  195. */
  196. /**
  197. * @brief Enable ExtiLine Interrupt request for Lines in range 0 to 31
  198. * @note The reset value for the direct or internal lines (see RM)
  199. * is set to 1 in order to enable the interrupt by default.
  200. * Bits are set automatically at Power on.
  201. * @rmtoll IMR IMx LL_EXTI_EnableIT_0_31
  202. * @param ExtiLine This parameter can be one of the following values:
  203. * @arg @ref LL_EXTI_LINE_0
  204. * @arg @ref LL_EXTI_LINE_1
  205. * @arg @ref LL_EXTI_LINE_2
  206. * @arg @ref LL_EXTI_LINE_3
  207. * @arg @ref LL_EXTI_LINE_4
  208. * @arg @ref LL_EXTI_LINE_5
  209. * @arg @ref LL_EXTI_LINE_6
  210. * @arg @ref LL_EXTI_LINE_7
  211. * @arg @ref LL_EXTI_LINE_8
  212. * @arg @ref LL_EXTI_LINE_9
  213. * @arg @ref LL_EXTI_LINE_10
  214. * @arg @ref LL_EXTI_LINE_11
  215. * @arg @ref LL_EXTI_LINE_12
  216. * @arg @ref LL_EXTI_LINE_13
  217. * @arg @ref LL_EXTI_LINE_14
  218. * @arg @ref LL_EXTI_LINE_15
  219. * @arg @ref LL_EXTI_LINE_16
  220. * @arg @ref LL_EXTI_LINE_17
  221. * @arg @ref LL_EXTI_LINE_18
  222. * @arg @ref LL_EXTI_LINE_19
  223. * @arg @ref LL_EXTI_LINE_20
  224. * @arg @ref LL_EXTI_LINE_21
  225. * @arg @ref LL_EXTI_LINE_22
  226. * @arg @ref LL_EXTI_LINE_23
  227. * @arg @ref LL_EXTI_LINE_24
  228. * @arg @ref LL_EXTI_LINE_25
  229. * @arg @ref LL_EXTI_LINE_26
  230. * @arg @ref LL_EXTI_LINE_27
  231. * @arg @ref LL_EXTI_LINE_28
  232. * @arg @ref LL_EXTI_LINE_29
  233. * @arg @ref LL_EXTI_LINE_30
  234. * @arg @ref LL_EXTI_LINE_31
  235. * @arg @ref LL_EXTI_LINE_ALL_0_31
  236. * @note Please check each device line mapping for EXTI Line availability
  237. * @retval None
  238. */
  239. __STATIC_INLINE void LL_EXTI_EnableIT_0_31(uint32_t ExtiLine)
  240. {
  241. SET_BIT(EXTI->IMR, ExtiLine);
  242. }
  243. /**
  244. * @brief Disable ExtiLine Interrupt request for Lines in range 0 to 31
  245. * @note The reset value for the direct or internal lines (see RM)
  246. * is set to 1 in order to enable the interrupt by default.
  247. * Bits are set automatically at Power on.
  248. * @rmtoll IMR IMx LL_EXTI_DisableIT_0_31
  249. * @param ExtiLine This parameter can be one of the following values:
  250. * @arg @ref LL_EXTI_LINE_0
  251. * @arg @ref LL_EXTI_LINE_1
  252. * @arg @ref LL_EXTI_LINE_2
  253. * @arg @ref LL_EXTI_LINE_3
  254. * @arg @ref LL_EXTI_LINE_4
  255. * @arg @ref LL_EXTI_LINE_5
  256. * @arg @ref LL_EXTI_LINE_6
  257. * @arg @ref LL_EXTI_LINE_7
  258. * @arg @ref LL_EXTI_LINE_8
  259. * @arg @ref LL_EXTI_LINE_9
  260. * @arg @ref LL_EXTI_LINE_10
  261. * @arg @ref LL_EXTI_LINE_11
  262. * @arg @ref LL_EXTI_LINE_12
  263. * @arg @ref LL_EXTI_LINE_13
  264. * @arg @ref LL_EXTI_LINE_14
  265. * @arg @ref LL_EXTI_LINE_15
  266. * @arg @ref LL_EXTI_LINE_16
  267. * @arg @ref LL_EXTI_LINE_17
  268. * @arg @ref LL_EXTI_LINE_18
  269. * @arg @ref LL_EXTI_LINE_19
  270. * @arg @ref LL_EXTI_LINE_20
  271. * @arg @ref LL_EXTI_LINE_21
  272. * @arg @ref LL_EXTI_LINE_22
  273. * @arg @ref LL_EXTI_LINE_23
  274. * @arg @ref LL_EXTI_LINE_24
  275. * @arg @ref LL_EXTI_LINE_25
  276. * @arg @ref LL_EXTI_LINE_26
  277. * @arg @ref LL_EXTI_LINE_27
  278. * @arg @ref LL_EXTI_LINE_28
  279. * @arg @ref LL_EXTI_LINE_29
  280. * @arg @ref LL_EXTI_LINE_30
  281. * @arg @ref LL_EXTI_LINE_31
  282. * @arg @ref LL_EXTI_LINE_ALL_0_31
  283. * @note Please check each device line mapping for EXTI Line availability
  284. * @retval None
  285. */
  286. __STATIC_INLINE void LL_EXTI_DisableIT_0_31(uint32_t ExtiLine)
  287. {
  288. CLEAR_BIT(EXTI->IMR, ExtiLine);
  289. }
  290. /**
  291. * @brief Indicate if ExtiLine Interrupt request is enabled for Lines in range 0 to 31
  292. * @note The reset value for the direct or internal lines (see RM)
  293. * is set to 1 in order to enable the interrupt by default.
  294. * Bits are set automatically at Power on.
  295. * @rmtoll IMR IMx LL_EXTI_IsEnabledIT_0_31
  296. * @param ExtiLine This parameter can be one of the following values:
  297. * @arg @ref LL_EXTI_LINE_0
  298. * @arg @ref LL_EXTI_LINE_1
  299. * @arg @ref LL_EXTI_LINE_2
  300. * @arg @ref LL_EXTI_LINE_3
  301. * @arg @ref LL_EXTI_LINE_4
  302. * @arg @ref LL_EXTI_LINE_5
  303. * @arg @ref LL_EXTI_LINE_6
  304. * @arg @ref LL_EXTI_LINE_7
  305. * @arg @ref LL_EXTI_LINE_8
  306. * @arg @ref LL_EXTI_LINE_9
  307. * @arg @ref LL_EXTI_LINE_10
  308. * @arg @ref LL_EXTI_LINE_11
  309. * @arg @ref LL_EXTI_LINE_12
  310. * @arg @ref LL_EXTI_LINE_13
  311. * @arg @ref LL_EXTI_LINE_14
  312. * @arg @ref LL_EXTI_LINE_15
  313. * @arg @ref LL_EXTI_LINE_16
  314. * @arg @ref LL_EXTI_LINE_17
  315. * @arg @ref LL_EXTI_LINE_18
  316. * @arg @ref LL_EXTI_LINE_19
  317. * @arg @ref LL_EXTI_LINE_20
  318. * @arg @ref LL_EXTI_LINE_21
  319. * @arg @ref LL_EXTI_LINE_22
  320. * @arg @ref LL_EXTI_LINE_23
  321. * @arg @ref LL_EXTI_LINE_24
  322. * @arg @ref LL_EXTI_LINE_25
  323. * @arg @ref LL_EXTI_LINE_26
  324. * @arg @ref LL_EXTI_LINE_27
  325. * @arg @ref LL_EXTI_LINE_28
  326. * @arg @ref LL_EXTI_LINE_29
  327. * @arg @ref LL_EXTI_LINE_30
  328. * @arg @ref LL_EXTI_LINE_31
  329. * @arg @ref LL_EXTI_LINE_ALL_0_31
  330. * @note Please check each device line mapping for EXTI Line availability
  331. * @retval State of bit (1 or 0).
  332. */
  333. __STATIC_INLINE uint32_t LL_EXTI_IsEnabledIT_0_31(uint32_t ExtiLine)
  334. {
  335. return (READ_BIT(EXTI->IMR, ExtiLine) == (ExtiLine));
  336. }
  337. /**
  338. * @}
  339. */
  340. /** @defgroup EXTI_LL_EF_Event_Management Event_Management
  341. * @{
  342. */
  343. /**
  344. * @brief Enable ExtiLine Event request for Lines in range 0 to 31
  345. * @rmtoll EMR EMx LL_EXTI_EnableEvent_0_31
  346. * @param ExtiLine This parameter can be one of the following values:
  347. * @arg @ref LL_EXTI_LINE_0
  348. * @arg @ref LL_EXTI_LINE_1
  349. * @arg @ref LL_EXTI_LINE_2
  350. * @arg @ref LL_EXTI_LINE_3
  351. * @arg @ref LL_EXTI_LINE_4
  352. * @arg @ref LL_EXTI_LINE_5
  353. * @arg @ref LL_EXTI_LINE_6
  354. * @arg @ref LL_EXTI_LINE_7
  355. * @arg @ref LL_EXTI_LINE_8
  356. * @arg @ref LL_EXTI_LINE_9
  357. * @arg @ref LL_EXTI_LINE_10
  358. * @arg @ref LL_EXTI_LINE_11
  359. * @arg @ref LL_EXTI_LINE_12
  360. * @arg @ref LL_EXTI_LINE_13
  361. * @arg @ref LL_EXTI_LINE_14
  362. * @arg @ref LL_EXTI_LINE_15
  363. * @arg @ref LL_EXTI_LINE_16
  364. * @arg @ref LL_EXTI_LINE_17
  365. * @arg @ref LL_EXTI_LINE_18
  366. * @arg @ref LL_EXTI_LINE_19
  367. * @arg @ref LL_EXTI_LINE_20
  368. * @arg @ref LL_EXTI_LINE_21
  369. * @arg @ref LL_EXTI_LINE_22
  370. * @arg @ref LL_EXTI_LINE_23
  371. * @arg @ref LL_EXTI_LINE_24
  372. * @arg @ref LL_EXTI_LINE_25
  373. * @arg @ref LL_EXTI_LINE_26
  374. * @arg @ref LL_EXTI_LINE_27
  375. * @arg @ref LL_EXTI_LINE_28
  376. * @arg @ref LL_EXTI_LINE_29
  377. * @arg @ref LL_EXTI_LINE_30
  378. * @arg @ref LL_EXTI_LINE_31
  379. * @arg @ref LL_EXTI_LINE_ALL_0_31
  380. * @note Please check each device line mapping for EXTI Line availability
  381. * @retval None
  382. */
  383. __STATIC_INLINE void LL_EXTI_EnableEvent_0_31(uint32_t ExtiLine)
  384. {
  385. SET_BIT(EXTI->EMR, ExtiLine);
  386. }
  387. /**
  388. * @brief Disable ExtiLine Event request for Lines in range 0 to 31
  389. * @rmtoll EMR EMx LL_EXTI_DisableEvent_0_31
  390. * @param ExtiLine This parameter can be one of the following values:
  391. * @arg @ref LL_EXTI_LINE_0
  392. * @arg @ref LL_EXTI_LINE_1
  393. * @arg @ref LL_EXTI_LINE_2
  394. * @arg @ref LL_EXTI_LINE_3
  395. * @arg @ref LL_EXTI_LINE_4
  396. * @arg @ref LL_EXTI_LINE_5
  397. * @arg @ref LL_EXTI_LINE_6
  398. * @arg @ref LL_EXTI_LINE_7
  399. * @arg @ref LL_EXTI_LINE_8
  400. * @arg @ref LL_EXTI_LINE_9
  401. * @arg @ref LL_EXTI_LINE_10
  402. * @arg @ref LL_EXTI_LINE_11
  403. * @arg @ref LL_EXTI_LINE_12
  404. * @arg @ref LL_EXTI_LINE_13
  405. * @arg @ref LL_EXTI_LINE_14
  406. * @arg @ref LL_EXTI_LINE_15
  407. * @arg @ref LL_EXTI_LINE_16
  408. * @arg @ref LL_EXTI_LINE_17
  409. * @arg @ref LL_EXTI_LINE_18
  410. * @arg @ref LL_EXTI_LINE_19
  411. * @arg @ref LL_EXTI_LINE_20
  412. * @arg @ref LL_EXTI_LINE_21
  413. * @arg @ref LL_EXTI_LINE_22
  414. * @arg @ref LL_EXTI_LINE_23
  415. * @arg @ref LL_EXTI_LINE_24
  416. * @arg @ref LL_EXTI_LINE_25
  417. * @arg @ref LL_EXTI_LINE_26
  418. * @arg @ref LL_EXTI_LINE_27
  419. * @arg @ref LL_EXTI_LINE_28
  420. * @arg @ref LL_EXTI_LINE_29
  421. * @arg @ref LL_EXTI_LINE_30
  422. * @arg @ref LL_EXTI_LINE_31
  423. * @arg @ref LL_EXTI_LINE_ALL_0_31
  424. * @note Please check each device line mapping for EXTI Line availability
  425. * @retval None
  426. */
  427. __STATIC_INLINE void LL_EXTI_DisableEvent_0_31(uint32_t ExtiLine)
  428. {
  429. CLEAR_BIT(EXTI->EMR, ExtiLine);
  430. }
  431. /**
  432. * @brief Indicate if ExtiLine Event request is enabled for Lines in range 0 to 31
  433. * @rmtoll EMR EMx LL_EXTI_IsEnabledEvent_0_31
  434. * @param ExtiLine This parameter can be one of the following values:
  435. * @arg @ref LL_EXTI_LINE_0
  436. * @arg @ref LL_EXTI_LINE_1
  437. * @arg @ref LL_EXTI_LINE_2
  438. * @arg @ref LL_EXTI_LINE_3
  439. * @arg @ref LL_EXTI_LINE_4
  440. * @arg @ref LL_EXTI_LINE_5
  441. * @arg @ref LL_EXTI_LINE_6
  442. * @arg @ref LL_EXTI_LINE_7
  443. * @arg @ref LL_EXTI_LINE_8
  444. * @arg @ref LL_EXTI_LINE_9
  445. * @arg @ref LL_EXTI_LINE_10
  446. * @arg @ref LL_EXTI_LINE_11
  447. * @arg @ref LL_EXTI_LINE_12
  448. * @arg @ref LL_EXTI_LINE_13
  449. * @arg @ref LL_EXTI_LINE_14
  450. * @arg @ref LL_EXTI_LINE_15
  451. * @arg @ref LL_EXTI_LINE_16
  452. * @arg @ref LL_EXTI_LINE_17
  453. * @arg @ref LL_EXTI_LINE_18
  454. * @arg @ref LL_EXTI_LINE_19
  455. * @arg @ref LL_EXTI_LINE_20
  456. * @arg @ref LL_EXTI_LINE_21
  457. * @arg @ref LL_EXTI_LINE_22
  458. * @arg @ref LL_EXTI_LINE_23
  459. * @arg @ref LL_EXTI_LINE_24
  460. * @arg @ref LL_EXTI_LINE_25
  461. * @arg @ref LL_EXTI_LINE_26
  462. * @arg @ref LL_EXTI_LINE_27
  463. * @arg @ref LL_EXTI_LINE_28
  464. * @arg @ref LL_EXTI_LINE_29
  465. * @arg @ref LL_EXTI_LINE_30
  466. * @arg @ref LL_EXTI_LINE_31
  467. * @arg @ref LL_EXTI_LINE_ALL_0_31
  468. * @note Please check each device line mapping for EXTI Line availability
  469. * @retval State of bit (1 or 0).
  470. */
  471. __STATIC_INLINE uint32_t LL_EXTI_IsEnabledEvent_0_31(uint32_t ExtiLine)
  472. {
  473. return (READ_BIT(EXTI->EMR, ExtiLine) == (ExtiLine));
  474. }
  475. /**
  476. * @}
  477. */
  478. /** @defgroup EXTI_LL_EF_Rising_Trigger_Management Rising_Trigger_Management
  479. * @{
  480. */
  481. /**
  482. * @brief Enable ExtiLine Rising Edge Trigger for Lines in range 0 to 31
  483. * @note The configurable wakeup lines are edge-triggered. No glitch must be
  484. * generated on these lines. If a rising edge on a configurable interrupt
  485. * line occurs during a write operation in the EXTI_RTSR register, the
  486. * pending bit is not set.
  487. * Rising and falling edge triggers can be set for
  488. * the same interrupt line. In this case, both generate a trigger
  489. * condition.
  490. * @rmtoll RTSR RTx LL_EXTI_EnableRisingTrig_0_31
  491. * @param ExtiLine This parameter can be a combination of the following values:
  492. * @arg @ref LL_EXTI_LINE_0
  493. * @arg @ref LL_EXTI_LINE_1
  494. * @arg @ref LL_EXTI_LINE_2
  495. * @arg @ref LL_EXTI_LINE_3
  496. * @arg @ref LL_EXTI_LINE_4
  497. * @arg @ref LL_EXTI_LINE_5
  498. * @arg @ref LL_EXTI_LINE_6
  499. * @arg @ref LL_EXTI_LINE_7
  500. * @arg @ref LL_EXTI_LINE_8
  501. * @arg @ref LL_EXTI_LINE_9
  502. * @arg @ref LL_EXTI_LINE_10
  503. * @arg @ref LL_EXTI_LINE_11
  504. * @arg @ref LL_EXTI_LINE_12
  505. * @arg @ref LL_EXTI_LINE_13
  506. * @arg @ref LL_EXTI_LINE_14
  507. * @arg @ref LL_EXTI_LINE_15
  508. * @arg @ref LL_EXTI_LINE_16
  509. * @arg @ref LL_EXTI_LINE_18
  510. * @arg @ref LL_EXTI_LINE_19
  511. * @arg @ref LL_EXTI_LINE_20
  512. * @arg @ref LL_EXTI_LINE_21
  513. * @arg @ref LL_EXTI_LINE_22
  514. * @arg @ref LL_EXTI_LINE_29
  515. * @arg @ref LL_EXTI_LINE_30
  516. * @arg @ref LL_EXTI_LINE_31
  517. * @note Please check each device line mapping for EXTI Line availability
  518. * @retval None
  519. */
  520. __STATIC_INLINE void LL_EXTI_EnableRisingTrig_0_31(uint32_t ExtiLine)
  521. {
  522. SET_BIT(EXTI->RTSR, ExtiLine);
  523. }
  524. /**
  525. * @brief Disable ExtiLine Rising Edge Trigger for Lines in range 0 to 31
  526. * @note The configurable wakeup lines are edge-triggered. No glitch must be
  527. * generated on these lines. If a rising edge on a configurable interrupt
  528. * line occurs during a write operation in the EXTI_RTSR register, the
  529. * pending bit is not set.
  530. * Rising and falling edge triggers can be set for
  531. * the same interrupt line. In this case, both generate a trigger
  532. * condition.
  533. * @rmtoll RTSR RTx LL_EXTI_DisableRisingTrig_0_31
  534. * @param ExtiLine This parameter can be a combination of the following values:
  535. * @arg @ref LL_EXTI_LINE_0
  536. * @arg @ref LL_EXTI_LINE_1
  537. * @arg @ref LL_EXTI_LINE_2
  538. * @arg @ref LL_EXTI_LINE_3
  539. * @arg @ref LL_EXTI_LINE_4
  540. * @arg @ref LL_EXTI_LINE_5
  541. * @arg @ref LL_EXTI_LINE_6
  542. * @arg @ref LL_EXTI_LINE_7
  543. * @arg @ref LL_EXTI_LINE_8
  544. * @arg @ref LL_EXTI_LINE_9
  545. * @arg @ref LL_EXTI_LINE_10
  546. * @arg @ref LL_EXTI_LINE_11
  547. * @arg @ref LL_EXTI_LINE_12
  548. * @arg @ref LL_EXTI_LINE_13
  549. * @arg @ref LL_EXTI_LINE_14
  550. * @arg @ref LL_EXTI_LINE_15
  551. * @arg @ref LL_EXTI_LINE_16
  552. * @arg @ref LL_EXTI_LINE_18
  553. * @arg @ref LL_EXTI_LINE_19
  554. * @arg @ref LL_EXTI_LINE_20
  555. * @arg @ref LL_EXTI_LINE_21
  556. * @arg @ref LL_EXTI_LINE_22
  557. * @arg @ref LL_EXTI_LINE_29
  558. * @arg @ref LL_EXTI_LINE_30
  559. * @arg @ref LL_EXTI_LINE_31
  560. * @note Please check each device line mapping for EXTI Line availability
  561. * @retval None
  562. */
  563. __STATIC_INLINE void LL_EXTI_DisableRisingTrig_0_31(uint32_t ExtiLine)
  564. {
  565. CLEAR_BIT(EXTI->RTSR, ExtiLine);
  566. }
  567. /**
  568. * @brief Check if rising edge trigger is enabled for Lines in range 0 to 31
  569. * @rmtoll RTSR RTx LL_EXTI_IsEnabledRisingTrig_0_31
  570. * @param ExtiLine This parameter can be a combination of the following values:
  571. * @arg @ref LL_EXTI_LINE_0
  572. * @arg @ref LL_EXTI_LINE_1
  573. * @arg @ref LL_EXTI_LINE_2
  574. * @arg @ref LL_EXTI_LINE_3
  575. * @arg @ref LL_EXTI_LINE_4
  576. * @arg @ref LL_EXTI_LINE_5
  577. * @arg @ref LL_EXTI_LINE_6
  578. * @arg @ref LL_EXTI_LINE_7
  579. * @arg @ref LL_EXTI_LINE_8
  580. * @arg @ref LL_EXTI_LINE_9
  581. * @arg @ref LL_EXTI_LINE_10
  582. * @arg @ref LL_EXTI_LINE_11
  583. * @arg @ref LL_EXTI_LINE_12
  584. * @arg @ref LL_EXTI_LINE_13
  585. * @arg @ref LL_EXTI_LINE_14
  586. * @arg @ref LL_EXTI_LINE_15
  587. * @arg @ref LL_EXTI_LINE_16
  588. * @arg @ref LL_EXTI_LINE_18
  589. * @arg @ref LL_EXTI_LINE_19
  590. * @arg @ref LL_EXTI_LINE_20
  591. * @arg @ref LL_EXTI_LINE_21
  592. * @arg @ref LL_EXTI_LINE_22
  593. * @arg @ref LL_EXTI_LINE_29
  594. * @arg @ref LL_EXTI_LINE_30
  595. * @arg @ref LL_EXTI_LINE_31
  596. * @note Please check each device line mapping for EXTI Line availability
  597. * @retval State of bit (1 or 0).
  598. */
  599. __STATIC_INLINE uint32_t LL_EXTI_IsEnabledRisingTrig_0_31(uint32_t ExtiLine)
  600. {
  601. return (READ_BIT(EXTI->RTSR, ExtiLine) == (ExtiLine));
  602. }
  603. /**
  604. * @}
  605. */
  606. /** @defgroup EXTI_LL_EF_Falling_Trigger_Management Falling_Trigger_Management
  607. * @{
  608. */
  609. /**
  610. * @brief Enable ExtiLine Falling Edge Trigger for Lines in range 0 to 31
  611. * @note The configurable wakeup lines are edge-triggered. No glitch must be
  612. * generated on these lines. If a falling edge on a configurable interrupt
  613. * line occurs during a write operation in the EXTI_FTSR register, the
  614. * pending bit is not set.
  615. * Rising and falling edge triggers can be set for
  616. * the same interrupt line. In this case, both generate a trigger
  617. * condition.
  618. * @rmtoll FTSR FTx LL_EXTI_EnableFallingTrig_0_31
  619. * @param ExtiLine This parameter can be a combination of the following values:
  620. * @arg @ref LL_EXTI_LINE_0
  621. * @arg @ref LL_EXTI_LINE_1
  622. * @arg @ref LL_EXTI_LINE_2
  623. * @arg @ref LL_EXTI_LINE_3
  624. * @arg @ref LL_EXTI_LINE_4
  625. * @arg @ref LL_EXTI_LINE_5
  626. * @arg @ref LL_EXTI_LINE_6
  627. * @arg @ref LL_EXTI_LINE_7
  628. * @arg @ref LL_EXTI_LINE_8
  629. * @arg @ref LL_EXTI_LINE_9
  630. * @arg @ref LL_EXTI_LINE_10
  631. * @arg @ref LL_EXTI_LINE_11
  632. * @arg @ref LL_EXTI_LINE_12
  633. * @arg @ref LL_EXTI_LINE_13
  634. * @arg @ref LL_EXTI_LINE_14
  635. * @arg @ref LL_EXTI_LINE_15
  636. * @arg @ref LL_EXTI_LINE_16
  637. * @arg @ref LL_EXTI_LINE_18
  638. * @arg @ref LL_EXTI_LINE_19
  639. * @arg @ref LL_EXTI_LINE_20
  640. * @arg @ref LL_EXTI_LINE_21
  641. * @arg @ref LL_EXTI_LINE_22
  642. * @arg @ref LL_EXTI_LINE_29
  643. * @arg @ref LL_EXTI_LINE_30
  644. * @arg @ref LL_EXTI_LINE_31
  645. * @note Please check each device line mapping for EXTI Line availability
  646. * @retval None
  647. */
  648. __STATIC_INLINE void LL_EXTI_EnableFallingTrig_0_31(uint32_t ExtiLine)
  649. {
  650. SET_BIT(EXTI->FTSR, ExtiLine);
  651. }
  652. /**
  653. * @brief Disable ExtiLine Falling Edge Trigger for Lines in range 0 to 31
  654. * @note The configurable wakeup lines are edge-triggered. No glitch must be
  655. * generated on these lines. If a Falling edge on a configurable interrupt
  656. * line occurs during a write operation in the EXTI_FTSR register, the
  657. * pending bit is not set.
  658. * Rising and falling edge triggers can be set for the same interrupt line.
  659. * In this case, both generate a trigger condition.
  660. * @rmtoll FTSR FTx LL_EXTI_DisableFallingTrig_0_31
  661. * @param ExtiLine This parameter can be a combination of the following values:
  662. * @arg @ref LL_EXTI_LINE_0
  663. * @arg @ref LL_EXTI_LINE_1
  664. * @arg @ref LL_EXTI_LINE_2
  665. * @arg @ref LL_EXTI_LINE_3
  666. * @arg @ref LL_EXTI_LINE_4
  667. * @arg @ref LL_EXTI_LINE_5
  668. * @arg @ref LL_EXTI_LINE_6
  669. * @arg @ref LL_EXTI_LINE_7
  670. * @arg @ref LL_EXTI_LINE_8
  671. * @arg @ref LL_EXTI_LINE_9
  672. * @arg @ref LL_EXTI_LINE_10
  673. * @arg @ref LL_EXTI_LINE_11
  674. * @arg @ref LL_EXTI_LINE_12
  675. * @arg @ref LL_EXTI_LINE_13
  676. * @arg @ref LL_EXTI_LINE_14
  677. * @arg @ref LL_EXTI_LINE_15
  678. * @arg @ref LL_EXTI_LINE_16
  679. * @arg @ref LL_EXTI_LINE_18
  680. * @arg @ref LL_EXTI_LINE_19
  681. * @arg @ref LL_EXTI_LINE_20
  682. * @arg @ref LL_EXTI_LINE_21
  683. * @arg @ref LL_EXTI_LINE_22
  684. * @arg @ref LL_EXTI_LINE_29
  685. * @arg @ref LL_EXTI_LINE_30
  686. * @arg @ref LL_EXTI_LINE_31
  687. * @note Please check each device line mapping for EXTI Line availability
  688. * @retval None
  689. */
  690. __STATIC_INLINE void LL_EXTI_DisableFallingTrig_0_31(uint32_t ExtiLine)
  691. {
  692. CLEAR_BIT(EXTI->FTSR, ExtiLine);
  693. }
  694. /**
  695. * @brief Check if falling edge trigger is enabled for Lines in range 0 to 31
  696. * @rmtoll FTSR FTx LL_EXTI_IsEnabledFallingTrig_0_31
  697. * @param ExtiLine This parameter can be a combination of the following values:
  698. * @arg @ref LL_EXTI_LINE_0
  699. * @arg @ref LL_EXTI_LINE_1
  700. * @arg @ref LL_EXTI_LINE_2
  701. * @arg @ref LL_EXTI_LINE_3
  702. * @arg @ref LL_EXTI_LINE_4
  703. * @arg @ref LL_EXTI_LINE_5
  704. * @arg @ref LL_EXTI_LINE_6
  705. * @arg @ref LL_EXTI_LINE_7
  706. * @arg @ref LL_EXTI_LINE_8
  707. * @arg @ref LL_EXTI_LINE_9
  708. * @arg @ref LL_EXTI_LINE_10
  709. * @arg @ref LL_EXTI_LINE_11
  710. * @arg @ref LL_EXTI_LINE_12
  711. * @arg @ref LL_EXTI_LINE_13
  712. * @arg @ref LL_EXTI_LINE_14
  713. * @arg @ref LL_EXTI_LINE_15
  714. * @arg @ref LL_EXTI_LINE_16
  715. * @arg @ref LL_EXTI_LINE_18
  716. * @arg @ref LL_EXTI_LINE_19
  717. * @arg @ref LL_EXTI_LINE_20
  718. * @arg @ref LL_EXTI_LINE_21
  719. * @arg @ref LL_EXTI_LINE_22
  720. * @arg @ref LL_EXTI_LINE_29
  721. * @arg @ref LL_EXTI_LINE_30
  722. * @arg @ref LL_EXTI_LINE_31
  723. * @note Please check each device line mapping for EXTI Line availability
  724. * @retval State of bit (1 or 0).
  725. */
  726. __STATIC_INLINE uint32_t LL_EXTI_IsEnabledFallingTrig_0_31(uint32_t ExtiLine)
  727. {
  728. return (READ_BIT(EXTI->FTSR, ExtiLine) == (ExtiLine));
  729. }
  730. /**
  731. * @}
  732. */
  733. /** @defgroup EXTI_LL_EF_Software_Interrupt_Management Software_Interrupt_Management
  734. * @{
  735. */
  736. /**
  737. * @brief Generate a software Interrupt Event for Lines in range 0 to 31
  738. * @note If the interrupt is enabled on this line in the EXTI_IMR, writing a 1 to
  739. * this bit when it is at '0' sets the corresponding pending bit in EXTI_PR
  740. * resulting in an interrupt request generation.
  741. * This bit is cleared by clearing the corresponding bit in the EXTI_PR
  742. * register (by writing a 1 into the bit)
  743. * @rmtoll SWIER SWIx LL_EXTI_GenerateSWI_0_31
  744. * @param ExtiLine This parameter can be a combination of the following values:
  745. * @arg @ref LL_EXTI_LINE_0
  746. * @arg @ref LL_EXTI_LINE_1
  747. * @arg @ref LL_EXTI_LINE_2
  748. * @arg @ref LL_EXTI_LINE_3
  749. * @arg @ref LL_EXTI_LINE_4
  750. * @arg @ref LL_EXTI_LINE_5
  751. * @arg @ref LL_EXTI_LINE_6
  752. * @arg @ref LL_EXTI_LINE_7
  753. * @arg @ref LL_EXTI_LINE_8
  754. * @arg @ref LL_EXTI_LINE_9
  755. * @arg @ref LL_EXTI_LINE_10
  756. * @arg @ref LL_EXTI_LINE_11
  757. * @arg @ref LL_EXTI_LINE_12
  758. * @arg @ref LL_EXTI_LINE_13
  759. * @arg @ref LL_EXTI_LINE_14
  760. * @arg @ref LL_EXTI_LINE_15
  761. * @arg @ref LL_EXTI_LINE_16
  762. * @arg @ref LL_EXTI_LINE_18
  763. * @arg @ref LL_EXTI_LINE_19
  764. * @arg @ref LL_EXTI_LINE_20
  765. * @arg @ref LL_EXTI_LINE_21
  766. * @arg @ref LL_EXTI_LINE_22
  767. * @arg @ref LL_EXTI_LINE_29
  768. * @arg @ref LL_EXTI_LINE_30
  769. * @arg @ref LL_EXTI_LINE_31
  770. * @note Please check each device line mapping for EXTI Line availability
  771. * @retval None
  772. */
  773. __STATIC_INLINE void LL_EXTI_GenerateSWI_0_31(uint32_t ExtiLine)
  774. {
  775. SET_BIT(EXTI->SWIER, ExtiLine);
  776. }
  777. /**
  778. * @}
  779. */
  780. /** @defgroup EXTI_LL_EF_Flag_Management Flag_Management
  781. * @{
  782. */
  783. /**
  784. * @brief Check if the ExtLine Flag is set or not for Lines in range 0 to 31
  785. * @note This bit is set when the selected edge event arrives on the interrupt
  786. * line. This bit is cleared by writing a 1 to the bit.
  787. * @rmtoll PR PIFx LL_EXTI_IsActiveFlag_0_31
  788. * @param ExtiLine This parameter can be a combination of the following values:
  789. * @arg @ref LL_EXTI_LINE_0
  790. * @arg @ref LL_EXTI_LINE_1
  791. * @arg @ref LL_EXTI_LINE_2
  792. * @arg @ref LL_EXTI_LINE_3
  793. * @arg @ref LL_EXTI_LINE_4
  794. * @arg @ref LL_EXTI_LINE_5
  795. * @arg @ref LL_EXTI_LINE_6
  796. * @arg @ref LL_EXTI_LINE_7
  797. * @arg @ref LL_EXTI_LINE_8
  798. * @arg @ref LL_EXTI_LINE_9
  799. * @arg @ref LL_EXTI_LINE_10
  800. * @arg @ref LL_EXTI_LINE_11
  801. * @arg @ref LL_EXTI_LINE_12
  802. * @arg @ref LL_EXTI_LINE_13
  803. * @arg @ref LL_EXTI_LINE_14
  804. * @arg @ref LL_EXTI_LINE_15
  805. * @arg @ref LL_EXTI_LINE_16
  806. * @arg @ref LL_EXTI_LINE_18
  807. * @arg @ref LL_EXTI_LINE_19
  808. * @arg @ref LL_EXTI_LINE_20
  809. * @arg @ref LL_EXTI_LINE_21
  810. * @arg @ref LL_EXTI_LINE_22
  811. * @arg @ref LL_EXTI_LINE_29
  812. * @arg @ref LL_EXTI_LINE_30
  813. * @arg @ref LL_EXTI_LINE_31
  814. * @note Please check each device line mapping for EXTI Line availability
  815. * @retval State of bit (1 or 0).
  816. */
  817. __STATIC_INLINE uint32_t LL_EXTI_IsActiveFlag_0_31(uint32_t ExtiLine)
  818. {
  819. return (READ_BIT(EXTI->PR, ExtiLine) == (ExtiLine));
  820. }
  821. /**
  822. * @brief Read ExtLine Combination Flag for Lines in range 0 to 31
  823. * @note This bit is set when the selected edge event arrives on the interrupt
  824. * line. This bit is cleared by writing a 1 to the bit.
  825. * @rmtoll PR PIFx LL_EXTI_ReadFlag_0_31
  826. * @param ExtiLine This parameter can be a combination of the following values:
  827. * @arg @ref LL_EXTI_LINE_0
  828. * @arg @ref LL_EXTI_LINE_1
  829. * @arg @ref LL_EXTI_LINE_2
  830. * @arg @ref LL_EXTI_LINE_3
  831. * @arg @ref LL_EXTI_LINE_4
  832. * @arg @ref LL_EXTI_LINE_5
  833. * @arg @ref LL_EXTI_LINE_6
  834. * @arg @ref LL_EXTI_LINE_7
  835. * @arg @ref LL_EXTI_LINE_8
  836. * @arg @ref LL_EXTI_LINE_9
  837. * @arg @ref LL_EXTI_LINE_10
  838. * @arg @ref LL_EXTI_LINE_11
  839. * @arg @ref LL_EXTI_LINE_12
  840. * @arg @ref LL_EXTI_LINE_13
  841. * @arg @ref LL_EXTI_LINE_14
  842. * @arg @ref LL_EXTI_LINE_15
  843. * @arg @ref LL_EXTI_LINE_16
  844. * @arg @ref LL_EXTI_LINE_18
  845. * @arg @ref LL_EXTI_LINE_19
  846. * @arg @ref LL_EXTI_LINE_20
  847. * @arg @ref LL_EXTI_LINE_21
  848. * @arg @ref LL_EXTI_LINE_22
  849. * @arg @ref LL_EXTI_LINE_29
  850. * @arg @ref LL_EXTI_LINE_30
  851. * @arg @ref LL_EXTI_LINE_31
  852. * @note Please check each device line mapping for EXTI Line availability
  853. * @retval @note This bit is set when the selected edge event arrives on the interrupt
  854. */
  855. __STATIC_INLINE uint32_t LL_EXTI_ReadFlag_0_31(uint32_t ExtiLine)
  856. {
  857. return (uint32_t)(READ_BIT(EXTI->PR, ExtiLine));
  858. }
  859. /**
  860. * @brief Clear ExtLine Flags for Lines in range 0 to 31
  861. * @note This bit is set when the selected edge event arrives on the interrupt
  862. * line. This bit is cleared by writing a 1 to the bit.
  863. * @rmtoll PR PIFx LL_EXTI_ClearFlag_0_31
  864. * @param ExtiLine This parameter can be a combination of the following values:
  865. * @arg @ref LL_EXTI_LINE_0
  866. * @arg @ref LL_EXTI_LINE_1
  867. * @arg @ref LL_EXTI_LINE_2
  868. * @arg @ref LL_EXTI_LINE_3
  869. * @arg @ref LL_EXTI_LINE_4
  870. * @arg @ref LL_EXTI_LINE_5
  871. * @arg @ref LL_EXTI_LINE_6
  872. * @arg @ref LL_EXTI_LINE_7
  873. * @arg @ref LL_EXTI_LINE_8
  874. * @arg @ref LL_EXTI_LINE_9
  875. * @arg @ref LL_EXTI_LINE_10
  876. * @arg @ref LL_EXTI_LINE_11
  877. * @arg @ref LL_EXTI_LINE_12
  878. * @arg @ref LL_EXTI_LINE_13
  879. * @arg @ref LL_EXTI_LINE_14
  880. * @arg @ref LL_EXTI_LINE_15
  881. * @arg @ref LL_EXTI_LINE_16
  882. * @arg @ref LL_EXTI_LINE_18
  883. * @arg @ref LL_EXTI_LINE_19
  884. * @arg @ref LL_EXTI_LINE_20
  885. * @arg @ref LL_EXTI_LINE_21
  886. * @arg @ref LL_EXTI_LINE_22
  887. * @arg @ref LL_EXTI_LINE_29
  888. * @arg @ref LL_EXTI_LINE_30
  889. * @arg @ref LL_EXTI_LINE_31
  890. * @note Please check each device line mapping for EXTI Line availability
  891. * @retval None
  892. */
  893. __STATIC_INLINE void LL_EXTI_ClearFlag_0_31(uint32_t ExtiLine)
  894. {
  895. WRITE_REG(EXTI->PR, ExtiLine);
  896. }
  897. /**
  898. * @}
  899. */
  900. #if defined(USE_FULL_LL_DRIVER)
  901. /** @defgroup EXTI_LL_EF_Init Initialization and de-initialization functions
  902. * @{
  903. */
  904. uint32_t LL_EXTI_Init(LL_EXTI_InitTypeDef *EXTI_InitStruct);
  905. uint32_t LL_EXTI_DeInit(void);
  906. void LL_EXTI_StructInit(LL_EXTI_InitTypeDef *EXTI_InitStruct);
  907. /**
  908. * @}
  909. */
  910. #endif /* USE_FULL_LL_DRIVER */
  911. /**
  912. * @}
  913. */
  914. /**
  915. * @}
  916. */
  917. #endif /* EXTI */
  918. /**
  919. * @}
  920. */
  921. #ifdef __cplusplus
  922. }
  923. #endif
  924. #endif /* __STM32L1xx_LL_EXTI_H */
  925. /************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/