Subversion Repositories DashDisplay

Rev

Rev 56 | Blame | Compare with Previous | Last modification | View Log | Download | RSS feed

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