STM32G474xx HAL 用户手册
stm32g4xx_hal_exti.h
转至该文件的文档。
00001 /**
00002   ******************************************************************************
00003   * @file    stm32g4xx_hal_exti.h
00004   * @author  MCD Application Team
00005   * @brief   EXTI HAL 模块头文件。
00006   ******************************************************************************
00007   * @attention
00008   *
00009   * Copyright (c) 2019 STMicroelectronics.
00010   * All rights reserved.
00011   *
00012   * This software is licensed under terms that can be found in the LICENSE file
00013   * in the root directory of this software component.
00014   * If no LICENSE file comes with this software, it is provided AS-IS.
00015   *
00016   ******************************************************************************
00017   */
00018 
00019 /* Define to prevent recursive inclusion -------------------------------------*/
00020 #ifndef STM32G4xx_HAL_EXTI_H
00021 #define STM32G4xx_HAL_EXTI_H
00022 
00023 #ifdef __cplusplus
00024 extern "C" {
00025 #endif
00026 
00027 /* Includes ------------------------------------------------------------------*/
00028 #include "stm32g4xx_hal_def.h"
00029 
00030 /** @addtogroup STM32G4xx_HAL_Driver
00031   * @{
00032   */
00033 
00034 /** @defgroup EXTI EXTI
00035   * @brief EXTI HAL 模块驱动程序
00036   * @{
00037   */
00038 
00039 /* Exported types ------------------------------------------------------------*/
00040 
00041 /** @defgroup EXTI_Exported_Types EXTI 导出类型
00042   * @{
00043   */
00044 typedef enum
00045 {
00046   HAL_EXTI_COMMON_CB_ID         = 0x00UL
00047 } EXTI_CallbackIDTypeDef;
00048 
00049 
00050 /**
00051   * @brief  EXTI 句柄结构定义
00052   */
00053 typedef struct
00054 {
00055   uint32_t Line;                    /*!<  Exti 线编号 */
00056   void (* PendingCallback)(void);   /*!<  Exti 待处理回调函数 */
00057 } EXTI_HandleTypeDef;
00058 
00059 /**
00060   * @brief  EXTI 配置结构定义
00061   */
00062 typedef struct
00063 {
00064   uint32_t Line;      /*!< 要配置的 Exti 线。该参数
00065                            可以是 @ref EXTI_Line 的值 */
00066   uint32_t Mode;      /*!< 要为内核配置的 Exti 模式。
00067                            该参数可以是 @ref EXTI_Mode 的组合 */
00068   uint32_t Trigger;   /*!< 要配置的 Exti 触发方式。该参数
00069                            可以是 @ref EXTI_Trigger 的值 */
00070   uint32_t GPIOSel;   /*!< 要配置的 Exti GPIO 多路复用器选择。
00071                            该参数仅适用于线 0 到 15。可以是 @ref EXTI_GPIOSel 的值 */
00072                            can be a value of @ref EXTI_GPIOSel */
00073 } EXTI_ConfigTypeDef;
00074 
00075 /**
00076   * @}
00077   */
00078 
00079 /* Exported constants --------------------------------------------------------*/
00080 /** @defgroup EXTI_Exported_Constants EXTI 导出常量
00081   * @{
00082   */
00083 
00084 /** @defgroup EXTI_Line  EXTI 线
00085   * @{
00086   */
00087 #define EXTI_LINE_0                         (EXTI_GPIO     | EXTI_REG1 | 0x00u)
00088 #define EXTI_LINE_1                         (EXTI_GPIO     | EXTI_REG1 | 0x01u)
00089 #define EXTI_LINE_2                         (EXTI_GPIO     | EXTI_REG1 | 0x02u)
00090 #define EXTI_LINE_3                         (EXTI_GPIO     | EXTI_REG1 | 0x03u)
00091 #define EXTI_LINE_4                         (EXTI_GPIO     | EXTI_REG1 | 0x04u)
00092 #define EXTI_LINE_5                         (EXTI_GPIO     | EXTI_REG1 | 0x05u)
00093 #define EXTI_LINE_6                         (EXTI_GPIO     | EXTI_REG1 | 0x06u)
00094 #define EXTI_LINE_7                         (EXTI_GPIO     | EXTI_REG1 | 0x07u)
00095 #define EXTI_LINE_8                         (EXTI_GPIO     | EXTI_REG1 | 0x08u)
00096 #define EXTI_LINE_9                         (EXTI_GPIO     | EXTI_REG1 | 0x09u)
00097 #define EXTI_LINE_10                        (EXTI_GPIO     | EXTI_REG1 | 0x0Au)
00098 #define EXTI_LINE_11                        (EXTI_GPIO     | EXTI_REG1 | 0x0Bu)
00099 #define EXTI_LINE_12                        (EXTI_GPIO     | EXTI_REG1 | 0x0Cu)
00100 #define EXTI_LINE_13                        (EXTI_GPIO     | EXTI_REG1 | 0x0Du)
00101 #define EXTI_LINE_14                        (EXTI_GPIO     | EXTI_REG1 | 0x0Eu)
00102 #define EXTI_LINE_15                        (EXTI_GPIO     | EXTI_REG1 | 0x0Fu)
00103 #define EXTI_LINE_16                        (EXTI_CONFIG   | EXTI_REG1 | 0x10u)
00104 #define EXTI_LINE_17                        (EXTI_CONFIG   | EXTI_REG1 | 0x11u)
00105 #define EXTI_LINE_18                        (EXTI_DIRECT   | EXTI_REG1 | 0x12u)
00106 #define EXTI_LINE_19                        (EXTI_CONFIG   | EXTI_REG1 | 0x13u)
00107 #define EXTI_LINE_20                        (EXTI_CONFIG   | EXTI_REG1 | 0x14u)
00108 #define EXTI_LINE_21                        (EXTI_CONFIG   | EXTI_REG1 | 0x15u)
00109 #define EXTI_LINE_22                        (EXTI_CONFIG   | EXTI_REG1 | 0x16u)
00110 #define EXTI_LINE_23                        (EXTI_DIRECT   | EXTI_REG1 | 0x17u)
00111 #define EXTI_LINE_24                        (EXTI_DIRECT   | EXTI_REG1 | 0x18u)
00112 #define EXTI_LINE_25                        (EXTI_DIRECT   | EXTI_REG1 | 0x19u)
00113 #define EXTI_LINE_26                        (EXTI_DIRECT   | EXTI_REG1 | 0x1Au)
00114 #define EXTI_LINE_27                        (EXTI_DIRECT   | EXTI_REG1 | 0x1Bu)
00115 #define EXTI_LINE_28                        (EXTI_DIRECT   | EXTI_REG1 | 0x1Cu)
00116 #define EXTI_LINE_29                        (EXTI_CONFIG   | EXTI_REG1 | 0x1Du)
00117 #define EXTI_LINE_30                        (EXTI_CONFIG   | EXTI_REG1 | 0x1Eu)
00118 #define EXTI_LINE_31                        (EXTI_CONFIG   | EXTI_REG1 | 0x1Fu)
00119 #define EXTI_LINE_32                        (EXTI_CONFIG   | EXTI_REG2 | 0x00u)
00120 #define EXTI_LINE_33                        (EXTI_CONFIG   | EXTI_REG2 | 0x01u)
00121 #define EXTI_LINE_34                        (EXTI_DIRECT   | EXTI_REG2 | 0x02u)
00122 #define EXTI_LINE_35                        (EXTI_DIRECT   | EXTI_REG2 | 0x03u)
00123 #define EXTI_LINE_36                        (EXTI_DIRECT   | EXTI_REG2 | 0x04u)
00124 #define EXTI_LINE_37                        (EXTI_DIRECT   | EXTI_REG2 | 0x05u)
00125 #define EXTI_LINE_38                        (EXTI_CONFIG   | EXTI_REG2 | 0x06u)
00126 #define EXTI_LINE_39                        (EXTI_CONFIG   | EXTI_REG2 | 0x07u)
00127 #define EXTI_LINE_40                        (EXTI_CONFIG   | EXTI_REG2 | 0x08u)
00128 #define EXTI_LINE_41                        (EXTI_CONFIG   | EXTI_REG2 | 0x09u)
00129 #define EXTI_LINE_42                        (EXTI_DIRECT   | EXTI_REG2 | 0x0Au)
00130 #define EXTI_LINE_43                        (EXTI_DIRECT   | EXTI_REG2 | 0x0Bu)
00131 /**
00132   * @}
00133   */
00134 
00135 /** @defgroup EXTI_Mode  EXTI 模式
00135   * @{
00136   */