|
STM32G474xx HAL 用户手册
|
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 */