Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
stm32l4xx_ll_exti.h
00001 /** 00002 ****************************************************************************** 00003 * @file stm32l4xx_ll_exti.h 00004 * @author MCD Application Team 00005 * @version V1.5.1 00006 * @date 31-May-2016 00007 * @brief Header file of EXTI LL module. 00008 ****************************************************************************** 00009 * @attention 00010 * 00011 * <h2><center>© COPYRIGHT(c) 2016 STMicroelectronics</center></h2> 00012 * 00013 * Redistribution and use in source and binary forms, with or without modification, 00014 * are permitted provided that the following conditions are met: 00015 * 1. Redistributions of source code must retain the above copyright notice, 00016 * this list of conditions and the following disclaimer. 00017 * 2. Redistributions in binary form must reproduce the above copyright notice, 00018 * this list of conditions and the following disclaimer in the documentation 00019 * and/or other materials provided with the distribution. 00020 * 3. Neither the name of STMicroelectronics nor the names of its contributors 00021 * may be used to endorse or promote products derived from this software 00022 * without specific prior written permission. 00023 * 00024 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" 00025 * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 00026 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE 00027 * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE 00028 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 00029 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR 00030 * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER 00031 * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, 00032 * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 00033 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 00034 * 00035 ****************************************************************************** 00036 */ 00037 00038 /* Define to prevent recursive inclusion -------------------------------------*/ 00039 #ifndef __STM32L4xx_LL_EXTI_H 00040 #define __STM32L4xx_LL_EXTI_H 00041 00042 #ifdef __cplusplus 00043 extern "C" { 00044 #endif 00045 00046 /* Includes ------------------------------------------------------------------*/ 00047 #include "stm32l4xx.h" 00048 00049 /** @addtogroup STM32L4xx_LL_Driver 00050 * @{ 00051 */ 00052 00053 #if defined (EXTI) 00054 00055 /** @defgroup EXTI_LL EXTI 00056 * @{ 00057 */ 00058 00059 /* Private types -------------------------------------------------------------*/ 00060 /* Private variables ---------------------------------------------------------*/ 00061 /* Private constants ---------------------------------------------------------*/ 00062 /* Private Macros ------------------------------------------------------------*/ 00063 #if defined(USE_FULL_LL_DRIVER) 00064 /** @defgroup EXTI_LL_Private_Macros EXTI Private Macros 00065 * @{ 00066 */ 00067 /** 00068 * @} 00069 */ 00070 #endif /*USE_FULL_LL_DRIVER*/ 00071 /* Exported types ------------------------------------------------------------*/ 00072 #if defined(USE_FULL_LL_DRIVER) 00073 /** @defgroup EXTI_LL_ES_INIT EXTI Exported Init structure 00074 * @{ 00075 */ 00076 typedef struct 00077 { 00078 00079 uint32_t Line_0_31; /*!< Specifies the EXTI lines to be enabled or disabled for Lines in range 0 to 31 00080 This parameter can be any combination of @ref EXTI_LL_EC_LINE */ 00081 00082 uint32_t Line_32_63; /*!< Specifies the EXTI lines to be enabled or disabled for Lines in range 32 to 63 00083 This parameter can be any combination of @ref EXTI_LL_EC_LINE */ 00084 00085 FunctionalState LineCommand; /*!< Specifies the new state of the selected EXTI lines. 00086 This parameter can be set either to ENABLE or DISABLE */ 00087 00088 uint8_t Mode; /*!< Specifies the mode for the EXTI lines. 00089 This parameter can be a value of @ref EXTI_LL_EC_MODE. */ 00090 00091 uint8_t Trigger; /*!< Specifies the trigger signal active edge for the EXTI lines. 00092 This parameter can be a value of @ref EXTI_LL_EC_TRIGGER. */ 00093 } LL_EXTI_InitTypeDef; 00094 00095 /** 00096 * @} 00097 */ 00098 #endif /*USE_FULL_LL_DRIVER*/ 00099 00100 /* Exported constants --------------------------------------------------------*/ 00101 /** @defgroup EXTI_LL_Exported_Constants EXTI Exported Constants 00102 * @{ 00103 */ 00104 00105 /** @defgroup EXTI_LL_EC_LINE LINE 00106 * @{ 00107 */ 00108 #define LL_EXTI_LINE_0 EXTI_IMR1_IM0 /*!< Extended line 0 */ 00109 #define LL_EXTI_LINE_1 EXTI_IMR1_IM1 /*!< Extended line 1 */ 00110 #define LL_EXTI_LINE_2 EXTI_IMR1_IM2 /*!< Extended line 2 */ 00111 #define LL_EXTI_LINE_3 EXTI_IMR1_IM3 /*!< Extended line 3 */ 00112 #define LL_EXTI_LINE_4 EXTI_IMR1_IM4 /*!< Extended line 4 */ 00113 #define LL_EXTI_LINE_5 EXTI_IMR1_IM5 /*!< Extended line 5 */ 00114 #define LL_EXTI_LINE_6 EXTI_IMR1_IM6 /*!< Extended line 6 */ 00115 #define LL_EXTI_LINE_7 EXTI_IMR1_IM7 /*!< Extended line 7 */ 00116 #define LL_EXTI_LINE_8 EXTI_IMR1_IM8 /*!< Extended line 8 */ 00117 #define LL_EXTI_LINE_9 EXTI_IMR1_IM9 /*!< Extended line 9 */ 00118 #define LL_EXTI_LINE_10 EXTI_IMR1_IM10 /*!< Extended line 10 */ 00119 #define LL_EXTI_LINE_11 EXTI_IMR1_IM11 /*!< Extended line 11 */ 00120 #define LL_EXTI_LINE_12 EXTI_IMR1_IM12 /*!< Extended line 12 */ 00121 #define LL_EXTI_LINE_13 EXTI_IMR1_IM13 /*!< Extended line 13 */ 00122 #define LL_EXTI_LINE_14 EXTI_IMR1_IM14 /*!< Extended line 14 */ 00123 #define LL_EXTI_LINE_15 EXTI_IMR1_IM15 /*!< Extended line 15 */ 00124 #if defined(EXTI_IMR1_IM16) 00125 #define LL_EXTI_LINE_16 EXTI_IMR1_IM16 /*!< Extended line 16 */ 00126 #endif 00127 #define LL_EXTI_LINE_17 EXTI_IMR1_IM17 /*!< Extended line 17 */ 00128 #define LL_EXTI_LINE_18 EXTI_IMR1_IM18 /*!< Extended line 18 */ 00129 #define LL_EXTI_LINE_19 EXTI_IMR1_IM19 /*!< Extended line 19 */ 00130 #if defined(EXTI_IMR1_IM20) 00131 #define LL_EXTI_LINE_20 EXTI_IMR1_IM20 /*!< Extended line 20 */ 00132 #endif 00133 #if defined(EXTI_IMR1_IM21) 00134 #define LL_EXTI_LINE_21 EXTI_IMR1_IM21 /*!< Extended line 21 */ 00135 #endif 00136 #if defined(EXTI_IMR1_IM22) 00137 #define LL_EXTI_LINE_22 EXTI_IMR1_IM22 /*!< Extended line 22 */ 00138 #endif 00139 #define LL_EXTI_LINE_23 EXTI_IMR1_IM23 /*!< Extended line 23 */ 00140 #if defined(EXTI_IMR1_IM24) 00141 #define LL_EXTI_LINE_24 EXTI_IMR1_IM24 /*!< Extended line 24 */ 00142 #endif 00143 #if defined(EXTI_IMR1_IM25) 00144 #define LL_EXTI_LINE_25 EXTI_IMR1_IM25 /*!< Extended line 25 */ 00145 #endif 00146 #if defined(EXTI_IMR1_IM26) 00147 #define LL_EXTI_LINE_26 EXTI_IMR1_IM26 /*!< Extended line 26 */ 00148 #endif 00149 #if defined(EXTI_IMR1_IM27) 00150 #define LL_EXTI_LINE_27 EXTI_IMR1_IM27 /*!< Extended line 27 */ 00151 #endif 00152 #if defined(EXTI_IMR1_IM28) 00153 #define LL_EXTI_LINE_28 EXTI_IMR1_IM28 /*!< Extended line 28 */ 00154 #endif 00155 #if defined(EXTI_IMR1_IM29) 00156 #define LL_EXTI_LINE_29 EXTI_IMR1_IM29 /*!< Extended line 29 */ 00157 #endif 00158 #if defined(EXTI_IMR1_IM30) 00159 #define LL_EXTI_LINE_30 EXTI_IMR1_IM30 /*!< Extended line 30 */ 00160 #endif 00161 #if defined(EXTI_IMR1_IM31) 00162 #define LL_EXTI_LINE_31 EXTI_IMR1_IM31 /*!< Extended line 31 */ 00163 #endif 00164 #define LL_EXTI_LINE_ALL_0_31 EXTI_IMR1_IM /*!< All Extended line not reserved*/ 00165 00166 #define LL_EXTI_LINE_32 EXTI_IMR2_IM32 /*!< Extended line 32 */ 00167 #define LL_EXTI_LINE_33 EXTI_IMR2_IM33 /*!< Extended line 33 */ 00168 #define LL_EXTI_LINE_34 EXTI_IMR2_IM34 /*!< Extended line 34 */ 00169 #define LL_EXTI_LINE_35 EXTI_IMR2_IM35 /*!< Extended line 35 */ 00170 #define LL_EXTI_LINE_36 EXTI_IMR2_IM36 /*!< Extended line 36 */ 00171 #define LL_EXTI_LINE_37 EXTI_IMR2_IM37 /*!< Extended line 37 */ 00172 #define LL_EXTI_LINE_38 EXTI_IMR2_IM38 /*!< Extended line 38 */ 00173 #define LL_EXTI_LINE_39 EXTI_IMR2_IM39 /*!< Extended line 39 */ 00174 #define LL_EXTI_LINE_ALL_32_63 EXTI_IMR2_IM /*!< All Extended line not reserved*/ 00175 00176 #define LL_EXTI_LINE_ALL ((uint32_t)0xFFFFFFFFU) /*!< All Extended line */ 00177 00178 #if defined(USE_FULL_LL_DRIVER) 00179 #define LL_EXTI_LINE_NONE ((uint32_t)0x00000000U) /*!< None Extended line */ 00180 #endif /*USE_FULL_LL_DRIVER*/ 00181 00182 /** 00183 * @} 00184 */ 00185 #if defined(USE_FULL_LL_DRIVER) 00186 00187 /** @defgroup EXTI_LL_EC_MODE Mode 00188 * @{ 00189 */ 00190 #define LL_EXTI_MODE_IT ((uint8_t)0x00U) /*!< Interrupt Mode */ 00191 #define LL_EXTI_MODE_EVENT ((uint8_t)0x01U) /*!< Event Mode */ 00192 #define LL_EXTI_MODE_IT_EVENT ((uint8_t)0x02U) /*!< Interrupt & Event Mode */ 00193 /** 00194 * @} 00195 */ 00196 00197 /** @defgroup EXTI_LL_EC_TRIGGER Edge Trigger 00198 * @{ 00199 */ 00200 #define LL_EXTI_TRIGGER_NONE ((uint8_t)0x00U) /*!< No Trigger Mode */ 00201 #define LL_EXTI_TRIGGER_RISING ((uint8_t)0x01U) /*!< Trigger Rising Mode */ 00202 #define LL_EXTI_TRIGGER_FALLING ((uint8_t)0x02U) /*!< Trigger Falling Mode */ 00203 #define LL_EXTI_TRIGGER_RISING_FALLING ((uint8_t)0x03U) /*!< Trigger Rising & Falling Mode */ 00204 00205 /** 00206 * @} 00207 */ 00208 00209 00210 #endif /*USE_FULL_LL_DRIVER*/ 00211 00212 00213 /** 00214 * @} 00215 */ 00216 00217 /* Exported macro ------------------------------------------------------------*/ 00218 /** @defgroup EXTI_LL_Exported_Macros EXTI Exported Macros 00219 * @{ 00220 */ 00221 00222 /** @defgroup EXTI_LL_EM_WRITE_READ Common Write and read registers Macros 00223 * @{ 00224 */ 00225 00226 /** 00227 * @brief Write a value in EXTI register 00228 * @param __REG__ Register to be written 00229 * @param __VALUE__ Value to be written in the register 00230 * @retval None 00231 */ 00232 #define LL_EXTI_WriteReg(__REG__, __VALUE__) WRITE_REG(EXTI->__REG__, (__VALUE__)) 00233 00234 /** 00235 * @brief Read a value in EXTI register 00236 * @param __REG__ Register to be read 00237 * @retval Register value 00238 */ 00239 #define LL_EXTI_ReadReg(__REG__) READ_REG(EXTI->__REG__) 00240 /** 00241 * @} 00242 */ 00243 00244 00245 /** 00246 * @} 00247 */ 00248 00249 00250 00251 /* Exported functions --------------------------------------------------------*/ 00252 /** @defgroup EXTI_LL_Exported_Functions EXTI Exported Functions 00253 * @{ 00254 */ 00255 /** @defgroup EXTI_LL_EF_IT_Management IT_Management 00256 * @{ 00257 */ 00258 00259 /** 00260 * @brief Enable ExtiLine Interrupt request for Lines in range 0 to 31 00261 * @note The reset value for the direct or internal lines (see RM) 00262 * is set to 1 in order to enable the interrupt by default. 00263 * Bits are set automatically at Power on. 00264 * @rmtoll IMR1 IMx LL_EXTI_EnableIT_0_31 00265 * @param ExtiLine This parameter can be one of the following values: 00266 * @arg @ref LL_EXTI_LINE_0 00267 * @arg @ref LL_EXTI_LINE_1 00268 * @arg @ref LL_EXTI_LINE_2 00269 * @arg @ref LL_EXTI_LINE_3 00270 * @arg @ref LL_EXTI_LINE_4 00271 * @arg @ref LL_EXTI_LINE_5 00272 * @arg @ref LL_EXTI_LINE_6 00273 * @arg @ref LL_EXTI_LINE_7 00274 * @arg @ref LL_EXTI_LINE_8 00275 * @arg @ref LL_EXTI_LINE_9 00276 * @arg @ref LL_EXTI_LINE_10 00277 * @arg @ref LL_EXTI_LINE_11 00278 * @arg @ref LL_EXTI_LINE_12 00279 * @arg @ref LL_EXTI_LINE_13 00280 * @arg @ref LL_EXTI_LINE_14 00281 * @arg @ref LL_EXTI_LINE_15 00282 * @arg @ref LL_EXTI_LINE_16 00283 * @arg @ref LL_EXTI_LINE_17 00284 * @arg @ref LL_EXTI_LINE_18 00285 * @arg @ref LL_EXTI_LINE_19 00286 * @arg @ref LL_EXTI_LINE_20 00287 * @arg @ref LL_EXTI_LINE_21 00288 * @arg @ref LL_EXTI_LINE_22 00289 * @arg @ref LL_EXTI_LINE_23 00290 * @arg @ref LL_EXTI_LINE_24 00291 * @arg @ref LL_EXTI_LINE_25 00292 * @arg @ref LL_EXTI_LINE_26 00293 * @arg @ref LL_EXTI_LINE_27 00294 * @arg @ref LL_EXTI_LINE_28 00295 * @arg @ref LL_EXTI_LINE_29 00296 * @arg @ref LL_EXTI_LINE_30 00297 * @arg @ref LL_EXTI_LINE_31 00298 * @arg @ref LL_EXTI_LINE_ALL_0_31 00299 * @note Please check each device line mapping for EXTI Line availability 00300 * @retval None 00301 */ 00302 __STATIC_INLINE void LL_EXTI_EnableIT_0_31(uint32_t ExtiLine) 00303 { 00304 SET_BIT(EXTI->IMR1, ExtiLine); 00305 } 00306 /** 00307 * @brief Enable ExtiLine Interrupt request for Lines in range 32 to 63 00308 * @note The reset value for the direct lines (lines from 32 to 34, line 00309 * 39) is set to 1 in order to enable the interrupt by default. 00310 * Bits are set automatically at Power on. 00311 * @rmtoll IMR2 IMx LL_EXTI_EnableIT_32_63 00312 * @param ExtiLine This parameter can be one of the following values: 00313 * @arg @ref LL_EXTI_LINE_32 00314 * @arg @ref LL_EXTI_LINE_33 00315 * @arg @ref LL_EXTI_LINE_34 00316 * @arg @ref LL_EXTI_LINE_35 00317 * @arg @ref LL_EXTI_LINE_36 00318 * @arg @ref LL_EXTI_LINE_37 00319 * @arg @ref LL_EXTI_LINE_38 00320 * @arg @ref LL_EXTI_LINE_39 00321 * @arg @ref LL_EXTI_LINE_ALL_32_63 00322 * @retval None 00323 */ 00324 __STATIC_INLINE void LL_EXTI_EnableIT_32_63(uint32_t ExtiLine) 00325 { 00326 SET_BIT(EXTI->IMR2, ExtiLine); 00327 } 00328 00329 /** 00330 * @brief Disable ExtiLine Interrupt request for Lines in range 0 to 31 00331 * @note The reset value for the direct or internal lines (see RM) 00332 * is set to 1 in order to enable the interrupt by default. 00333 * Bits are set automatically at Power on. 00334 * @rmtoll IMR1 IMx LL_EXTI_DisableIT_0_31 00335 * @param ExtiLine This parameter can be one of the following values: 00336 * @arg @ref LL_EXTI_LINE_0 00337 * @arg @ref LL_EXTI_LINE_1 00338 * @arg @ref LL_EXTI_LINE_2 00339 * @arg @ref LL_EXTI_LINE_3 00340 * @arg @ref LL_EXTI_LINE_4 00341 * @arg @ref LL_EXTI_LINE_5 00342 * @arg @ref LL_EXTI_LINE_6 00343 * @arg @ref LL_EXTI_LINE_7 00344 * @arg @ref LL_EXTI_LINE_8 00345 * @arg @ref LL_EXTI_LINE_9 00346 * @arg @ref LL_EXTI_LINE_10 00347 * @arg @ref LL_EXTI_LINE_11 00348 * @arg @ref LL_EXTI_LINE_12 00349 * @arg @ref LL_EXTI_LINE_13 00350 * @arg @ref LL_EXTI_LINE_14 00351 * @arg @ref LL_EXTI_LINE_15 00352 * @arg @ref LL_EXTI_LINE_16 00353 * @arg @ref LL_EXTI_LINE_17 00354 * @arg @ref LL_EXTI_LINE_18 00355 * @arg @ref LL_EXTI_LINE_19 00356 * @arg @ref LL_EXTI_LINE_20 00357 * @arg @ref LL_EXTI_LINE_21 00358 * @arg @ref LL_EXTI_LINE_22 00359 * @arg @ref LL_EXTI_LINE_23 00360 * @arg @ref LL_EXTI_LINE_24 00361 * @arg @ref LL_EXTI_LINE_25 00362 * @arg @ref LL_EXTI_LINE_26 00363 * @arg @ref LL_EXTI_LINE_27 00364 * @arg @ref LL_EXTI_LINE_28 00365 * @arg @ref LL_EXTI_LINE_29 00366 * @arg @ref LL_EXTI_LINE_30 00367 * @arg @ref LL_EXTI_LINE_31 00368 * @arg @ref LL_EXTI_LINE_ALL_0_31 00369 * @note Please check each device line mapping for EXTI Line availability 00370 * @retval None 00371 */ 00372 __STATIC_INLINE void LL_EXTI_DisableIT_0_31(uint32_t ExtiLine) 00373 { 00374 CLEAR_BIT(EXTI->IMR1, ExtiLine); 00375 } 00376 00377 /** 00378 * @brief Disable ExtiLine Interrupt request for Lines in range 32 to 63 00379 * @note The reset value for the direct lines (lines from 32 to 34, line 00380 * 39) is set to 1 in order to enable the interrupt by default. 00381 * Bits are set automatically at Power on. 00382 * @rmtoll IMR2 IMx LL_EXTI_DisableIT_32_63 00383 * @param ExtiLine This parameter can be one of the following values: 00384 * @arg @ref LL_EXTI_LINE_32 00385 * @arg @ref LL_EXTI_LINE_33 00386 * @arg @ref LL_EXTI_LINE_34 00387 * @arg @ref LL_EXTI_LINE_35 00388 * @arg @ref LL_EXTI_LINE_36 00389 * @arg @ref LL_EXTI_LINE_37 00390 * @arg @ref LL_EXTI_LINE_38 00391 * @arg @ref LL_EXTI_LINE_39 00392 * @arg @ref LL_EXTI_LINE_ALL_32_63 00393 * @retval None 00394 */ 00395 __STATIC_INLINE void LL_EXTI_DisableIT_32_63(uint32_t ExtiLine) 00396 { 00397 CLEAR_BIT(EXTI->IMR2, ExtiLine); 00398 } 00399 00400 /** 00401 * @brief Indicate if ExtiLine Interrupt request is enabled for Lines in range 0 to 31 00402 * @note The reset value for the direct or internal lines (see RM) 00403 * is set to 1 in order to enable the interrupt by default. 00404 * Bits are set automatically at Power on. 00405 * @rmtoll IMR1 IMx LL_EXTI_IsEnabledIT_0_31 00406 * @param ExtiLine This parameter can be one of the following values: 00407 * @arg @ref LL_EXTI_LINE_0 00408 * @arg @ref LL_EXTI_LINE_1 00409 * @arg @ref LL_EXTI_LINE_2 00410 * @arg @ref LL_EXTI_LINE_3 00411 * @arg @ref LL_EXTI_LINE_4 00412 * @arg @ref LL_EXTI_LINE_5 00413 * @arg @ref LL_EXTI_LINE_6 00414 * @arg @ref LL_EXTI_LINE_7 00415 * @arg @ref LL_EXTI_LINE_8 00416 * @arg @ref LL_EXTI_LINE_9 00417 * @arg @ref LL_EXTI_LINE_10 00418 * @arg @ref LL_EXTI_LINE_11 00419 * @arg @ref LL_EXTI_LINE_12 00420 * @arg @ref LL_EXTI_LINE_13 00421 * @arg @ref LL_EXTI_LINE_14 00422 * @arg @ref LL_EXTI_LINE_15 00423 * @arg @ref LL_EXTI_LINE_16 00424 * @arg @ref LL_EXTI_LINE_17 00425 * @arg @ref LL_EXTI_LINE_18 00426 * @arg @ref LL_EXTI_LINE_19 00427 * @arg @ref LL_EXTI_LINE_20 00428 * @arg @ref LL_EXTI_LINE_21 00429 * @arg @ref LL_EXTI_LINE_22 00430 * @arg @ref LL_EXTI_LINE_23 00431 * @arg @ref LL_EXTI_LINE_24 00432 * @arg @ref LL_EXTI_LINE_25 00433 * @arg @ref LL_EXTI_LINE_26 00434 * @arg @ref LL_EXTI_LINE_27 00435 * @arg @ref LL_EXTI_LINE_28 00436 * @arg @ref LL_EXTI_LINE_29 00437 * @arg @ref LL_EXTI_LINE_30 00438 * @arg @ref LL_EXTI_LINE_31 00439 * @arg @ref LL_EXTI_LINE_ALL_0_31 00440 * @note Please check each device line mapping for EXTI Line availability 00441 * @retval State of bit (1 or 0). 00442 */ 00443 __STATIC_INLINE uint32_t LL_EXTI_IsEnabledIT_0_31(uint32_t ExtiLine) 00444 { 00445 return (READ_BIT(EXTI->IMR1, ExtiLine) == (ExtiLine)); 00446 } 00447 00448 /** 00449 * @brief Indicate if ExtiLine Interrupt request is enabled for Lines in range 32 to 63 00450 * @note The reset value for the direct lines (lines from 32 to 34, line 00451 * 39) is set to 1 in order to enable the interrupt by default. 00452 * Bits are set automatically at Power on. 00453 * @rmtoll IMR2 IMx LL_EXTI_IsEnabledIT_32_63 00454 * @param ExtiLine This parameter can be one of the following values: 00455 * @arg @ref LL_EXTI_LINE_32 00456 * @arg @ref LL_EXTI_LINE_33 00457 * @arg @ref LL_EXTI_LINE_34 00458 * @arg @ref LL_EXTI_LINE_35 00459 * @arg @ref LL_EXTI_LINE_36 00460 * @arg @ref LL_EXTI_LINE_37 00461 * @arg @ref LL_EXTI_LINE_38 00462 * @arg @ref LL_EXTI_LINE_39 00463 * @arg @ref LL_EXTI_LINE_ALL_32_63 00464 * @retval State of bit (1 or 0). 00465 */ 00466 __STATIC_INLINE uint32_t LL_EXTI_IsEnabledIT_32_63(uint32_t ExtiLine) 00467 { 00468 return (READ_BIT(EXTI->IMR2, ExtiLine) == (ExtiLine)); 00469 } 00470 00471 /** 00472 * @} 00473 */ 00474 00475 /** @defgroup EXTI_LL_EF_Event_Management Event_Management 00476 * @{ 00477 */ 00478 00479 /** 00480 * @brief Enable ExtiLine Event request for Lines in range 0 to 31 00481 * @rmtoll EMR1 EMx LL_EXTI_EnableEvent_0_31 00482 * @param ExtiLine This parameter can be one of the following values: 00483 * @arg @ref LL_EXTI_LINE_0 00484 * @arg @ref LL_EXTI_LINE_1 00485 * @arg @ref LL_EXTI_LINE_2 00486 * @arg @ref LL_EXTI_LINE_3 00487 * @arg @ref LL_EXTI_LINE_4 00488 * @arg @ref LL_EXTI_LINE_5 00489 * @arg @ref LL_EXTI_LINE_6 00490 * @arg @ref LL_EXTI_LINE_7 00491 * @arg @ref LL_EXTI_LINE_8 00492 * @arg @ref LL_EXTI_LINE_9 00493 * @arg @ref LL_EXTI_LINE_10 00494 * @arg @ref LL_EXTI_LINE_11 00495 * @arg @ref LL_EXTI_LINE_12 00496 * @arg @ref LL_EXTI_LINE_13 00497 * @arg @ref LL_EXTI_LINE_14 00498 * @arg @ref LL_EXTI_LINE_15 00499 * @arg @ref LL_EXTI_LINE_16 00500 * @arg @ref LL_EXTI_LINE_17 00501 * @arg @ref LL_EXTI_LINE_18 00502 * @arg @ref LL_EXTI_LINE_19 00503 * @arg @ref LL_EXTI_LINE_20 00504 * @arg @ref LL_EXTI_LINE_21 00505 * @arg @ref LL_EXTI_LINE_22 00506 * @arg @ref LL_EXTI_LINE_23 00507 * @arg @ref LL_EXTI_LINE_24 00508 * @arg @ref LL_EXTI_LINE_25 00509 * @arg @ref LL_EXTI_LINE_26 00510 * @arg @ref LL_EXTI_LINE_27 00511 * @arg @ref LL_EXTI_LINE_28 00512 * @arg @ref LL_EXTI_LINE_29 00513 * @arg @ref LL_EXTI_LINE_30 00514 * @arg @ref LL_EXTI_LINE_31 00515 * @arg @ref LL_EXTI_LINE_ALL_0_31 00516 * @note Please check each device line mapping for EXTI Line availability 00517 * @retval None 00518 */ 00519 __STATIC_INLINE void LL_EXTI_EnableEvent_0_31(uint32_t ExtiLine) 00520 { 00521 SET_BIT(EXTI->EMR1, ExtiLine); 00522 00523 } 00524 00525 /** 00526 * @brief Enable ExtiLine Event request for Lines in range 32 to 63 00527 * @rmtoll EMR2 EMx LL_EXTI_EnableEvent_32_63 00528 * @param ExtiLine This parameter can be a combination of the following values: 00529 * @arg @ref LL_EXTI_LINE_32 00530 * @arg @ref LL_EXTI_LINE_33 00531 * @arg @ref LL_EXTI_LINE_34 00532 * @arg @ref LL_EXTI_LINE_35 00533 * @arg @ref LL_EXTI_LINE_36 00534 * @arg @ref LL_EXTI_LINE_37 00535 * @arg @ref LL_EXTI_LINE_38 00536 * @arg @ref LL_EXTI_LINE_39 00537 * @arg @ref LL_EXTI_LINE_ALL_32_63 00538 * @retval None 00539 */ 00540 __STATIC_INLINE void LL_EXTI_EnableEvent_32_63(uint32_t ExtiLine) 00541 { 00542 SET_BIT(EXTI->EMR2, ExtiLine); 00543 } 00544 00545 /** 00546 * @brief Disable ExtiLine Event request for Lines in range 0 to 31 00547 * @rmtoll EMR1 EMx LL_EXTI_DisableEvent_0_31 00548 * @param ExtiLine This parameter can be one of the following values: 00549 * @arg @ref LL_EXTI_LINE_0 00550 * @arg @ref LL_EXTI_LINE_1 00551 * @arg @ref LL_EXTI_LINE_2 00552 * @arg @ref LL_EXTI_LINE_3 00553 * @arg @ref LL_EXTI_LINE_4 00554 * @arg @ref LL_EXTI_LINE_5 00555 * @arg @ref LL_EXTI_LINE_6 00556 * @arg @ref LL_EXTI_LINE_7 00557 * @arg @ref LL_EXTI_LINE_8 00558 * @arg @ref LL_EXTI_LINE_9 00559 * @arg @ref LL_EXTI_LINE_10 00560 * @arg @ref LL_EXTI_LINE_11 00561 * @arg @ref LL_EXTI_LINE_12 00562 * @arg @ref LL_EXTI_LINE_13 00563 * @arg @ref LL_EXTI_LINE_14 00564 * @arg @ref LL_EXTI_LINE_15 00565 * @arg @ref LL_EXTI_LINE_16 00566 * @arg @ref LL_EXTI_LINE_17 00567 * @arg @ref LL_EXTI_LINE_18 00568 * @arg @ref LL_EXTI_LINE_19 00569 * @arg @ref LL_EXTI_LINE_20 00570 * @arg @ref LL_EXTI_LINE_21 00571 * @arg @ref LL_EXTI_LINE_22 00572 * @arg @ref LL_EXTI_LINE_23 00573 * @arg @ref LL_EXTI_LINE_24 00574 * @arg @ref LL_EXTI_LINE_25 00575 * @arg @ref LL_EXTI_LINE_26 00576 * @arg @ref LL_EXTI_LINE_27 00577 * @arg @ref LL_EXTI_LINE_28 00578 * @arg @ref LL_EXTI_LINE_29 00579 * @arg @ref LL_EXTI_LINE_30 00580 * @arg @ref LL_EXTI_LINE_31 00581 * @arg @ref LL_EXTI_LINE_ALL_0_31 00582 * @note Please check each device line mapping for EXTI Line availability 00583 * @retval None 00584 */ 00585 __STATIC_INLINE void LL_EXTI_DisableEvent_0_31(uint32_t ExtiLine) 00586 { 00587 CLEAR_BIT(EXTI->EMR1, ExtiLine); 00588 } 00589 00590 /** 00591 * @brief Disable ExtiLine Event request for Lines in range 32 to 63 00592 * @rmtoll EMR2 EMx LL_EXTI_DisableEvent_32_63 00593 * @param ExtiLine This parameter can be a combination of the following values: 00594 * @arg @ref LL_EXTI_LINE_32 00595 * @arg @ref LL_EXTI_LINE_33 00596 * @arg @ref LL_EXTI_LINE_34 00597 * @arg @ref LL_EXTI_LINE_35 00598 * @arg @ref LL_EXTI_LINE_36 00599 * @arg @ref LL_EXTI_LINE_37 00600 * @arg @ref LL_EXTI_LINE_38 00601 * @arg @ref LL_EXTI_LINE_39 00602 * @arg @ref LL_EXTI_LINE_ALL_32_63 00603 * @retval None 00604 */ 00605 __STATIC_INLINE void LL_EXTI_DisableEvent_32_63(uint32_t ExtiLine) 00606 { 00607 CLEAR_BIT(EXTI->EMR2, ExtiLine); 00608 } 00609 00610 /** 00611 * @brief Indicate if ExtiLine Event request is enabled for Lines in range 0 to 31 00612 * @rmtoll EMR1 EMx LL_EXTI_IsEnabledEvent_0_31 00613 * @param ExtiLine This parameter can be one of the following values: 00614 * @arg @ref LL_EXTI_LINE_0 00615 * @arg @ref LL_EXTI_LINE_1 00616 * @arg @ref LL_EXTI_LINE_2 00617 * @arg @ref LL_EXTI_LINE_3 00618 * @arg @ref LL_EXTI_LINE_4 00619 * @arg @ref LL_EXTI_LINE_5 00620 * @arg @ref LL_EXTI_LINE_6 00621 * @arg @ref LL_EXTI_LINE_7 00622 * @arg @ref LL_EXTI_LINE_8 00623 * @arg @ref LL_EXTI_LINE_9 00624 * @arg @ref LL_EXTI_LINE_10 00625 * @arg @ref LL_EXTI_LINE_11 00626 * @arg @ref LL_EXTI_LINE_12 00627 * @arg @ref LL_EXTI_LINE_13 00628 * @arg @ref LL_EXTI_LINE_14 00629 * @arg @ref LL_EXTI_LINE_15 00630 * @arg @ref LL_EXTI_LINE_16 00631 * @arg @ref LL_EXTI_LINE_17 00632 * @arg @ref LL_EXTI_LINE_18 00633 * @arg @ref LL_EXTI_LINE_19 00634 * @arg @ref LL_EXTI_LINE_20 00635 * @arg @ref LL_EXTI_LINE_21 00636 * @arg @ref LL_EXTI_LINE_22 00637 * @arg @ref LL_EXTI_LINE_23 00638 * @arg @ref LL_EXTI_LINE_24 00639 * @arg @ref LL_EXTI_LINE_25 00640 * @arg @ref LL_EXTI_LINE_26 00641 * @arg @ref LL_EXTI_LINE_27 00642 * @arg @ref LL_EXTI_LINE_28 00643 * @arg @ref LL_EXTI_LINE_29 00644 * @arg @ref LL_EXTI_LINE_30 00645 * @arg @ref LL_EXTI_LINE_31 00646 * @arg @ref LL_EXTI_LINE_ALL_0_31 00647 * @note Please check each device line mapping for EXTI Line availability 00648 * @retval State of bit (1 or 0). 00649 */ 00650 __STATIC_INLINE uint32_t LL_EXTI_IsEnabledEvent_0_31(uint32_t ExtiLine) 00651 { 00652 return (READ_BIT(EXTI->EMR1, ExtiLine) == (ExtiLine)); 00653 00654 } 00655 00656 /** 00657 * @brief Indicate if ExtiLine Event request is enabled for Lines in range 32 to 63 00658 * @rmtoll EMR2 EMx LL_EXTI_IsEnabledEvent_32_63 00659 * @param ExtiLine This parameter can be a combination of the following values: 00660 * @arg @ref LL_EXTI_LINE_32 00661 * @arg @ref LL_EXTI_LINE_33 00662 * @arg @ref LL_EXTI_LINE_34 00663 * @arg @ref LL_EXTI_LINE_35 00664 * @arg @ref LL_EXTI_LINE_36 00665 * @arg @ref LL_EXTI_LINE_37 00666 * @arg @ref LL_EXTI_LINE_38 00667 * @arg @ref LL_EXTI_LINE_39 00668 * @arg @ref LL_EXTI_LINE_ALL_32_63 00669 * @retval State of bit (1 or 0). 00670 */ 00671 __STATIC_INLINE uint32_t LL_EXTI_IsEnabledEvent_32_63(uint32_t ExtiLine) 00672 { 00673 return (READ_BIT(EXTI->EMR2, ExtiLine) == (ExtiLine)); 00674 } 00675 00676 /** 00677 * @} 00678 */ 00679 00680 /** @defgroup EXTI_LL_EF_Rising_Trigger_Management Rising_Trigger_Management 00681 * @{ 00682 */ 00683 00684 /** 00685 * @brief Enable ExtiLine Rising 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 rising edge on a configurable interrupt 00688 * line occurs during a write operation in the EXTI_RTSR register, the 00689 * pending bit is not set. 00690 * Rising and falling edge triggers can be set for 00691 * the same interrupt line. In this case, both generate a trigger 00692 * condition. 00693 * @rmtoll RTSR1 RTx LL_EXTI_EnableRisingTrig_0_31 00694 * @param ExtiLine This parameter can be a combination of the following values: 00695 * @arg @ref LL_EXTI_LINE_0 00696 * @arg @ref LL_EXTI_LINE_1 00697 * @arg @ref LL_EXTI_LINE_2 00698 * @arg @ref LL_EXTI_LINE_3 00699 * @arg @ref LL_EXTI_LINE_4 00700 * @arg @ref LL_EXTI_LINE_5 00701 * @arg @ref LL_EXTI_LINE_6 00702 * @arg @ref LL_EXTI_LINE_7 00703 * @arg @ref LL_EXTI_LINE_8 00704 * @arg @ref LL_EXTI_LINE_9 00705 * @arg @ref LL_EXTI_LINE_10 00706 * @arg @ref LL_EXTI_LINE_11 00707 * @arg @ref LL_EXTI_LINE_12 00708 * @arg @ref LL_EXTI_LINE_13 00709 * @arg @ref LL_EXTI_LINE_14 00710 * @arg @ref LL_EXTI_LINE_15 00711 * @arg @ref LL_EXTI_LINE_16 00712 * @arg @ref LL_EXTI_LINE_18 00713 * @arg @ref LL_EXTI_LINE_19 00714 * @arg @ref LL_EXTI_LINE_20 00715 * @arg @ref LL_EXTI_LINE_21 00716 * @arg @ref LL_EXTI_LINE_22 00717 * @arg @ref LL_EXTI_LINE_29 00718 * @arg @ref LL_EXTI_LINE_30 00719 * @arg @ref LL_EXTI_LINE_31 00720 * @note Please check each device line mapping for EXTI Line availability 00721 * @retval None 00722 */ 00723 __STATIC_INLINE void LL_EXTI_EnableRisingTrig_0_31(uint32_t ExtiLine) 00724 { 00725 SET_BIT(EXTI->RTSR1, ExtiLine); 00726 00727 } 00728 00729 /** 00730 * @brief Enable ExtiLine Rising Edge Trigger for Lines in range 32 to 63 00731 * @note The configurable wakeup lines are edge-triggered. No glitch must be 00732 * generated on these lines. If a rising edge on a configurable interrupt 00733 * line occurs during a write operation in the EXTI_RTSR register, the 00734 * pending bit is not set.Rising and falling edge triggers can be set for 00735 * the same interrupt line. In this case, both generate a trigger 00736 * condition. 00737 * @rmtoll RTSR2 RTx LL_EXTI_EnableRisingTrig_32_63 00738 * @param ExtiLine This parameter can be a combination of the following values: 00739 * @arg @ref LL_EXTI_LINE_35 00740 * @arg @ref LL_EXTI_LINE_36 00741 * @arg @ref LL_EXTI_LINE_37 00742 * @arg @ref LL_EXTI_LINE_38 00743 * @retval None 00744 */ 00745 __STATIC_INLINE void LL_EXTI_EnableRisingTrig_32_63(uint32_t ExtiLine) 00746 { 00747 SET_BIT(EXTI->RTSR2, ExtiLine); 00748 } 00749 00750 /** 00751 * @brief Disable ExtiLine Rising Edge Trigger for Lines in range 0 to 31 00752 * @note The configurable wakeup lines are edge-triggered. No glitch must be 00753 * generated on these lines. If a rising edge on a configurable interrupt 00754 * line occurs during a write operation in the EXTI_RTSR register, the 00755 * pending bit is not set. 00756 * Rising and falling edge triggers can be set for 00757 * the same interrupt line. In this case, both generate a trigger 00758 * condition. 00759 * @rmtoll RTSR1 RTx LL_EXTI_DisableRisingTrig_0_31 00760 * @param ExtiLine This parameter can be a combination of the following values: 00761 * @arg @ref LL_EXTI_LINE_0 00762 * @arg @ref LL_EXTI_LINE_1 00763 * @arg @ref LL_EXTI_LINE_2 00764 * @arg @ref LL_EXTI_LINE_3 00765 * @arg @ref LL_EXTI_LINE_4 00766 * @arg @ref LL_EXTI_LINE_5 00767 * @arg @ref LL_EXTI_LINE_6 00768 * @arg @ref LL_EXTI_LINE_7 00769 * @arg @ref LL_EXTI_LINE_8 00770 * @arg @ref LL_EXTI_LINE_9 00771 * @arg @ref LL_EXTI_LINE_10 00772 * @arg @ref LL_EXTI_LINE_11 00773 * @arg @ref LL_EXTI_LINE_12 00774 * @arg @ref LL_EXTI_LINE_13 00775 * @arg @ref LL_EXTI_LINE_14 00776 * @arg @ref LL_EXTI_LINE_15 00777 * @arg @ref LL_EXTI_LINE_16 00778 * @arg @ref LL_EXTI_LINE_18 00779 * @arg @ref LL_EXTI_LINE_19 00780 * @arg @ref LL_EXTI_LINE_20 00781 * @arg @ref LL_EXTI_LINE_21 00782 * @arg @ref LL_EXTI_LINE_22 00783 * @arg @ref LL_EXTI_LINE_29 00784 * @arg @ref LL_EXTI_LINE_30 00785 * @arg @ref LL_EXTI_LINE_31 00786 * @note Please check each device line mapping for EXTI Line availability 00787 * @retval None 00788 */ 00789 __STATIC_INLINE void LL_EXTI_DisableRisingTrig_0_31(uint32_t ExtiLine) 00790 { 00791 CLEAR_BIT(EXTI->RTSR1, ExtiLine); 00792 00793 } 00794 00795 /** 00796 * @brief Disable ExtiLine Rising Edge Trigger for Lines in range 32 to 63 00797 * @note The configurable wakeup lines are edge-triggered. No glitch must be 00798 * generated on these lines. If a rising edge on a configurable interrupt 00799 * line occurs during a write operation in the EXTI_RTSR register, the 00800 * pending bit is not set. 00801 * Rising and falling edge triggers can be set for 00802 * the same interrupt line. In this case, both generate a trigger 00803 * condition. 00804 * @rmtoll RTSR2 RTx LL_EXTI_DisableRisingTrig_32_63 00805 * @param ExtiLine This parameter can be a combination of the following values: 00806 * @arg @ref LL_EXTI_LINE_35 00807 * @arg @ref LL_EXTI_LINE_36 00808 * @arg @ref LL_EXTI_LINE_37 00809 * @arg @ref LL_EXTI_LINE_38 00810 * @retval None 00811 */ 00812 __STATIC_INLINE void LL_EXTI_DisableRisingTrig_32_63(uint32_t ExtiLine) 00813 { 00814 CLEAR_BIT(EXTI->RTSR2, ExtiLine); 00815 } 00816 00817 /** 00818 * @brief Check if rising edge trigger is enabled for Lines in range 0 to 31 00819 * @rmtoll RTSR1 RTx LL_EXTI_IsEnabledRisingTrig_0_31 00820 * @param ExtiLine This parameter can be a combination of the following values: 00821 * @arg @ref LL_EXTI_LINE_0 00822 * @arg @ref LL_EXTI_LINE_1 00823 * @arg @ref LL_EXTI_LINE_2 00824 * @arg @ref LL_EXTI_LINE_3 00825 * @arg @ref LL_EXTI_LINE_4 00826 * @arg @ref LL_EXTI_LINE_5 00827 * @arg @ref LL_EXTI_LINE_6 00828 * @arg @ref LL_EXTI_LINE_7 00829 * @arg @ref LL_EXTI_LINE_8 00830 * @arg @ref LL_EXTI_LINE_9 00831 * @arg @ref LL_EXTI_LINE_10 00832 * @arg @ref LL_EXTI_LINE_11 00833 * @arg @ref LL_EXTI_LINE_12 00834 * @arg @ref LL_EXTI_LINE_13 00835 * @arg @ref LL_EXTI_LINE_14 00836 * @arg @ref LL_EXTI_LINE_15 00837 * @arg @ref LL_EXTI_LINE_16 00838 * @arg @ref LL_EXTI_LINE_18 00839 * @arg @ref LL_EXTI_LINE_19 00840 * @arg @ref LL_EXTI_LINE_20 00841 * @arg @ref LL_EXTI_LINE_21 00842 * @arg @ref LL_EXTI_LINE_22 00843 * @arg @ref LL_EXTI_LINE_29 00844 * @arg @ref LL_EXTI_LINE_30 00845 * @arg @ref LL_EXTI_LINE_31 00846 * @note Please check each device line mapping for EXTI Line availability 00847 * @retval State of bit (1 or 0). 00848 */ 00849 __STATIC_INLINE uint32_t LL_EXTI_IsEnabledRisingTrig_0_31(uint32_t ExtiLine) 00850 { 00851 return (READ_BIT(EXTI->RTSR1, ExtiLine) == (ExtiLine)); 00852 } 00853 00854 /** 00855 * @brief Check if rising edge trigger is enabled for Lines in range 32 to 63 00856 * @rmtoll RTSR2 RTx LL_EXTI_IsEnabledRisingTrig_32_63 00857 * @param ExtiLine This parameter can be a combination of the following values: 00858 * @arg @ref LL_EXTI_LINE_35 00859 * @arg @ref LL_EXTI_LINE_36 00860 * @arg @ref LL_EXTI_LINE_37 00861 * @arg @ref LL_EXTI_LINE_38 00862 * @retval State of bit (1 or 0). 00863 */ 00864 __STATIC_INLINE uint32_t LL_EXTI_IsEnabledRisingTrig_32_63(uint32_t ExtiLine) 00865 { 00866 return (READ_BIT(EXTI->RTSR2, ExtiLine) == (ExtiLine)); 00867 } 00868 00869 /** 00870 * @} 00871 */ 00872 00873 /** @defgroup EXTI_LL_EF_Falling_Trigger_Management Falling_Trigger_Management 00874 * @{ 00875 */ 00876 00877 /** 00878 * @brief Enable ExtiLine Falling Edge Trigger for Lines in range 0 to 31 00879 * @note The configurable wakeup lines are edge-triggered. No glitch must be 00880 * generated on these lines. If a falling edge on a configurable interrupt 00881 * line occurs during a write operation in the EXTI_FTSR register, the 00882 * pending bit is not set. 00883 * Rising and falling edge triggers can be set for 00884 * the same interrupt line. In this case, both generate a trigger 00885 * condition. 00886 * @rmtoll FTSR1 FTx LL_EXTI_EnableFallingTrig_0_31 00887 * @param ExtiLine This parameter can be a combination of the following values: 00888 * @arg @ref LL_EXTI_LINE_0 00889 * @arg @ref LL_EXTI_LINE_1 00890 * @arg @ref LL_EXTI_LINE_2 00891 * @arg @ref LL_EXTI_LINE_3 00892 * @arg @ref LL_EXTI_LINE_4 00893 * @arg @ref LL_EXTI_LINE_5 00894 * @arg @ref LL_EXTI_LINE_6 00895 * @arg @ref LL_EXTI_LINE_7 00896 * @arg @ref LL_EXTI_LINE_8 00897 * @arg @ref LL_EXTI_LINE_9 00898 * @arg @ref LL_EXTI_LINE_10 00899 * @arg @ref LL_EXTI_LINE_11 00900 * @arg @ref LL_EXTI_LINE_12 00901 * @arg @ref LL_EXTI_LINE_13 00902 * @arg @ref LL_EXTI_LINE_14 00903 * @arg @ref LL_EXTI_LINE_15 00904 * @arg @ref LL_EXTI_LINE_16 00905 * @arg @ref LL_EXTI_LINE_18 00906 * @arg @ref LL_EXTI_LINE_19 00907 * @arg @ref LL_EXTI_LINE_20 00908 * @arg @ref LL_EXTI_LINE_21 00909 * @arg @ref LL_EXTI_LINE_22 00910 * @arg @ref LL_EXTI_LINE_29 00911 * @arg @ref LL_EXTI_LINE_30 00912 * @arg @ref LL_EXTI_LINE_31 00913 * @note Please check each device line mapping for EXTI Line availability 00914 * @retval None 00915 */ 00916 __STATIC_INLINE void LL_EXTI_EnableFallingTrig_0_31(uint32_t ExtiLine) 00917 { 00918 SET_BIT(EXTI->FTSR1, ExtiLine); 00919 } 00920 00921 /** 00922 * @brief Enable ExtiLine Falling Edge Trigger for Lines in range 32 to 63 00923 * @note The configurable wakeup lines are edge-triggered. No glitch must be 00924 * generated on these lines. If a Falling edge on a configurable interrupt 00925 * line occurs during a write operation in the EXTI_FTSR register, the 00926 * pending bit is not set. 00927 * Rising and falling edge triggers can be set for 00928 * the same interrupt line. In this case, both generate a trigger 00929 * condition. 00930 * @rmtoll FTSR2 FTx LL_EXTI_EnableFallingTrig_32_63 00931 * @param ExtiLine This parameter can be a combination of the following values: 00932 * @arg @ref LL_EXTI_LINE_35 00933 * @arg @ref LL_EXTI_LINE_36 00934 * @arg @ref LL_EXTI_LINE_37 00935 * @arg @ref LL_EXTI_LINE_38 00936 * @retval None 00937 */ 00938 __STATIC_INLINE void LL_EXTI_EnableFallingTrig_32_63(uint32_t ExtiLine) 00939 { 00940 SET_BIT(EXTI->FTSR2, ExtiLine); 00941 } 00942 00943 /** 00944 * @brief Disable ExtiLine Falling Edge Trigger for Lines in range 0 to 31 00945 * @note The configurable wakeup lines are edge-triggered. No glitch must be 00946 * generated on these lines. If a Falling edge on a configurable interrupt 00947 * line occurs during a write operation in the EXTI_FTSR register, the 00948 * pending bit is not set. 00949 * Rising and falling edge triggers can be set for the same interrupt line. 00950 * In this case, both generate a trigger condition. 00951 * @rmtoll FTSR1 FTx LL_EXTI_DisableFallingTrig_0_31 00952 * @param ExtiLine This parameter can be a combination of the following values: 00953 * @arg @ref LL_EXTI_LINE_0 00954 * @arg @ref LL_EXTI_LINE_1 00955 * @arg @ref LL_EXTI_LINE_2 00956 * @arg @ref LL_EXTI_LINE_3 00957 * @arg @ref LL_EXTI_LINE_4 00958 * @arg @ref LL_EXTI_LINE_5 00959 * @arg @ref LL_EXTI_LINE_6 00960 * @arg @ref LL_EXTI_LINE_7 00961 * @arg @ref LL_EXTI_LINE_8 00962 * @arg @ref LL_EXTI_LINE_9 00963 * @arg @ref LL_EXTI_LINE_10 00964 * @arg @ref LL_EXTI_LINE_11 00965 * @arg @ref LL_EXTI_LINE_12 00966 * @arg @ref LL_EXTI_LINE_13 00967 * @arg @ref LL_EXTI_LINE_14 00968 * @arg @ref LL_EXTI_LINE_15 00969 * @arg @ref LL_EXTI_LINE_16 00970 * @arg @ref LL_EXTI_LINE_18 00971 * @arg @ref LL_EXTI_LINE_19 00972 * @arg @ref LL_EXTI_LINE_20 00973 * @arg @ref LL_EXTI_LINE_21 00974 * @arg @ref LL_EXTI_LINE_22 00975 * @arg @ref LL_EXTI_LINE_29 00976 * @arg @ref LL_EXTI_LINE_30 00977 * @arg @ref LL_EXTI_LINE_31 00978 * @note Please check each device line mapping for EXTI Line availability 00979 * @retval None 00980 */ 00981 __STATIC_INLINE void LL_EXTI_DisableFallingTrig_0_31(uint32_t ExtiLine) 00982 { 00983 CLEAR_BIT(EXTI->FTSR1, ExtiLine); 00984 } 00985 00986 /** 00987 * @brief Disable ExtiLine Falling Edge Trigger for Lines in range 32 to 63 00988 * @note The configurable wakeup lines are edge-triggered. No glitch must be 00989 * generated on these lines. If a Falling edge on a configurable interrupt 00990 * line occurs during a write operation in the EXTI_FTSR register, the 00991 * pending bit is not set. 00992 * Rising and falling edge triggers can be set for the same interrupt line. 00993 * In this case, both generate a trigger condition. 00994 * @rmtoll FTSR2 FTx LL_EXTI_DisableFallingTrig_32_63 00995 * @param ExtiLine This parameter can be a combination of the following values: 00996 * @arg @ref LL_EXTI_LINE_35 00997 * @arg @ref LL_EXTI_LINE_36 00998 * @arg @ref LL_EXTI_LINE_37 00999 * @arg @ref LL_EXTI_LINE_38 01000 * @retval None 01001 */ 01002 __STATIC_INLINE void LL_EXTI_DisableFallingTrig_32_63(uint32_t ExtiLine) 01003 { 01004 CLEAR_BIT(EXTI->FTSR2, ExtiLine); 01005 } 01006 01007 /** 01008 * @brief Check if falling edge trigger is enabled for Lines in range 0 to 31 01009 * @rmtoll FTSR1 FTx LL_EXTI_IsEnabledFallingTrig_0_31 01010 * @param ExtiLine This parameter can be a combination of the following values: 01011 * @arg @ref LL_EXTI_LINE_0 01012 * @arg @ref LL_EXTI_LINE_1 01013 * @arg @ref LL_EXTI_LINE_2 01014 * @arg @ref LL_EXTI_LINE_3 01015 * @arg @ref LL_EXTI_LINE_4 01016 * @arg @ref LL_EXTI_LINE_5 01017 * @arg @ref LL_EXTI_LINE_6 01018 * @arg @ref LL_EXTI_LINE_7 01019 * @arg @ref LL_EXTI_LINE_8 01020 * @arg @ref LL_EXTI_LINE_9 01021 * @arg @ref LL_EXTI_LINE_10 01022 * @arg @ref LL_EXTI_LINE_11 01023 * @arg @ref LL_EXTI_LINE_12 01024 * @arg @ref LL_EXTI_LINE_13 01025 * @arg @ref LL_EXTI_LINE_14 01026 * @arg @ref LL_EXTI_LINE_15 01027 * @arg @ref LL_EXTI_LINE_16 01028 * @arg @ref LL_EXTI_LINE_18 01029 * @arg @ref LL_EXTI_LINE_19 01030 * @arg @ref LL_EXTI_LINE_20 01031 * @arg @ref LL_EXTI_LINE_21 01032 * @arg @ref LL_EXTI_LINE_22 01033 * @arg @ref LL_EXTI_LINE_29 01034 * @arg @ref LL_EXTI_LINE_30 01035 * @arg @ref LL_EXTI_LINE_31 01036 * @note Please check each device line mapping for EXTI Line availability 01037 * @retval State of bit (1 or 0). 01038 */ 01039 __STATIC_INLINE uint32_t LL_EXTI_IsEnabledFallingTrig_0_31(uint32_t ExtiLine) 01040 { 01041 return (READ_BIT(EXTI->FTSR1, ExtiLine) == (ExtiLine)); 01042 } 01043 01044 /** 01045 * @brief Check if falling edge trigger is enabled for Lines in range 32 to 63 01046 * @rmtoll FTSR2 FTx LL_EXTI_IsEnabledFallingTrig_32_63 01047 * @param ExtiLine This parameter can be a combination of the following values: 01048 * @arg @ref LL_EXTI_LINE_35 01049 * @arg @ref LL_EXTI_LINE_36 01050 * @arg @ref LL_EXTI_LINE_37 01051 * @arg @ref LL_EXTI_LINE_38 01052 * @retval State of bit (1 or 0). 01053 */ 01054 __STATIC_INLINE uint32_t LL_EXTI_IsEnabledFallingTrig_32_63(uint32_t ExtiLine) 01055 { 01056 return (READ_BIT(EXTI->FTSR2, ExtiLine) == (ExtiLine)); 01057 } 01058 01059 /** 01060 * @} 01061 */ 01062 01063 /** @defgroup EXTI_LL_EF_Software_Interrupt_Management Software_Interrupt_Management 01064 * @{ 01065 */ 01066 01067 /** 01068 * @brief Generate a software Interrupt Event for Lines in range 0 to 31 01069 * @note If the interrupt is enabled on this line in the EXTI_IMR, writing a 1 to 01070 * this bit when it is at '0' sets the corresponding pending bit in EXTI_PR 01071 * resulting in an interrupt request generation. 01072 * This bit is cleared by clearing the corresponding bit in the EXTI_PR 01073 * register (by writing a 1 into the bit) 01074 * @rmtoll SWIER1 SWIx LL_EXTI_GenerateSWI_0_31 01075 * @param ExtiLine This parameter can be a combination of the following values: 01076 * @arg @ref LL_EXTI_LINE_0 01077 * @arg @ref LL_EXTI_LINE_1 01078 * @arg @ref LL_EXTI_LINE_2 01079 * @arg @ref LL_EXTI_LINE_3 01080 * @arg @ref LL_EXTI_LINE_4 01081 * @arg @ref LL_EXTI_LINE_5 01082 * @arg @ref LL_EXTI_LINE_6 01083 * @arg @ref LL_EXTI_LINE_7 01084 * @arg @ref LL_EXTI_LINE_8 01085 * @arg @ref LL_EXTI_LINE_9 01086 * @arg @ref LL_EXTI_LINE_10 01087 * @arg @ref LL_EXTI_LINE_11 01088 * @arg @ref LL_EXTI_LINE_12 01089 * @arg @ref LL_EXTI_LINE_13 01090 * @arg @ref LL_EXTI_LINE_14 01091 * @arg @ref LL_EXTI_LINE_15 01092 * @arg @ref LL_EXTI_LINE_16 01093 * @arg @ref LL_EXTI_LINE_18 01094 * @arg @ref LL_EXTI_LINE_19 01095 * @arg @ref LL_EXTI_LINE_20 01096 * @arg @ref LL_EXTI_LINE_21 01097 * @arg @ref LL_EXTI_LINE_22 01098 * @arg @ref LL_EXTI_LINE_29 01099 * @arg @ref LL_EXTI_LINE_30 01100 * @arg @ref LL_EXTI_LINE_31 01101 * @note Please check each device line mapping for EXTI Line availability 01102 * @retval None 01103 */ 01104 __STATIC_INLINE void LL_EXTI_GenerateSWI_0_31(uint32_t ExtiLine) 01105 { 01106 SET_BIT(EXTI->SWIER1, ExtiLine); 01107 } 01108 01109 /** 01110 * @brief Generate a software Interrupt Event for Lines in range 32 to 63 01111 * @note If the interrupt is enabled on this line inthe EXTI_IMR, writing a 1 to 01112 * this bit when it is at '0' sets the corresponding pending bit in EXTI_PR 01113 * resulting in an interrupt request generation. 01114 * This bit is cleared by clearing the corresponding bit in the EXTI_PR 01115 * register (by writing a 1 into the bit) 01116 * @rmtoll SWIER2 SWIx LL_EXTI_GenerateSWI_32_63 01117 * @param ExtiLine This parameter can be a combination of the following values: 01118 * @arg @ref LL_EXTI_LINE_35 01119 * @arg @ref LL_EXTI_LINE_36 01120 * @arg @ref LL_EXTI_LINE_37 01121 * @arg @ref LL_EXTI_LINE_38 01122 * @retval None 01123 */ 01124 __STATIC_INLINE void LL_EXTI_GenerateSWI_32_63(uint32_t ExtiLine) 01125 { 01126 SET_BIT(EXTI->SWIER2, ExtiLine); 01127 } 01128 01129 /** 01130 * @} 01131 */ 01132 01133 /** @defgroup EXTI_LL_EF_Flag_Management Flag_Management 01134 * @{ 01135 */ 01136 01137 /** 01138 * @brief Check if the ExtLine Flag is set or not for Lines in range 0 to 31 01139 * @note This bit is set when the selected edge event arrives on the interrupt 01140 * line. This bit is cleared by writing a 1 to the bit. 01141 * @rmtoll PR1 PIFx LL_EXTI_IsActiveFlag_0_31 01142 * @param ExtiLine This parameter can be a combination of the following values: 01143 * @arg @ref LL_EXTI_LINE_0 01144 * @arg @ref LL_EXTI_LINE_1 01145 * @arg @ref LL_EXTI_LINE_2 01146 * @arg @ref LL_EXTI_LINE_3 01147 * @arg @ref LL_EXTI_LINE_4 01148 * @arg @ref LL_EXTI_LINE_5 01149 * @arg @ref LL_EXTI_LINE_6 01150 * @arg @ref LL_EXTI_LINE_7 01151 * @arg @ref LL_EXTI_LINE_8 01152 * @arg @ref LL_EXTI_LINE_9 01153 * @arg @ref LL_EXTI_LINE_10 01154 * @arg @ref LL_EXTI_LINE_11 01155 * @arg @ref LL_EXTI_LINE_12 01156 * @arg @ref LL_EXTI_LINE_13 01157 * @arg @ref LL_EXTI_LINE_14 01158 * @arg @ref LL_EXTI_LINE_15 01159 * @arg @ref LL_EXTI_LINE_16 01160 * @arg @ref LL_EXTI_LINE_18 01161 * @arg @ref LL_EXTI_LINE_19 01162 * @arg @ref LL_EXTI_LINE_20 01163 * @arg @ref LL_EXTI_LINE_21 01164 * @arg @ref LL_EXTI_LINE_22 01165 * @arg @ref LL_EXTI_LINE_29 01166 * @arg @ref LL_EXTI_LINE_30 01167 * @arg @ref LL_EXTI_LINE_31 01168 * @note Please check each device line mapping for EXTI Line availability 01169 * @retval State of bit (1 or 0). 01170 */ 01171 __STATIC_INLINE uint32_t LL_EXTI_IsActiveFlag_0_31(uint32_t ExtiLine) 01172 { 01173 return (READ_BIT(EXTI->PR1, ExtiLine) == (ExtiLine)); 01174 } 01175 01176 /** 01177 * @brief Check if the ExtLine Flag is set or not for Lines in range 32 to 63 01178 * @note This bit is set when the selected edge event arrives on the interrupt 01179 * line. This bit is cleared by writing a 1 to the bit. 01180 * @rmtoll PR2 PIFx LL_EXTI_IsActiveFlag_32_63 01181 * @param ExtiLine This parameter can be a combination of the following values: 01182 * @arg @ref LL_EXTI_LINE_35 01183 * @arg @ref LL_EXTI_LINE_36 01184 * @arg @ref LL_EXTI_LINE_37 01185 * @arg @ref LL_EXTI_LINE_38 01186 * @retval State of bit (1 or 0). 01187 */ 01188 __STATIC_INLINE uint32_t LL_EXTI_IsActiveFlag_32_63(uint32_t ExtiLine) 01189 { 01190 return (READ_BIT(EXTI->PR2, ExtiLine) == (ExtiLine)); 01191 } 01192 01193 /** 01194 * @brief Read ExtLine Combination Flag for Lines in range 0 to 31 01195 * @note This bit is set when the selected edge event arrives on the interrupt 01196 * line. This bit is cleared by writing a 1 to the bit. 01197 * @rmtoll PR1 PIFx LL_EXTI_ReadFlag_0_31 01198 * @param ExtiLine This parameter can be a combination of the following values: 01199 * @arg @ref LL_EXTI_LINE_0 01200 * @arg @ref LL_EXTI_LINE_1 01201 * @arg @ref LL_EXTI_LINE_2 01202 * @arg @ref LL_EXTI_LINE_3 01203 * @arg @ref LL_EXTI_LINE_4 01204 * @arg @ref LL_EXTI_LINE_5 01205 * @arg @ref LL_EXTI_LINE_6 01206 * @arg @ref LL_EXTI_LINE_7 01207 * @arg @ref LL_EXTI_LINE_8 01208 * @arg @ref LL_EXTI_LINE_9 01209 * @arg @ref LL_EXTI_LINE_10 01210 * @arg @ref LL_EXTI_LINE_11 01211 * @arg @ref LL_EXTI_LINE_12 01212 * @arg @ref LL_EXTI_LINE_13 01213 * @arg @ref LL_EXTI_LINE_14 01214 * @arg @ref LL_EXTI_LINE_15 01215 * @arg @ref LL_EXTI_LINE_16 01216 * @arg @ref LL_EXTI_LINE_18 01217 * @arg @ref LL_EXTI_LINE_19 01218 * @arg @ref LL_EXTI_LINE_20 01219 * @arg @ref LL_EXTI_LINE_21 01220 * @arg @ref LL_EXTI_LINE_22 01221 * @arg @ref LL_EXTI_LINE_29 01222 * @arg @ref LL_EXTI_LINE_30 01223 * @arg @ref LL_EXTI_LINE_31 01224 * @note Please check each device line mapping for EXTI Line availability 01225 * @retval @note This bit is set when the selected edge event arrives on the interrupt 01226 */ 01227 __STATIC_INLINE uint32_t LL_EXTI_ReadFlag_0_31(uint32_t ExtiLine) 01228 { 01229 return (uint32_t)(READ_BIT(EXTI->PR1, ExtiLine)); 01230 } 01231 01232 01233 /** 01234 * @brief Read ExtLine Combination Flag for Lines in range 32 to 63 01235 * @note This bit is set when the selected edge event arrives on the interrupt 01236 * line. This bit is cleared by writing a 1 to the bit. 01237 * @rmtoll PR2 PIFx LL_EXTI_ReadFlag_32_63 01238 * @param ExtiLine This parameter can be a combination of the following values: 01239 * @arg @ref LL_EXTI_LINE_35 01240 * @arg @ref LL_EXTI_LINE_36 01241 * @arg @ref LL_EXTI_LINE_37 01242 * @arg @ref LL_EXTI_LINE_38 01243 * @retval @note This bit is set when the selected edge event arrives on the interrupt 01244 */ 01245 __STATIC_INLINE uint32_t LL_EXTI_ReadFlag_32_63(uint32_t ExtiLine) 01246 { 01247 return (uint32_t)(READ_BIT(EXTI->PR2, ExtiLine)); 01248 } 01249 01250 /** 01251 * @brief Clear ExtLine Flags for Lines in range 0 to 31 01252 * @note This bit is set when the selected edge event arrives on the interrupt 01253 * line. This bit is cleared by writing a 1 to the bit. 01254 * @rmtoll PR1 PIFx LL_EXTI_ClearFlag_0_31 01255 * @param ExtiLine This parameter can be a combination of the following values: 01256 * @arg @ref LL_EXTI_LINE_0 01257 * @arg @ref LL_EXTI_LINE_1 01258 * @arg @ref LL_EXTI_LINE_2 01259 * @arg @ref LL_EXTI_LINE_3 01260 * @arg @ref LL_EXTI_LINE_4 01261 * @arg @ref LL_EXTI_LINE_5 01262 * @arg @ref LL_EXTI_LINE_6 01263 * @arg @ref LL_EXTI_LINE_7 01264 * @arg @ref LL_EXTI_LINE_8 01265 * @arg @ref LL_EXTI_LINE_9 01266 * @arg @ref LL_EXTI_LINE_10 01267 * @arg @ref LL_EXTI_LINE_11 01268 * @arg @ref LL_EXTI_LINE_12 01269 * @arg @ref LL_EXTI_LINE_13 01270 * @arg @ref LL_EXTI_LINE_14 01271 * @arg @ref LL_EXTI_LINE_15 01272 * @arg @ref LL_EXTI_LINE_16 01273 * @arg @ref LL_EXTI_LINE_18 01274 * @arg @ref LL_EXTI_LINE_19 01275 * @arg @ref LL_EXTI_LINE_20 01276 * @arg @ref LL_EXTI_LINE_21 01277 * @arg @ref LL_EXTI_LINE_22 01278 * @arg @ref LL_EXTI_LINE_29 01279 * @arg @ref LL_EXTI_LINE_30 01280 * @arg @ref LL_EXTI_LINE_31 01281 * @note Please check each device line mapping for EXTI Line availability 01282 * @retval None 01283 */ 01284 __STATIC_INLINE void LL_EXTI_ClearFlag_0_31(uint32_t ExtiLine) 01285 { 01286 WRITE_REG(EXTI->PR1, ExtiLine); 01287 } 01288 01289 /** 01290 * @brief Clear ExtLine Flags for Lines in range 32 to 63 01291 * @note This bit is set when the selected edge event arrives on the interrupt 01292 * line. This bit is cleared by writing a 1 to the bit. 01293 * @rmtoll PR2 PIFx LL_EXTI_ClearFlag_32_63 01294 * @param ExtiLine This parameter can be a combination of the following values: 01295 * @arg @ref LL_EXTI_LINE_35 01296 * @arg @ref LL_EXTI_LINE_36 01297 * @arg @ref LL_EXTI_LINE_37 01298 * @arg @ref LL_EXTI_LINE_38 01299 * @retval None 01300 */ 01301 __STATIC_INLINE void LL_EXTI_ClearFlag_32_63(uint32_t ExtiLine) 01302 { 01303 WRITE_REG(EXTI->PR2, ExtiLine); 01304 } 01305 01306 /** 01307 * @} 01308 */ 01309 01310 #if defined(USE_FULL_LL_DRIVER) 01311 /** @defgroup EXTI_LL_EF_Init Initialization and de-initialization functions 01312 * @{ 01313 */ 01314 01315 uint32_t LL_EXTI_Init(LL_EXTI_InitTypeDef *EXTI_InitStruct); 01316 uint32_t LL_EXTI_DeInit(void); 01317 void LL_EXTI_StructInit(LL_EXTI_InitTypeDef *EXTI_InitStruct); 01318 01319 01320 /** 01321 * @} 01322 */ 01323 #endif /* USE_FULL_LL_DRIVER */ 01324 01325 /** 01326 * @} 01327 */ 01328 01329 /** 01330 * @} 01331 */ 01332 01333 #endif /* EXTI */ 01334 01335 /** 01336 * @} 01337 */ 01338 01339 #ifdef __cplusplus 01340 } 01341 #endif 01342 01343 #endif /* __STM32L4xx_LL_EXTI_H */ 01344 01345 /************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
Generated on Tue Jul 12 2022 10:59:59 by
