tdse-tp4_01-adc

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