STM32F439xx HAL User Manual
stm32f4xx_ll_exti.h
Go to the documentation of this file.
00001 /**
00002   ******************************************************************************
00003   * @file    stm32f4xx_ll_exti.h
00004   * @author  MCD Application Team
00005   * @brief   Header file of EXTI LL module.
00006   ******************************************************************************
00007   * @attention
00008   *
00009   * <h2><center>&copy; COPYRIGHT(c) 2017 STMicroelectronics</center></h2>
00010   *
00011   * Redistribution and use in source and binary forms, with or without modification,
00012   * are permitted provided that the following conditions are met:
00013   *   1. Redistributions of source code must retain the above copyright notice,
00014   *      this list of conditions and the following disclaimer.
00015   *   2. Redistributions in binary form must reproduce the above copyright notice,
00016   *      this list of conditions and the following disclaimer in the documentation
00017   *      and/or other materials provided with the distribution.
00018   *   3. Neither the name of STMicroelectronics nor the names of its contributors
00019   *      may be used to endorse or promote products derived from this software
00020   *      without specific prior written permission.
00021   *
00022   * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
00023   * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
00024   * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
00025   * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
00026   * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
00027   * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
00028   * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
00029   * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
00030   * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
00031   * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
00032   *
00033   ******************************************************************************
00034   */
00035 
00036 /* Define to prevent recursive inclusion -------------------------------------*/
00037 #ifndef __STM32F4xx_LL_EXTI_H
00038 #define __STM32F4xx_LL_EXTI_H
00039 
00040 #ifdef __cplusplus
00041 extern "C" {
00042 #endif
00043 
00044 /* Includes ------------------------------------------------------------------*/
00045 #include "stm32f4xx.h"
00046 
00047 /** @addtogroup STM32F4xx_LL_Driver
00048   * @{
00049   */
00050 
00051 #if defined (EXTI)
00052 
00053 /** @defgroup EXTI_LL EXTI
00054   * @{
00055   */
00056 
00057 /* Private types -------------------------------------------------------------*/
00058 /* Private variables ---------------------------------------------------------*/
00059 /* Private constants ---------------------------------------------------------*/
00060 /* Private Macros ------------------------------------------------------------*/
00061 #if defined(USE_FULL_LL_DRIVER)
00062 /** @defgroup EXTI_LL_Private_Macros EXTI Private Macros
00063   * @{
00064   */
00065 /**
00066   * @}
00067   */
00068 #endif /*USE_FULL_LL_DRIVER*/
00069 /* Exported types ------------------------------------------------------------*/
00070 #if defined(USE_FULL_LL_DRIVER)
00071 /** @defgroup EXTI_LL_ES_INIT EXTI Exported Init structure
00072   * @{
00073   */
00074 typedef struct
00075 {
00076 
00077   uint32_t Line_0_31;           /*!< Specifies the EXTI lines to be enabled or disabled for Lines in range 0 to 31
00078                                      This parameter can be any combination of @ref EXTI_LL_EC_LINE */
00079 
00080   FunctionalState LineCommand;  /*!< Specifies the new state of the selected EXTI lines.
00081                                      This parameter can be set either to ENABLE or DISABLE */
00082 
00083   uint8_t Mode;                 /*!< Specifies the mode for the EXTI lines.
00084                                      This parameter can be a value of @ref EXTI_LL_EC_MODE. */
00085 
00086   uint8_t Trigger;              /*!< Specifies the trigger signal active edge for the EXTI lines.
00087                                      This parameter can be a value of @ref EXTI_LL_EC_TRIGGER. */
00088 } LL_EXTI_InitTypeDef;
00089 
00090 /**
00091   * @}
00092   */
00093 #endif /*USE_FULL_LL_DRIVER*/
00094 
00095 /* Exported constants --------------------------------------------------------*/
00096 /** @defgroup EXTI_LL_Exported_Constants EXTI Exported Constants
00097   * @{
00098   */
00099 
00100 /** @defgroup EXTI_LL_EC_LINE LINE
00101   * @{
00102   */
00103 #define LL_EXTI_LINE_0                 EXTI_IMR_IM0           /*!< Extended line 0 */
00104 #define LL_EXTI_LINE_1                 EXTI_IMR_IM1           /*!< Extended line 1 */
00105 #define LL_EXTI_LINE_2                 EXTI_IMR_IM2           /*!< Extended line 2 */
00106 #define LL_EXTI_LINE_3                 EXTI_IMR_IM3           /*!< Extended line 3 */
00107 #define LL_EXTI_LINE_4                 EXTI_IMR_IM4           /*!< Extended line 4 */
00108 #define LL_EXTI_LINE_5                 EXTI_IMR_IM5           /*!< Extended line 5 */
00109 #define LL_EXTI_LINE_6                 EXTI_IMR_IM6           /*!< Extended line 6 */
00110 #define LL_EXTI_LINE_7                 EXTI_IMR_IM7           /*!< Extended line 7 */
00111 #define LL_EXTI_LINE_8                 EXTI_IMR_IM8           /*!< Extended line 8 */
00112 #define LL_EXTI_LINE_9                 EXTI_IMR_IM9           /*!< Extended line 9 */
00113 #define LL_EXTI_LINE_10                EXTI_IMR_IM10          /*!< Extended line 10 */
00114 #define LL_EXTI_LINE_11                EXTI_IMR_IM11          /*!< Extended line 11 */
00115 #define LL_EXTI_LINE_12                EXTI_IMR_IM12          /*!< Extended line 12 */
00116 #define LL_EXTI_LINE_13                EXTI_IMR_IM13          /*!< Extended line 13 */
00117 #define LL_EXTI_LINE_14                EXTI_IMR_IM14          /*!< Extended line 14 */
00118 #define LL_EXTI_LINE_15                EXTI_IMR_IM15          /*!< Extended line 15 */
00119 #if defined(EXTI_IMR_IM16)
00120 #define LL_EXTI_LINE_16                EXTI_IMR_IM16          /*!< Extended line 16 */
00121 #endif
00122 #define LL_EXTI_LINE_17                EXTI_IMR_IM17          /*!< Extended line 17 */
00123 #if defined(EXTI_IMR_IM18)
00124 #define LL_EXTI_LINE_18                EXTI_IMR_IM18          /*!< Extended line 18 */
00125 #endif
00126 #define LL_EXTI_LINE_19                EXTI_IMR_IM19          /*!< Extended line 19 */
00127 #if defined(EXTI_IMR_IM20)
00128 #define LL_EXTI_LINE_20                EXTI_IMR_IM20          /*!< Extended line 20 */
00129 #endif
00130 #if defined(EXTI_IMR_IM21)
00131 #define LL_EXTI_LINE_21                EXTI_IMR_IM21          /*!< Extended line 21 */
00132 #endif
00133 #if defined(EXTI_IMR_IM22)
00134 #define LL_EXTI_LINE_22                EXTI_IMR_IM22          /*!< Extended line 22 */
00135 #endif
00136 #if defined(EXTI_IMR_IM23)
00137 #define LL_EXTI_LINE_23                EXTI_IMR_IM23          /*!< Extended line 23 */
00138 #endif
00139 #if defined(EXTI_IMR_IM24)
00140 #define LL_EXTI_LINE_24                EXTI_IMR_IM24          /*!< Extended line 24 */
00141 #endif
00142 #if defined(EXTI_IMR_IM25)
00143 #define LL_EXTI_LINE_25                EXTI_IMR_IM25          /*!< Extended line 25 */
00144 #endif
00145 #if defined(EXTI_IMR_IM26)
00146 #define LL_EXTI_LINE_26                EXTI_IMR_IM26          /*!< Extended line 26 */
00147 #endif
00148 #if defined(EXTI_IMR_IM27)
00149 #define LL_EXTI_LINE_27                EXTI_IMR_IM27          /*!< Extended line 27 */
00150 #endif
00151 #if defined(EXTI_IMR_IM28)
00152 #define LL_EXTI_LINE_28                EXTI_IMR_IM28          /*!< Extended line 28 */
00153 #endif
00154 #if defined(EXTI_IMR_IM29)
00155 #define LL_EXTI_LINE_29                EXTI_IMR_IM29          /*!< Extended line 29 */
00156 #endif
00157 #if defined(EXTI_IMR_IM30)
00158 #define LL_EXTI_LINE_30                EXTI_IMR_IM30          /*!< Extended line 30 */
00159 #endif
00160 #if defined(EXTI_IMR_IM31)
00161 #define LL_EXTI_LINE_31                EXTI_IMR_IM31          /*!< Extended line 31 */
00162 #endif
00163 #define LL_EXTI_LINE_ALL_0_31          EXTI_IMR_IM            /*!< All Extended line not reserved*/
00164 
00165 
00166 #define LL_EXTI_LINE_ALL               ((uint32_t)0xFFFFFFFFU)  /*!< All Extended line */
00167 
00168 #if defined(USE_FULL_LL_DRIVER)
00169 #define LL_EXTI_LINE_NONE              ((uint32_t)0x00000000U)  /*!< None Extended line */
00170 #endif /*USE_FULL_LL_DRIVER*/
00171 
00172 /**
00173   * @}
00174   */
00175 #if defined(USE_FULL_LL_DRIVER)
00176 
00177 /** @defgroup EXTI_LL_EC_MODE Mode
00178   * @{
00179   */
00180 #define LL_EXTI_MODE_IT                 ((uint8_t)0x00U) /*!< Interrupt Mode */
00181 #define LL_EXTI_MODE_EVENT              ((uint8_t)0x01U) /*!< Event Mode */
00182 #define LL_EXTI_MODE_IT_EVENT           ((uint8_t)0x02U) /*!< Interrupt & Event Mode */
00183 /**
00184   * @}
00185   */
00186 
00187 /** @defgroup EXTI_LL_EC_TRIGGER Edge Trigger
00188   * @{
00189   */
00190 #define LL_EXTI_TRIGGER_NONE            ((uint8_t)0x00U) /*!< No Trigger Mode */
00191 #define LL_EXTI_TRIGGER_RISING          ((uint8_t)0x01U) /*!< Trigger Rising Mode */
00192 #define LL_EXTI_TRIGGER_FALLING         ((uint8_t)0x02U) /*!< Trigger Falling Mode */
00193 #define LL_EXTI_TRIGGER_RISING_FALLING  ((uint8_t)0x03U) /*!< Trigger Rising & Falling Mode */
00194 
00195 /**
00196   * @}
00197   */
00198 
00199 
00200 #endif /*USE_FULL_LL_DRIVER*/
00201 
00202 
00203 /**
00204   * @}
00205   */
00206 
00207 /* Exported macro ------------------------------------------------------------*/
00208 /** @defgroup EXTI_LL_Exported_Macros EXTI Exported Macros
00209   * @{
00210   */
00211 
00212 /** @defgroup EXTI_LL_EM_WRITE_READ Common Write and read registers Macros
00213   * @{
00214   */
00215 
00216 /**
00217   * @brief  Write a value in EXTI register
00218   * @param  __REG__ Register to be written
00219   * @param  __VALUE__ Value to be written in the register
00220   * @retval None
00221   */
00222 #define LL_EXTI_WriteReg(__REG__, __VALUE__) WRITE_REG(EXTI->__REG__, (__VALUE__))
00223 
00224 /**
00225   * @brief  Read a value in EXTI register
00226   * @param  __REG__ Register to be read
00227   * @retval Register value
00228   */
00229 #define LL_EXTI_ReadReg(__REG__) READ_REG(EXTI->__REG__)
00230 /**
00231   * @}
00232   */
00233 
00234 
00235 /**
00236   * @}
00237   */
00238 
00239 
00240 
00241 /* Exported functions --------------------------------------------------------*/
00242 /** @defgroup EXTI_LL_Exported_Functions EXTI Exported Functions
00243  * @{
00244  */
00245 /** @defgroup EXTI_LL_EF_IT_Management IT_Management
00246   * @{
00247   */
00248 
00249 /**
00250   * @brief  Enable ExtiLine Interrupt request for Lines in range 0 to 31
00251   * @note The reset value for the direct or internal lines (see RM)
00252   *       is set to 1 in order to enable the interrupt by default.
00253   *       Bits are set automatically at Power on.
00254   * @rmtoll IMR         IMx           LL_EXTI_EnableIT_0_31
00255   * @param  ExtiLine This parameter can be one of the following values:
00256   *         @arg @ref LL_EXTI_LINE_0
00257   *         @arg @ref LL_EXTI_LINE_1
00258   *         @arg @ref LL_EXTI_LINE_2
00259   *         @arg @ref LL_EXTI_LINE_3
00260   *         @arg @ref LL_EXTI_LINE_4
00261   *         @arg @ref LL_EXTI_LINE_5
00262   *         @arg @ref LL_EXTI_LINE_6
00263   *         @arg @ref LL_EXTI_LINE_7
00264   *         @arg @ref LL_EXTI_LINE_8
00265   *         @arg @ref LL_EXTI_LINE_9
00266   *         @arg @ref LL_EXTI_LINE_10
00267   *         @arg @ref LL_EXTI_LINE_11
00268   *         @arg @ref LL_EXTI_LINE_12
00269   *         @arg @ref LL_EXTI_LINE_13
00270   *         @arg @ref LL_EXTI_LINE_14
00271   *         @arg @ref LL_EXTI_LINE_15
00272   *         @arg @ref LL_EXTI_LINE_16
00273   *         @arg @ref LL_EXTI_LINE_17
00274   *         @arg @ref LL_EXTI_LINE_18
00275   *         @arg @ref LL_EXTI_LINE_19(*)
00276   *         @arg @ref LL_EXTI_LINE_20(*)
00277   *         @arg @ref LL_EXTI_LINE_21
00278   *         @arg @ref LL_EXTI_LINE_22
00279   *         @arg @ref LL_EXTI_LINE_23(*)
00280   *         @arg @ref LL_EXTI_LINE_ALL_0_31
00281   * @note   (*): Available in some devices
00282   * @note   Please check each device line mapping for EXTI Line availability
00283   * @retval None
00284   */
00285 __STATIC_INLINE void LL_EXTI_EnableIT_0_31(uint32_t ExtiLine)
00286 {
00287   SET_BIT(EXTI->IMR, ExtiLine);
00288 }
00289 
00290 /**
00291   * @brief  Disable ExtiLine Interrupt request for Lines in range 0 to 31
00292   * @note The reset value for the direct or internal lines (see RM)
00293   *       is set to 1 in order to enable the interrupt by default.
00294   *       Bits are set automatically at Power on.
00295   * @rmtoll IMR         IMx           LL_EXTI_DisableIT_0_31
00296   * @param  ExtiLine This parameter can be one of the following values:
00297   *         @arg @ref LL_EXTI_LINE_0
00298   *         @arg @ref LL_EXTI_LINE_1
00299   *         @arg @ref LL_EXTI_LINE_2
00300   *         @arg @ref LL_EXTI_LINE_3
00301   *         @arg @ref LL_EXTI_LINE_4
00302   *         @arg @ref LL_EXTI_LINE_5
00303   *         @arg @ref LL_EXTI_LINE_6
00304   *         @arg @ref LL_EXTI_LINE_7
00305   *         @arg @ref LL_EXTI_LINE_8
00306   *         @arg @ref LL_EXTI_LINE_9
00307   *         @arg @ref LL_EXTI_LINE_10
00308   *         @arg @ref LL_EXTI_LINE_11
00309   *         @arg @ref LL_EXTI_LINE_12
00310   *         @arg @ref LL_EXTI_LINE_13
00311   *         @arg @ref LL_EXTI_LINE_14
00312   *         @arg @ref LL_EXTI_LINE_15
00313   *         @arg @ref LL_EXTI_LINE_16
00314   *         @arg @ref LL_EXTI_LINE_17
00315   *         @arg @ref LL_EXTI_LINE_18
00316   *         @arg @ref LL_EXTI_LINE_19(*)
00317   *         @arg @ref LL_EXTI_LINE_20(*)
00318   *         @arg @ref LL_EXTI_LINE_21
00319   *         @arg @ref LL_EXTI_LINE_22
00320   *         @arg @ref LL_EXTI_LINE_23(*)
00321   *         @arg @ref LL_EXTI_LINE_ALL_0_31
00322   * @note   (*): Available in some devices
00323   * @note   Please check each device line mapping for EXTI Line availability
00324   * @retval None
00325   */
00326 __STATIC_INLINE void LL_EXTI_DisableIT_0_31(uint32_t ExtiLine)
00327 {
00328   CLEAR_BIT(EXTI->IMR, ExtiLine);
00329 }
00330 
00331 
00332 /**
00333   * @brief  Indicate if ExtiLine Interrupt request is enabled for Lines in range 0 to 31
00334   * @note The reset value for the direct or internal lines (see RM)
00335   *       is set to 1 in order to enable the interrupt by default.
00336   *       Bits are set automatically at Power on.
00337   * @rmtoll IMR         IMx           LL_EXTI_IsEnabledIT_0_31
00338   * @param  ExtiLine This parameter can be one of the following values:
00339   *         @arg @ref LL_EXTI_LINE_0
00340   *         @arg @ref LL_EXTI_LINE_1
00341   *         @arg @ref LL_EXTI_LINE_2
00342   *         @arg @ref LL_EXTI_LINE_3
00343   *         @arg @ref LL_EXTI_LINE_4
00344   *         @arg @ref LL_EXTI_LINE_5
00345   *         @arg @ref LL_EXTI_LINE_6
00346   *         @arg @ref LL_EXTI_LINE_7
00347   *         @arg @ref LL_EXTI_LINE_8
00348   *         @arg @ref LL_EXTI_LINE_9
00349   *         @arg @ref LL_EXTI_LINE_10
00350   *         @arg @ref LL_EXTI_LINE_11
00351   *         @arg @ref LL_EXTI_LINE_12
00352   *         @arg @ref LL_EXTI_LINE_13
00353   *         @arg @ref LL_EXTI_LINE_14
00354   *         @arg @ref LL_EXTI_LINE_15
00355   *         @arg @ref LL_EXTI_LINE_16
00356   *         @arg @ref LL_EXTI_LINE_17
00357   *         @arg @ref LL_EXTI_LINE_18
00358   *         @arg @ref LL_EXTI_LINE_19(*)
00359   *         @arg @ref LL_EXTI_LINE_20(*)
00360   *         @arg @ref LL_EXTI_LINE_21
00361   *         @arg @ref LL_EXTI_LINE_22
00362   *         @arg @ref LL_EXTI_LINE_23(*)
00363   *         @arg @ref LL_EXTI_LINE_ALL_0_31
00364   * @note   (*): Available in some devices
00365   * @note   Please check each device line mapping for EXTI Line availability
00366   * @retval State of bit (1 or 0).
00367   */
00368 __STATIC_INLINE uint32_t LL_EXTI_IsEnabledIT_0_31(uint32_t ExtiLine)
00369 {
00370   return (READ_BIT(EXTI->IMR, ExtiLine) == (ExtiLine));
00371 }
00372 
00373 
00374 /**
00375   * @}
00376   */
00377 
00378 /** @defgroup EXTI_LL_EF_Event_Management Event_Management
00379   * @{
00380   */
00381 
00382 /**
00383   * @brief  Enable ExtiLine Event request for Lines in range 0 to 31
00384   * @rmtoll EMR         EMx           LL_EXTI_EnableEvent_0_31
00385   * @param  ExtiLine This parameter can be one of the following values:
00386   *         @arg @ref LL_EXTI_LINE_0
00387   *         @arg @ref LL_EXTI_LINE_1
00388   *         @arg @ref LL_EXTI_LINE_2
00389   *         @arg @ref LL_EXTI_LINE_3
00390   *         @arg @ref LL_EXTI_LINE_4
00391   *         @arg @ref LL_EXTI_LINE_5
00392   *         @arg @ref LL_EXTI_LINE_6
00393   *         @arg @ref LL_EXTI_LINE_7
00394   *         @arg @ref LL_EXTI_LINE_8
00395   *         @arg @ref LL_EXTI_LINE_9
00396   *         @arg @ref LL_EXTI_LINE_10
00397   *         @arg @ref LL_EXTI_LINE_11
00398   *         @arg @ref LL_EXTI_LINE_12
00399   *         @arg @ref LL_EXTI_LINE_13
00400   *         @arg @ref LL_EXTI_LINE_14
00401   *         @arg @ref LL_EXTI_LINE_15
00402   *         @arg @ref LL_EXTI_LINE_16
00403   *         @arg @ref LL_EXTI_LINE_17
00404   *         @arg @ref LL_EXTI_LINE_18
00405   *         @arg @ref LL_EXTI_LINE_19(*)
00406   *         @arg @ref LL_EXTI_LINE_20(*)
00407   *         @arg @ref LL_EXTI_LINE_21
00408   *         @arg @ref LL_EXTI_LINE_22
00409   *         @arg @ref LL_EXTI_LINE_23(*)
00410   *         @arg @ref LL_EXTI_LINE_ALL_0_31
00411   * @note   (*): Available in some devices
00412   * @note   Please check each device line mapping for EXTI Line availability
00413   * @retval None
00414   */
00415 __STATIC_INLINE void LL_EXTI_EnableEvent_0_31(uint32_t ExtiLine)
00416 {
00417   SET_BIT(EXTI->EMR, ExtiLine);
00418 
00419 }
00420 
00421 
00422 /**
00423   * @brief  Disable ExtiLine Event request for Lines in range 0 to 31
00424   * @rmtoll EMR         EMx           LL_EXTI_DisableEvent_0_31
00425   * @param  ExtiLine This parameter can be one of the following values:
00426   *         @arg @ref LL_EXTI_LINE_0
00427   *         @arg @ref LL_EXTI_LINE_1
00428   *         @arg @ref LL_EXTI_LINE_2
00429   *         @arg @ref LL_EXTI_LINE_3
00430   *         @arg @ref LL_EXTI_LINE_4
00431   *         @arg @ref LL_EXTI_LINE_5
00432   *         @arg @ref LL_EXTI_LINE_6
00433   *         @arg @ref LL_EXTI_LINE_7
00434   *         @arg @ref LL_EXTI_LINE_8
00435   *         @arg @ref LL_EXTI_LINE_9
00436   *         @arg @ref LL_EXTI_LINE_10
00437   *         @arg @ref LL_EXTI_LINE_11
00438   *         @arg @ref LL_EXTI_LINE_12
00439   *         @arg @ref LL_EXTI_LINE_13
00440   *         @arg @ref LL_EXTI_LINE_14
00441   *         @arg @ref LL_EXTI_LINE_15
00442   *         @arg @ref LL_EXTI_LINE_16
00443   *         @arg @ref LL_EXTI_LINE_17
00444   *         @arg @ref LL_EXTI_LINE_18
00445   *         @arg @ref LL_EXTI_LINE_19(*)
00446   *         @arg @ref LL_EXTI_LINE_20(*)
00447   *         @arg @ref LL_EXTI_LINE_21
00448   *         @arg @ref LL_EXTI_LINE_22
00449   *         @arg @ref LL_EXTI_LINE_23(*)
00450   *         @arg @ref LL_EXTI_LINE_ALL_0_31
00451   * @note   (*): Available in some devices
00452   * @note   Please check each device line mapping for EXTI Line availability
00453   * @retval None
00454   */
00455 __STATIC_INLINE void LL_EXTI_DisableEvent_0_31(uint32_t ExtiLine)
00456 {
00457   CLEAR_BIT(EXTI->EMR, ExtiLine);
00458 }
00459 
00460 
00461 /**
00462   * @brief  Indicate if ExtiLine Event request is enabled for Lines in range 0 to 31
00463   * @rmtoll EMR         EMx           LL_EXTI_IsEnabledEvent_0_31
00464   * @param  ExtiLine This parameter can be one of the following values:
00465   *         @arg @ref LL_EXTI_LINE_0
00466   *         @arg @ref LL_EXTI_LINE_1
00467   *         @arg @ref LL_EXTI_LINE_2
00468   *         @arg @ref LL_EXTI_LINE_3
00469   *         @arg @ref LL_EXTI_LINE_4
00470   *         @arg @ref LL_EXTI_LINE_5
00471   *         @arg @ref LL_EXTI_LINE_6
00472   *         @arg @ref LL_EXTI_LINE_7
00473   *         @arg @ref LL_EXTI_LINE_8
00474   *         @arg @ref LL_EXTI_LINE_9
00475   *         @arg @ref LL_EXTI_LINE_10
00476   *         @arg @ref LL_EXTI_LINE_11
00477   *         @arg @ref LL_EXTI_LINE_12
00478   *         @arg @ref LL_EXTI_LINE_13
00479   *         @arg @ref LL_EXTI_LINE_14
00480   *         @arg @ref LL_EXTI_LINE_15
00481   *         @arg @ref LL_EXTI_LINE_16
00482   *         @arg @ref LL_EXTI_LINE_17
00483   *         @arg @ref LL_EXTI_LINE_18
00484   *         @arg @ref LL_EXTI_LINE_19(*)
00485   *         @arg @ref LL_EXTI_LINE_20(*)
00486   *         @arg @ref LL_EXTI_LINE_21
00487   *         @arg @ref LL_EXTI_LINE_22
00488   *         @arg @ref LL_EXTI_LINE_23(*)
00489   *         @arg @ref LL_EXTI_LINE_ALL_0_31
00490   * @note   (*): Available in some devices
00491   * @note   Please check each device line mapping for EXTI Line availability
00492   * @retval State of bit (1 or 0).
00493   */
00494 __STATIC_INLINE uint32_t LL_EXTI_IsEnabledEvent_0_31(uint32_t ExtiLine)
00495 {
00496   return (READ_BIT(EXTI->EMR, ExtiLine) == (ExtiLine));
00497 
00498 }
00499 
00500 
00501 /**
00502   * @}
00503   */
00504 
00505 /** @defgroup EXTI_LL_EF_Rising_Trigger_Management Rising_Trigger_Management
00506   * @{
00507   */
00508 
00509 /**
00510   * @brief  Enable ExtiLine Rising Edge Trigger for Lines in range 0 to 31
00511   * @note The configurable wakeup lines are edge-triggered. No glitch must be
00512   *       generated on these lines. If a rising edge on a configurable interrupt
00513   *       line occurs during a write operation in the EXTI_RTSR register, the
00514   *       pending bit is not set.
00515   *       Rising and falling edge triggers can be set for
00516   *       the same interrupt line. In this case, both generate a trigger
00517   *       condition.
00518   * @rmtoll RTSR        RTx           LL_EXTI_EnableRisingTrig_0_31
00519   * @param  ExtiLine This parameter can be a combination of the following values:
00520   *         @arg @ref LL_EXTI_LINE_0
00521   *         @arg @ref LL_EXTI_LINE_1
00522   *         @arg @ref LL_EXTI_LINE_2
00523   *         @arg @ref LL_EXTI_LINE_3
00524   *         @arg @ref LL_EXTI_LINE_4
00525   *         @arg @ref LL_EXTI_LINE_5
00526   *         @arg @ref LL_EXTI_LINE_6
00527   *         @arg @ref LL_EXTI_LINE_7
00528   *         @arg @ref LL_EXTI_LINE_8
00529   *         @arg @ref LL_EXTI_LINE_9
00530   *         @arg @ref LL_EXTI_LINE_10
00531   *         @arg @ref LL_EXTI_LINE_11
00532   *         @arg @ref LL_EXTI_LINE_12
00533   *         @arg @ref LL_EXTI_LINE_13
00534   *         @arg @ref LL_EXTI_LINE_14
00535   *         @arg @ref LL_EXTI_LINE_15
00536   *         @arg @ref LL_EXTI_LINE_16
00537   *         @arg @ref LL_EXTI_LINE_18
00538   *         @arg @ref LL_EXTI_LINE_19(*)
00539   *         @arg @ref LL_EXTI_LINE_20(*)
00540   *         @arg @ref LL_EXTI_LINE_21
00541   *         @arg @ref LL_EXTI_LINE_22
00542   * @note   (*): Available in some devices
00543   * @note   Please check each device line mapping for EXTI Line availability
00544   * @retval None
00545   */
00546 __STATIC_INLINE void LL_EXTI_EnableRisingTrig_0_31(uint32_t ExtiLine)
00547 {
00548   SET_BIT(EXTI->RTSR, ExtiLine);
00549 
00550 }
00551 
00552 
00553 /**
00554   * @brief  Disable ExtiLine Rising Edge Trigger for Lines in range 0 to 31
00555   * @note The configurable wakeup lines are edge-triggered. No glitch must be
00556   *       generated on these lines. If a rising edge on a configurable interrupt
00557   *       line occurs during a write operation in the EXTI_RTSR register, the
00558   *       pending bit is not set.
00559   *       Rising and falling edge triggers can be set for
00560   *       the same interrupt line. In this case, both generate a trigger
00561   *       condition.
00562   * @rmtoll RTSR        RTx           LL_EXTI_DisableRisingTrig_0_31
00563   * @param  ExtiLine This parameter can be a combination of the following values:
00564   *         @arg @ref LL_EXTI_LINE_0
00565   *         @arg @ref LL_EXTI_LINE_1
00566   *         @arg @ref LL_EXTI_LINE_2
00567   *         @arg @ref LL_EXTI_LINE_3
00568   *         @arg @ref LL_EXTI_LINE_4
00569   *         @arg @ref LL_EXTI_LINE_5
00570   *         @arg @ref LL_EXTI_LINE_6
00571   *         @arg @ref LL_EXTI_LINE_7
00572   *         @arg @ref LL_EXTI_LINE_8
00573   *         @arg @ref LL_EXTI_LINE_9
00574   *         @arg @ref LL_EXTI_LINE_10
00575   *         @arg @ref LL_EXTI_LINE_11
00576   *         @arg @ref LL_EXTI_LINE_12
00577   *         @arg @ref LL_EXTI_LINE_13
00578   *         @arg @ref LL_EXTI_LINE_14
00579   *         @arg @ref LL_EXTI_LINE_15
00580   *         @arg @ref LL_EXTI_LINE_16
00581   *         @arg @ref LL_EXTI_LINE_18
00582   *         @arg @ref LL_EXTI_LINE_19(*)
00583   *         @arg @ref LL_EXTI_LINE_20(*)
00584   *         @arg @ref LL_EXTI_LINE_21
00585   *         @arg @ref LL_EXTI_LINE_22
00586   * @note   (*): Available in some devices
00587   * @note   Please check each device line mapping for EXTI Line availability
00588   * @retval None
00589   */
00590 __STATIC_INLINE void LL_EXTI_DisableRisingTrig_0_31(uint32_t ExtiLine)
00591 {
00592   CLEAR_BIT(EXTI->RTSR, ExtiLine);
00593 
00594 }
00595 
00596 
00597 /**
00598   * @brief  Check if rising edge trigger is enabled for Lines in range 0 to 31
00599   * @rmtoll RTSR        RTx           LL_EXTI_IsEnabledRisingTrig_0_31
00600   * @param  ExtiLine This parameter can be a combination of the following values:
00601   *         @arg @ref LL_EXTI_LINE_0
00602   *         @arg @ref LL_EXTI_LINE_1
00603   *         @arg @ref LL_EXTI_LINE_2
00604   *         @arg @ref LL_EXTI_LINE_3
00605   *         @arg @ref LL_EXTI_LINE_4
00606   *         @arg @ref LL_EXTI_LINE_5
00607   *         @arg @ref LL_EXTI_LINE_6
00608   *         @arg @ref LL_EXTI_LINE_7
00609   *         @arg @ref LL_EXTI_LINE_8
00610   *         @arg @ref LL_EXTI_LINE_9
00611   *         @arg @ref LL_EXTI_LINE_10
00612   *         @arg @ref LL_EXTI_LINE_11
00613   *         @arg @ref LL_EXTI_LINE_12
00614   *         @arg @ref LL_EXTI_LINE_13
00615   *         @arg @ref LL_EXTI_LINE_14
00616   *         @arg @ref LL_EXTI_LINE_15
00617   *         @arg @ref LL_EXTI_LINE_16
00618   *         @arg @ref LL_EXTI_LINE_18
00619   *         @arg @ref LL_EXTI_LINE_19(*)
00620   *         @arg @ref LL_EXTI_LINE_20(*)
00621   *         @arg @ref LL_EXTI_LINE_21
00622   *         @arg @ref LL_EXTI_LINE_22
00623   * @note   (*): Available in some devices
00624   * @note   Please check each device line mapping for EXTI Line availability
00625   * @retval State of bit (1 or 0).
00626   */
00627 __STATIC_INLINE uint32_t LL_EXTI_IsEnabledRisingTrig_0_31(uint32_t ExtiLine)
00628 {
00629   return (READ_BIT(EXTI->RTSR, ExtiLine) == (ExtiLine));
00630 }
00631 
00632 
00633 /**
00634   * @}
00635   */
00636 
00637 /** @defgroup EXTI_LL_EF_Falling_Trigger_Management Falling_Trigger_Management
00638   * @{
00639   */
00640 
00641 /**
00642   * @brief  Enable ExtiLine Falling Edge Trigger for Lines in range 0 to 31
00643   * @note The configurable wakeup lines are edge-triggered. No glitch must be
00644   *       generated on these lines. If a falling edge on a configurable interrupt
00645   *       line occurs during a write operation in the EXTI_FTSR register, the
00646   *       pending bit is not set.
00647   *       Rising and falling edge triggers can be set for
00648   *       the same interrupt line. In this case, both generate a trigger
00649   *       condition.
00650   * @rmtoll FTSR        FTx           LL_EXTI_EnableFallingTrig_0_31
00651   * @param  ExtiLine This parameter can be a combination of the following values:
00652   *         @arg @ref LL_EXTI_LINE_0
00653   *         @arg @ref LL_EXTI_LINE_1
00654   *         @arg @ref LL_EXTI_LINE_2
00655   *         @arg @ref LL_EXTI_LINE_3
00656   *         @arg @ref LL_EXTI_LINE_4
00657   *         @arg @ref LL_EXTI_LINE_5
00658   *         @arg @ref LL_EXTI_LINE_6
00659   *         @arg @ref LL_EXTI_LINE_7
00660   *         @arg @ref LL_EXTI_LINE_8
00661   *         @arg @ref LL_EXTI_LINE_9
00662   *         @arg @ref LL_EXTI_LINE_10
00663   *         @arg @ref LL_EXTI_LINE_11
00664   *         @arg @ref LL_EXTI_LINE_12
00665   *         @arg @ref LL_EXTI_LINE_13
00666   *         @arg @ref LL_EXTI_LINE_14
00667   *         @arg @ref LL_EXTI_LINE_15
00668   *         @arg @ref LL_EXTI_LINE_16
00669   *         @arg @ref LL_EXTI_LINE_18
00670   *         @arg @ref LL_EXTI_LINE_19(*)
00671   *         @arg @ref LL_EXTI_LINE_20(*)
00672   *         @arg @ref LL_EXTI_LINE_21
00673   *         @arg @ref LL_EXTI_LINE_22
00674   * @note   (*): Available in some devices
00675   * @note   Please check each device line mapping for EXTI Line availability
00676   * @retval None
00677   */
00678 __STATIC_INLINE void LL_EXTI_EnableFallingTrig_0_31(uint32_t ExtiLine)
00679 {
00680   SET_BIT(EXTI->FTSR, ExtiLine);
00681 }
00682 
00683 
00684 /**
00685   * @brief  Disable ExtiLine Falling Edge Trigger for Lines in range 0 to 31
00686   * @note The configurable wakeup lines are edge-triggered. No glitch must be
00687   *       generated on these lines. If a Falling edge on a configurable interrupt
00688   *       line occurs during a write operation in the EXTI_FTSR register, the
00689   *       pending bit is not set.
00690   *       Rising and falling edge triggers can be set for the same interrupt line.
00691   *       In this case, both generate a trigger condition.
00692   * @rmtoll FTSR        FTx           LL_EXTI_DisableFallingTrig_0_31
00693   * @param  ExtiLine This parameter can be a combination of the following values:
00694   *         @arg @ref LL_EXTI_LINE_0
00695   *         @arg @ref LL_EXTI_LINE_1
00696   *         @arg @ref LL_EXTI_LINE_2
00697   *         @arg @ref LL_EXTI_LINE_3
00698   *         @arg @ref LL_EXTI_LINE_4
00699   *         @arg @ref LL_EXTI_LINE_5
00700   *         @arg @ref LL_EXTI_LINE_6
00701   *         @arg @ref LL_EXTI_LINE_7
00702   *         @arg @ref LL_EXTI_LINE_8
00703   *         @arg @ref LL_EXTI_LINE_9
00704   *         @arg @ref LL_EXTI_LINE_10
00705   *         @arg @ref LL_EXTI_LINE_11
00706   *         @arg @ref LL_EXTI_LINE_12
00707   *         @arg @ref LL_EXTI_LINE_13
00708   *         @arg @ref LL_EXTI_LINE_14
00709   *         @arg @ref LL_EXTI_LINE_15
00710   *         @arg @ref LL_EXTI_LINE_16
00711   *         @arg @ref LL_EXTI_LINE_18
00712   *         @arg @ref LL_EXTI_LINE_19(*)
00713   *         @arg @ref LL_EXTI_LINE_20(*)
00714   *         @arg @ref LL_EXTI_LINE_21
00715   *         @arg @ref LL_EXTI_LINE_22
00716   * @note   (*): Available in some devices
00717   * @note   Please check each device line mapping for EXTI Line availability
00718   * @retval None
00719   */
00720 __STATIC_INLINE void LL_EXTI_DisableFallingTrig_0_31(uint32_t ExtiLine)
00721 {
00722   CLEAR_BIT(EXTI->FTSR, ExtiLine);
00723 }
00724 
00725 
00726 /**
00727   * @brief  Check if falling edge trigger is enabled for Lines in range 0 to 31
00728   * @rmtoll FTSR        FTx           LL_EXTI_IsEnabledFallingTrig_0_31
00729   * @param  ExtiLine This parameter can be a combination of the following values:
00730   *         @arg @ref LL_EXTI_LINE_0
00731   *         @arg @ref LL_EXTI_LINE_1
00732   *         @arg @ref LL_EXTI_LINE_2
00733   *         @arg @ref LL_EXTI_LINE_3
00734   *         @arg @ref LL_EXTI_LINE_4
00735   *         @arg @ref LL_EXTI_LINE_5
00736   *         @arg @ref LL_EXTI_LINE_6
00737   *         @arg @ref LL_EXTI_LINE_7
00738   *         @arg @ref LL_EXTI_LINE_8
00739   *         @arg @ref LL_EXTI_LINE_9
00740   *         @arg @ref LL_EXTI_LINE_10
00741   *         @arg @ref LL_EXTI_LINE_11
00742   *         @arg @ref LL_EXTI_LINE_12
00743   *         @arg @ref LL_EXTI_LINE_13
00744   *         @arg @ref LL_EXTI_LINE_14
00745   *         @arg @ref LL_EXTI_LINE_15
00746   *         @arg @ref LL_EXTI_LINE_16
00747   *         @arg @ref LL_EXTI_LINE_18
00748   *         @arg @ref LL_EXTI_LINE_19(*)
00749   *         @arg @ref LL_EXTI_LINE_20(*)
00750   *         @arg @ref LL_EXTI_LINE_21
00751   *         @arg @ref LL_EXTI_LINE_22
00752   * @note   (*): Available in some devices
00753   * @note   Please check each device line mapping for EXTI Line availability
00754   * @retval State of bit (1 or 0).
00755   */
00756 __STATIC_INLINE uint32_t LL_EXTI_IsEnabledFallingTrig_0_31(uint32_t ExtiLine)
00757 {
00758   return (READ_BIT(EXTI->FTSR, ExtiLine) == (ExtiLine));
00759 }
00760 
00761 
00762 /**
00763   * @}
00764   */
00765 
00766 /** @defgroup EXTI_LL_EF_Software_Interrupt_Management Software_Interrupt_Management
00767   * @{
00768   */
00769 
00770 /**
00771   * @brief  Generate a software Interrupt Event for Lines in range 0 to 31
00772   * @note If the interrupt is enabled on this line in the EXTI_IMR, writing a 1 to
00773   *       this bit when it is at '0' sets the corresponding pending bit in EXTI_PR
00774   *       resulting in an interrupt request generation.
00775   *       This bit is cleared by clearing the corresponding bit in the EXTI_PR
00776   *       register (by writing a 1 into the bit)
00777   * @rmtoll SWIER       SWIx          LL_EXTI_GenerateSWI_0_31
00778   * @param  ExtiLine This parameter can be a combination of the following values:
00779   *         @arg @ref LL_EXTI_LINE_0
00780   *         @arg @ref LL_EXTI_LINE_1
00781   *         @arg @ref LL_EXTI_LINE_2
00782   *         @arg @ref LL_EXTI_LINE_3
00783   *         @arg @ref LL_EXTI_LINE_4
00784   *         @arg @ref LL_EXTI_LINE_5
00785   *         @arg @ref LL_EXTI_LINE_6
00786   *         @arg @ref LL_EXTI_LINE_7
00787   *         @arg @ref LL_EXTI_LINE_8
00788   *         @arg @ref LL_EXTI_LINE_9
00789   *         @arg @ref LL_EXTI_LINE_10
00790   *         @arg @ref LL_EXTI_LINE_11
00791   *         @arg @ref LL_EXTI_LINE_12
00792   *         @arg @ref LL_EXTI_LINE_13
00793   *         @arg @ref LL_EXTI_LINE_14
00794   *         @arg @ref LL_EXTI_LINE_15
00795   *         @arg @ref LL_EXTI_LINE_16
00796   *         @arg @ref LL_EXTI_LINE_18
00797   *         @arg @ref LL_EXTI_LINE_19(*)
00798   *         @arg @ref LL_EXTI_LINE_20(*)
00799   *         @arg @ref LL_EXTI_LINE_21
00800   *         @arg @ref LL_EXTI_LINE_22
00801   * @note   (*): Available in some devices
00802   * @note   Please check each device line mapping for EXTI Line availability
00803   * @retval None
00804   */
00805 __STATIC_INLINE void LL_EXTI_GenerateSWI_0_31(uint32_t ExtiLine)
00806 {
00807   SET_BIT(EXTI->SWIER, ExtiLine);
00808 }
00809 
00810 
00811 /**
00812   * @}
00813   */
00814 
00815 /** @defgroup EXTI_LL_EF_Flag_Management Flag_Management
00816   * @{
00817   */
00818 
00819 /**
00820   * @brief  Check if the ExtLine Flag is set or not for Lines in range 0 to 31
00821   * @note This bit is set when the selected edge event arrives on the interrupt
00822   *       line. This bit is cleared by writing a 1 to the bit.
00823   * @rmtoll PR          PIFx           LL_EXTI_IsActiveFlag_0_31
00824   * @param  ExtiLine This parameter can be a combination of the following values:
00825   *         @arg @ref LL_EXTI_LINE_0
00826   *         @arg @ref LL_EXTI_LINE_1
00827   *         @arg @ref LL_EXTI_LINE_2
00828   *         @arg @ref LL_EXTI_LINE_3
00829   *         @arg @ref LL_EXTI_LINE_4
00830   *         @arg @ref LL_EXTI_LINE_5
00831   *         @arg @ref LL_EXTI_LINE_6
00832   *         @arg @ref LL_EXTI_LINE_7
00833   *         @arg @ref LL_EXTI_LINE_8
00834   *         @arg @ref LL_EXTI_LINE_9
00835   *         @arg @ref LL_EXTI_LINE_10
00836   *         @arg @ref LL_EXTI_LINE_11
00837   *         @arg @ref LL_EXTI_LINE_12
00838   *         @arg @ref LL_EXTI_LINE_13
00839   *         @arg @ref LL_EXTI_LINE_14
00840   *         @arg @ref LL_EXTI_LINE_15
00841   *         @arg @ref LL_EXTI_LINE_16
00842   *         @arg @ref LL_EXTI_LINE_18
00843   *         @arg @ref LL_EXTI_LINE_19(*)
00844   *         @arg @ref LL_EXTI_LINE_20(*)
00845   *         @arg @ref LL_EXTI_LINE_21
00846   *         @arg @ref LL_EXTI_LINE_22
00847   * @note   (*): Available in some devices
00848   * @note   Please check each device line mapping for EXTI Line availability
00849   * @retval State of bit (1 or 0).
00850   */
00851 __STATIC_INLINE uint32_t LL_EXTI_IsActiveFlag_0_31(uint32_t ExtiLine)
00852 {
00853   return (READ_BIT(EXTI->PR, ExtiLine) == (ExtiLine));
00854 }
00855 
00856 
00857 /**
00858   * @brief  Read ExtLine Combination Flag for Lines in range 0 to 31
00859   * @note This bit is set when the selected edge event arrives on the interrupt
00860   *       line. This bit is cleared by writing a 1 to the bit.
00861   * @rmtoll PR          PIFx           LL_EXTI_ReadFlag_0_31
00862   * @param  ExtiLine This parameter can be a combination of the following values:
00863   *         @arg @ref LL_EXTI_LINE_0
00864   *         @arg @ref LL_EXTI_LINE_1
00865   *         @arg @ref LL_EXTI_LINE_2
00866   *         @arg @ref LL_EXTI_LINE_3
00867   *         @arg @ref LL_EXTI_LINE_4
00868   *         @arg @ref LL_EXTI_LINE_5
00869   *         @arg @ref LL_EXTI_LINE_6
00870   *         @arg @ref LL_EXTI_LINE_7
00871   *         @arg @ref LL_EXTI_LINE_8
00872   *         @arg @ref LL_EXTI_LINE_9
00873   *         @arg @ref LL_EXTI_LINE_10
00874   *         @arg @ref LL_EXTI_LINE_11
00875   *         @arg @ref LL_EXTI_LINE_12
00876   *         @arg @ref LL_EXTI_LINE_13
00877   *         @arg @ref LL_EXTI_LINE_14
00878   *         @arg @ref LL_EXTI_LINE_15
00879   *         @arg @ref LL_EXTI_LINE_16
00880   *         @arg @ref LL_EXTI_LINE_18
00881   *         @arg @ref LL_EXTI_LINE_19(*)
00882   *         @arg @ref LL_EXTI_LINE_20(*)
00883   *         @arg @ref LL_EXTI_LINE_21
00884   *         @arg @ref LL_EXTI_LINE_22
00885   * @note   (*): Available in some devices
00886   * @note   Please check each device line mapping for EXTI Line availability
00887   * @retval @note This bit is set when the selected edge event arrives on the interrupt
00888   */
00889 __STATIC_INLINE uint32_t LL_EXTI_ReadFlag_0_31(uint32_t ExtiLine)
00890 {
00891   return (uint32_t)(READ_BIT(EXTI->PR, ExtiLine));
00892 }
00893 
00894 
00895 /**
00896   * @brief  Clear ExtLine Flags  for Lines in range 0 to 31
00897   * @note This bit is set when the selected edge event arrives on the interrupt
00898   *       line. This bit is cleared by writing a 1 to the bit.
00899   * @rmtoll PR          PIFx           LL_EXTI_ClearFlag_0_31
00900   * @param  ExtiLine This parameter can be a combination of the following values:
00901   *         @arg @ref LL_EXTI_LINE_0
00902   *         @arg @ref LL_EXTI_LINE_1
00903   *         @arg @ref LL_EXTI_LINE_2
00904   *         @arg @ref LL_EXTI_LINE_3
00905   *         @arg @ref LL_EXTI_LINE_4
00906   *         @arg @ref LL_EXTI_LINE_5
00907   *         @arg @ref LL_EXTI_LINE_6
00908   *         @arg @ref LL_EXTI_LINE_7
00909   *         @arg @ref LL_EXTI_LINE_8
00910   *         @arg @ref LL_EXTI_LINE_9
00911   *         @arg @ref LL_EXTI_LINE_10
00912   *         @arg @ref LL_EXTI_LINE_11
00913   *         @arg @ref LL_EXTI_LINE_12
00914   *         @arg @ref LL_EXTI_LINE_13
00915   *         @arg @ref LL_EXTI_LINE_14
00916   *         @arg @ref LL_EXTI_LINE_15
00917   *         @arg @ref LL_EXTI_LINE_16
00918   *         @arg @ref LL_EXTI_LINE_18
00919   *         @arg @ref LL_EXTI_LINE_19(*)
00920   *         @arg @ref LL_EXTI_LINE_20(*)
00921   *         @arg @ref LL_EXTI_LINE_21
00922   *         @arg @ref LL_EXTI_LINE_22
00923   * @note   (*): Available in some devices
00924   * @note   Please check each device line mapping for EXTI Line availability
00925   * @retval None
00926   */
00927 __STATIC_INLINE void LL_EXTI_ClearFlag_0_31(uint32_t ExtiLine)
00928 {
00929   WRITE_REG(EXTI->PR, ExtiLine);
00930 }
00931 
00932 
00933 /**
00934   * @}
00935   */
00936 
00937 #if defined(USE_FULL_LL_DRIVER)
00938 /** @defgroup EXTI_LL_EF_Init Initialization and de-initialization functions
00939   * @{
00940   */
00941 
00942 uint32_t LL_EXTI_Init(LL_EXTI_InitTypeDef *EXTI_InitStruct);
00943 uint32_t LL_EXTI_DeInit(void);
00944 void LL_EXTI_StructInit(LL_EXTI_InitTypeDef *EXTI_InitStruct);
00945 
00946 
00947 /**
00948   * @}
00949   */
00950 #endif /* USE_FULL_LL_DRIVER */
00951 
00952 /**
00953   * @}
00954   */
00955 
00956 /**
00957   * @}
00958   */
00959 
00960 #endif /* EXTI */
00961 
00962 /**
00963   * @}
00964   */
00965 
00966 #ifdef __cplusplus
00967 }
00968 #endif
00969 
00970 #endif /* __STM32F4xx_LL_EXTI_H */
00971 
00972 /************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/