Subversion Repositories FuelGauge

Rev

Blame | Last modification | View Log | Download | RSS feed

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