001

Committer:
ganlikun
Date:
Sun Jun 12 14:02:44 2022 +0000
Revision:
0:13413ea9a877
00

Who changed what in which revision?

UserRevisionLine numberNew contents of line
ganlikun 0:13413ea9a877 1 /**
ganlikun 0:13413ea9a877 2 ******************************************************************************
ganlikun 0:13413ea9a877 3 * @file stm32f4xx_hal_gpio_ex.h
ganlikun 0:13413ea9a877 4 * @author MCD Application Team
ganlikun 0:13413ea9a877 5 * @version V1.7.1
ganlikun 0:13413ea9a877 6 * @date 14-April-2017
ganlikun 0:13413ea9a877 7 * @brief Header file of GPIO HAL Extension module.
ganlikun 0:13413ea9a877 8 ******************************************************************************
ganlikun 0:13413ea9a877 9 * @attention
ganlikun 0:13413ea9a877 10 *
ganlikun 0:13413ea9a877 11 * <h2><center>&copy; COPYRIGHT(c) 2017 STMicroelectronics</center></h2>
ganlikun 0:13413ea9a877 12 *
ganlikun 0:13413ea9a877 13 * Redistribution and use in source and binary forms, with or without modification,
ganlikun 0:13413ea9a877 14 * are permitted provided that the following conditions are met:
ganlikun 0:13413ea9a877 15 * 1. Redistributions of source code must retain the above copyright notice,
ganlikun 0:13413ea9a877 16 * this list of conditions and the following disclaimer.
ganlikun 0:13413ea9a877 17 * 2. Redistributions in binary form must reproduce the above copyright notice,
ganlikun 0:13413ea9a877 18 * this list of conditions and the following disclaimer in the documentation
ganlikun 0:13413ea9a877 19 * and/or other materials provided with the distribution.
ganlikun 0:13413ea9a877 20 * 3. Neither the name of STMicroelectronics nor the names of its contributors
ganlikun 0:13413ea9a877 21 * may be used to endorse or promote products derived from this software
ganlikun 0:13413ea9a877 22 * without specific prior written permission.
ganlikun 0:13413ea9a877 23 *
ganlikun 0:13413ea9a877 24 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
ganlikun 0:13413ea9a877 25 * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
ganlikun 0:13413ea9a877 26 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
ganlikun 0:13413ea9a877 27 * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
ganlikun 0:13413ea9a877 28 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
ganlikun 0:13413ea9a877 29 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
ganlikun 0:13413ea9a877 30 * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
ganlikun 0:13413ea9a877 31 * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
ganlikun 0:13413ea9a877 32 * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
ganlikun 0:13413ea9a877 33 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
ganlikun 0:13413ea9a877 34 *
ganlikun 0:13413ea9a877 35 ******************************************************************************
ganlikun 0:13413ea9a877 36 */
ganlikun 0:13413ea9a877 37
ganlikun 0:13413ea9a877 38 /* Define to prevent recursive inclusion -------------------------------------*/
ganlikun 0:13413ea9a877 39 #ifndef __STM32F4xx_HAL_GPIO_EX_H
ganlikun 0:13413ea9a877 40 #define __STM32F4xx_HAL_GPIO_EX_H
ganlikun 0:13413ea9a877 41
ganlikun 0:13413ea9a877 42 #ifdef __cplusplus
ganlikun 0:13413ea9a877 43 extern "C" {
ganlikun 0:13413ea9a877 44 #endif
ganlikun 0:13413ea9a877 45
ganlikun 0:13413ea9a877 46 /* Includes ------------------------------------------------------------------*/
ganlikun 0:13413ea9a877 47 #include "stm32f4xx_hal_def.h"
ganlikun 0:13413ea9a877 48
ganlikun 0:13413ea9a877 49 /** @addtogroup STM32F4xx_HAL_Driver
ganlikun 0:13413ea9a877 50 * @{
ganlikun 0:13413ea9a877 51 */
ganlikun 0:13413ea9a877 52
ganlikun 0:13413ea9a877 53 /** @defgroup GPIOEx GPIOEx
ganlikun 0:13413ea9a877 54 * @{
ganlikun 0:13413ea9a877 55 */
ganlikun 0:13413ea9a877 56
ganlikun 0:13413ea9a877 57 /* Exported types ------------------------------------------------------------*/
ganlikun 0:13413ea9a877 58 /* Exported constants --------------------------------------------------------*/
ganlikun 0:13413ea9a877 59 /** @defgroup GPIOEx_Exported_Constants GPIO Exported Constants
ganlikun 0:13413ea9a877 60 * @{
ganlikun 0:13413ea9a877 61 */
ganlikun 0:13413ea9a877 62
ganlikun 0:13413ea9a877 63 /** @defgroup GPIO_Alternate_function_selection GPIO Alternate Function Selection
ganlikun 0:13413ea9a877 64 * @{
ganlikun 0:13413ea9a877 65 */
ganlikun 0:13413ea9a877 66
ganlikun 0:13413ea9a877 67 /*------------------------------------------ STM32F429xx/STM32F439xx ---------*/
ganlikun 0:13413ea9a877 68 #if defined(STM32F429xx) || defined(STM32F439xx)
ganlikun 0:13413ea9a877 69 /**
ganlikun 0:13413ea9a877 70 * @brief AF 0 selection
ganlikun 0:13413ea9a877 71 */
ganlikun 0:13413ea9a877 72 #define GPIO_AF0_RTC_50Hz ((uint8_t)0x00) /* RTC_50Hz Alternate Function mapping */
ganlikun 0:13413ea9a877 73 #define GPIO_AF0_MCO ((uint8_t)0x00) /* MCO (MCO1 and MCO2) Alternate Function mapping */
ganlikun 0:13413ea9a877 74 #define GPIO_AF0_TAMPER ((uint8_t)0x00) /* TAMPER (TAMPER_1 and TAMPER_2) Alternate Function mapping */
ganlikun 0:13413ea9a877 75 #define GPIO_AF0_SWJ ((uint8_t)0x00) /* SWJ (SWD and JTAG) Alternate Function mapping */
ganlikun 0:13413ea9a877 76 #define GPIO_AF0_TRACE ((uint8_t)0x00) /* TRACE Alternate Function mapping */
ganlikun 0:13413ea9a877 77
ganlikun 0:13413ea9a877 78 /**
ganlikun 0:13413ea9a877 79 * @brief AF 1 selection
ganlikun 0:13413ea9a877 80 */
ganlikun 0:13413ea9a877 81 #define GPIO_AF1_TIM1 ((uint8_t)0x01) /* TIM1 Alternate Function mapping */
ganlikun 0:13413ea9a877 82 #define GPIO_AF1_TIM2 ((uint8_t)0x01) /* TIM2 Alternate Function mapping */
ganlikun 0:13413ea9a877 83
ganlikun 0:13413ea9a877 84 /**
ganlikun 0:13413ea9a877 85 * @brief AF 2 selection
ganlikun 0:13413ea9a877 86 */
ganlikun 0:13413ea9a877 87 #define GPIO_AF2_TIM3 ((uint8_t)0x02) /* TIM3 Alternate Function mapping */
ganlikun 0:13413ea9a877 88 #define GPIO_AF2_TIM4 ((uint8_t)0x02) /* TIM4 Alternate Function mapping */
ganlikun 0:13413ea9a877 89 #define GPIO_AF2_TIM5 ((uint8_t)0x02) /* TIM5 Alternate Function mapping */
ganlikun 0:13413ea9a877 90
ganlikun 0:13413ea9a877 91 /**
ganlikun 0:13413ea9a877 92 * @brief AF 3 selection
ganlikun 0:13413ea9a877 93 */
ganlikun 0:13413ea9a877 94 #define GPIO_AF3_TIM8 ((uint8_t)0x03) /* TIM8 Alternate Function mapping */
ganlikun 0:13413ea9a877 95 #define GPIO_AF3_TIM9 ((uint8_t)0x03) /* TIM9 Alternate Function mapping */
ganlikun 0:13413ea9a877 96 #define GPIO_AF3_TIM10 ((uint8_t)0x03) /* TIM10 Alternate Function mapping */
ganlikun 0:13413ea9a877 97 #define GPIO_AF3_TIM11 ((uint8_t)0x03) /* TIM11 Alternate Function mapping */
ganlikun 0:13413ea9a877 98
ganlikun 0:13413ea9a877 99 /**
ganlikun 0:13413ea9a877 100 * @brief AF 4 selection
ganlikun 0:13413ea9a877 101 */
ganlikun 0:13413ea9a877 102 #define GPIO_AF4_I2C1 ((uint8_t)0x04) /* I2C1 Alternate Function mapping */
ganlikun 0:13413ea9a877 103 #define GPIO_AF4_I2C2 ((uint8_t)0x04) /* I2C2 Alternate Function mapping */
ganlikun 0:13413ea9a877 104 #define GPIO_AF4_I2C3 ((uint8_t)0x04) /* I2C3 Alternate Function mapping */
ganlikun 0:13413ea9a877 105
ganlikun 0:13413ea9a877 106 /**
ganlikun 0:13413ea9a877 107 * @brief AF 5 selection
ganlikun 0:13413ea9a877 108 */
ganlikun 0:13413ea9a877 109 #define GPIO_AF5_SPI1 ((uint8_t)0x05) /* SPI1 Alternate Function mapping */
ganlikun 0:13413ea9a877 110 #define GPIO_AF5_SPI2 ((uint8_t)0x05) /* SPI2/I2S2 Alternate Function mapping */
ganlikun 0:13413ea9a877 111 #define GPIO_AF5_SPI3 ((uint8_t)0x05) /* SPI3/I2S3 Alternate Function mapping */
ganlikun 0:13413ea9a877 112 #define GPIO_AF5_SPI4 ((uint8_t)0x05) /* SPI4 Alternate Function mapping */
ganlikun 0:13413ea9a877 113 #define GPIO_AF5_SPI5 ((uint8_t)0x05) /* SPI5 Alternate Function mapping */
ganlikun 0:13413ea9a877 114 #define GPIO_AF5_SPI6 ((uint8_t)0x05) /* SPI6 Alternate Function mapping */
ganlikun 0:13413ea9a877 115 #define GPIO_AF5_I2S3ext ((uint8_t)0x05) /* I2S3ext_SD Alternate Function mapping */
ganlikun 0:13413ea9a877 116
ganlikun 0:13413ea9a877 117 /**
ganlikun 0:13413ea9a877 118 * @brief AF 6 selection
ganlikun 0:13413ea9a877 119 */
ganlikun 0:13413ea9a877 120 #define GPIO_AF6_SPI3 ((uint8_t)0x06) /* SPI3/I2S3 Alternate Function mapping */
ganlikun 0:13413ea9a877 121 #define GPIO_AF6_I2S2ext ((uint8_t)0x06) /* I2S2ext_SD Alternate Function mapping */
ganlikun 0:13413ea9a877 122 #define GPIO_AF6_SAI1 ((uint8_t)0x06) /* SAI1 Alternate Function mapping */
ganlikun 0:13413ea9a877 123
ganlikun 0:13413ea9a877 124 /**
ganlikun 0:13413ea9a877 125 * @brief AF 7 selection
ganlikun 0:13413ea9a877 126 */
ganlikun 0:13413ea9a877 127 #define GPIO_AF7_USART1 ((uint8_t)0x07) /* USART1 Alternate Function mapping */
ganlikun 0:13413ea9a877 128 #define GPIO_AF7_USART2 ((uint8_t)0x07) /* USART2 Alternate Function mapping */
ganlikun 0:13413ea9a877 129 #define GPIO_AF7_USART3 ((uint8_t)0x07) /* USART3 Alternate Function mapping */
ganlikun 0:13413ea9a877 130 #define GPIO_AF7_I2S3ext ((uint8_t)0x07) /* I2S3ext_SD Alternate Function mapping */
ganlikun 0:13413ea9a877 131
ganlikun 0:13413ea9a877 132 /**
ganlikun 0:13413ea9a877 133 * @brief AF 8 selection
ganlikun 0:13413ea9a877 134 */
ganlikun 0:13413ea9a877 135 #define GPIO_AF8_UART4 ((uint8_t)0x08) /* UART4 Alternate Function mapping */
ganlikun 0:13413ea9a877 136 #define GPIO_AF8_UART5 ((uint8_t)0x08) /* UART5 Alternate Function mapping */
ganlikun 0:13413ea9a877 137 #define GPIO_AF8_USART6 ((uint8_t)0x08) /* USART6 Alternate Function mapping */
ganlikun 0:13413ea9a877 138 #define GPIO_AF8_UART7 ((uint8_t)0x08) /* UART7 Alternate Function mapping */
ganlikun 0:13413ea9a877 139 #define GPIO_AF8_UART8 ((uint8_t)0x08) /* UART8 Alternate Function mapping */
ganlikun 0:13413ea9a877 140
ganlikun 0:13413ea9a877 141 /**
ganlikun 0:13413ea9a877 142 * @brief AF 9 selection
ganlikun 0:13413ea9a877 143 */
ganlikun 0:13413ea9a877 144 #define GPIO_AF9_CAN1 ((uint8_t)0x09) /* CAN1 Alternate Function mapping */
ganlikun 0:13413ea9a877 145 #define GPIO_AF9_CAN2 ((uint8_t)0x09) /* CAN2 Alternate Function mapping */
ganlikun 0:13413ea9a877 146 #define GPIO_AF9_TIM12 ((uint8_t)0x09) /* TIM12 Alternate Function mapping */
ganlikun 0:13413ea9a877 147 #define GPIO_AF9_TIM13 ((uint8_t)0x09) /* TIM13 Alternate Function mapping */
ganlikun 0:13413ea9a877 148 #define GPIO_AF9_TIM14 ((uint8_t)0x09) /* TIM14 Alternate Function mapping */
ganlikun 0:13413ea9a877 149 #define GPIO_AF9_LTDC ((uint8_t)0x09) /* LCD-TFT Alternate Function mapping */
ganlikun 0:13413ea9a877 150
ganlikun 0:13413ea9a877 151 /**
ganlikun 0:13413ea9a877 152 * @brief AF 10 selection
ganlikun 0:13413ea9a877 153 */
ganlikun 0:13413ea9a877 154 #define GPIO_AF10_OTG_FS ((uint8_t)0x0A) /* OTG_FS Alternate Function mapping */
ganlikun 0:13413ea9a877 155 #define GPIO_AF10_OTG_HS ((uint8_t)0x0A) /* OTG_HS Alternate Function mapping */
ganlikun 0:13413ea9a877 156
ganlikun 0:13413ea9a877 157 /**
ganlikun 0:13413ea9a877 158 * @brief AF 11 selection
ganlikun 0:13413ea9a877 159 */
ganlikun 0:13413ea9a877 160 #define GPIO_AF11_ETH ((uint8_t)0x0B) /* ETHERNET Alternate Function mapping */
ganlikun 0:13413ea9a877 161
ganlikun 0:13413ea9a877 162 /**
ganlikun 0:13413ea9a877 163 * @brief AF 12 selection
ganlikun 0:13413ea9a877 164 */
ganlikun 0:13413ea9a877 165 #define GPIO_AF12_FMC ((uint8_t)0x0C) /* FMC Alternate Function mapping */
ganlikun 0:13413ea9a877 166 #define GPIO_AF12_OTG_HS_FS ((uint8_t)0x0C) /* OTG HS configured in FS, Alternate Function mapping */
ganlikun 0:13413ea9a877 167 #define GPIO_AF12_SDIO ((uint8_t)0x0C) /* SDIO Alternate Function mapping */
ganlikun 0:13413ea9a877 168
ganlikun 0:13413ea9a877 169 /**
ganlikun 0:13413ea9a877 170 * @brief AF 13 selection
ganlikun 0:13413ea9a877 171 */
ganlikun 0:13413ea9a877 172 #define GPIO_AF13_DCMI ((uint8_t)0x0D) /* DCMI Alternate Function mapping */
ganlikun 0:13413ea9a877 173
ganlikun 0:13413ea9a877 174 /**
ganlikun 0:13413ea9a877 175 * @brief AF 14 selection
ganlikun 0:13413ea9a877 176 */
ganlikun 0:13413ea9a877 177 #define GPIO_AF14_LTDC ((uint8_t)0x0E) /* LCD-TFT Alternate Function mapping */
ganlikun 0:13413ea9a877 178
ganlikun 0:13413ea9a877 179 /**
ganlikun 0:13413ea9a877 180 * @brief AF 15 selection
ganlikun 0:13413ea9a877 181 */
ganlikun 0:13413ea9a877 182 #define GPIO_AF15_EVENTOUT ((uint8_t)0x0F) /* EVENTOUT Alternate Function mapping */
ganlikun 0:13413ea9a877 183 #endif /* STM32F429xx || STM32F439xx */
ganlikun 0:13413ea9a877 184 /*----------------------------------------------------------------------------*/
ganlikun 0:13413ea9a877 185
ganlikun 0:13413ea9a877 186 /*---------------------------------- STM32F427xx/STM32F437xx------------------*/
ganlikun 0:13413ea9a877 187 #if defined(STM32F427xx) || defined(STM32F437xx)
ganlikun 0:13413ea9a877 188 /**
ganlikun 0:13413ea9a877 189 * @brief AF 0 selection
ganlikun 0:13413ea9a877 190 */
ganlikun 0:13413ea9a877 191 #define GPIO_AF0_RTC_50Hz ((uint8_t)0x00) /* RTC_50Hz Alternate Function mapping */
ganlikun 0:13413ea9a877 192 #define GPIO_AF0_MCO ((uint8_t)0x00) /* MCO (MCO1 and MCO2) Alternate Function mapping */
ganlikun 0:13413ea9a877 193 #define GPIO_AF0_TAMPER ((uint8_t)0x00) /* TAMPER (TAMPER_1 and TAMPER_2) Alternate Function mapping */
ganlikun 0:13413ea9a877 194 #define GPIO_AF0_SWJ ((uint8_t)0x00) /* SWJ (SWD and JTAG) Alternate Function mapping */
ganlikun 0:13413ea9a877 195 #define GPIO_AF0_TRACE ((uint8_t)0x00) /* TRACE Alternate Function mapping */
ganlikun 0:13413ea9a877 196
ganlikun 0:13413ea9a877 197 /**
ganlikun 0:13413ea9a877 198 * @brief AF 1 selection
ganlikun 0:13413ea9a877 199 */
ganlikun 0:13413ea9a877 200 #define GPIO_AF1_TIM1 ((uint8_t)0x01) /* TIM1 Alternate Function mapping */
ganlikun 0:13413ea9a877 201 #define GPIO_AF1_TIM2 ((uint8_t)0x01) /* TIM2 Alternate Function mapping */
ganlikun 0:13413ea9a877 202
ganlikun 0:13413ea9a877 203 /**
ganlikun 0:13413ea9a877 204 * @brief AF 2 selection
ganlikun 0:13413ea9a877 205 */
ganlikun 0:13413ea9a877 206 #define GPIO_AF2_TIM3 ((uint8_t)0x02) /* TIM3 Alternate Function mapping */
ganlikun 0:13413ea9a877 207 #define GPIO_AF2_TIM4 ((uint8_t)0x02) /* TIM4 Alternate Function mapping */
ganlikun 0:13413ea9a877 208 #define GPIO_AF2_TIM5 ((uint8_t)0x02) /* TIM5 Alternate Function mapping */
ganlikun 0:13413ea9a877 209
ganlikun 0:13413ea9a877 210 /**
ganlikun 0:13413ea9a877 211 * @brief AF 3 selection
ganlikun 0:13413ea9a877 212 */
ganlikun 0:13413ea9a877 213 #define GPIO_AF3_TIM8 ((uint8_t)0x03) /* TIM8 Alternate Function mapping */
ganlikun 0:13413ea9a877 214 #define GPIO_AF3_TIM9 ((uint8_t)0x03) /* TIM9 Alternate Function mapping */
ganlikun 0:13413ea9a877 215 #define GPIO_AF3_TIM10 ((uint8_t)0x03) /* TIM10 Alternate Function mapping */
ganlikun 0:13413ea9a877 216 #define GPIO_AF3_TIM11 ((uint8_t)0x03) /* TIM11 Alternate Function mapping */
ganlikun 0:13413ea9a877 217
ganlikun 0:13413ea9a877 218 /**
ganlikun 0:13413ea9a877 219 * @brief AF 4 selection
ganlikun 0:13413ea9a877 220 */
ganlikun 0:13413ea9a877 221 #define GPIO_AF4_I2C1 ((uint8_t)0x04) /* I2C1 Alternate Function mapping */
ganlikun 0:13413ea9a877 222 #define GPIO_AF4_I2C2 ((uint8_t)0x04) /* I2C2 Alternate Function mapping */
ganlikun 0:13413ea9a877 223 #define GPIO_AF4_I2C3 ((uint8_t)0x04) /* I2C3 Alternate Function mapping */
ganlikun 0:13413ea9a877 224
ganlikun 0:13413ea9a877 225 /**
ganlikun 0:13413ea9a877 226 * @brief AF 5 selection
ganlikun 0:13413ea9a877 227 */
ganlikun 0:13413ea9a877 228 #define GPIO_AF5_SPI1 ((uint8_t)0x05) /* SPI1 Alternate Function mapping */
ganlikun 0:13413ea9a877 229 #define GPIO_AF5_SPI2 ((uint8_t)0x05) /* SPI2/I2S2 Alternate Function mapping */
ganlikun 0:13413ea9a877 230 #define GPIO_AF5_SPI3 ((uint8_t)0x05) /* SPI3/I2S3 Alternate Function mapping */
ganlikun 0:13413ea9a877 231 #define GPIO_AF5_SPI4 ((uint8_t)0x05) /* SPI4 Alternate Function mapping */
ganlikun 0:13413ea9a877 232 #define GPIO_AF5_SPI5 ((uint8_t)0x05) /* SPI5 Alternate Function mapping */
ganlikun 0:13413ea9a877 233 #define GPIO_AF5_SPI6 ((uint8_t)0x05) /* SPI6 Alternate Function mapping */
ganlikun 0:13413ea9a877 234 /** @brief GPIO_Legacy
ganlikun 0:13413ea9a877 235 */
ganlikun 0:13413ea9a877 236 #define GPIO_AF5_I2S3ext GPIO_AF5_SPI3 /* I2S3ext_SD Alternate Function mapping */
ganlikun 0:13413ea9a877 237
ganlikun 0:13413ea9a877 238 /**
ganlikun 0:13413ea9a877 239 * @brief AF 6 selection
ganlikun 0:13413ea9a877 240 */
ganlikun 0:13413ea9a877 241 #define GPIO_AF6_SPI3 ((uint8_t)0x06) /* SPI3/I2S3 Alternate Function mapping */
ganlikun 0:13413ea9a877 242 #define GPIO_AF6_I2S2ext ((uint8_t)0x06) /* I2S2ext_SD Alternate Function mapping */
ganlikun 0:13413ea9a877 243 #define GPIO_AF6_SAI1 ((uint8_t)0x06) /* SAI1 Alternate Function mapping */
ganlikun 0:13413ea9a877 244
ganlikun 0:13413ea9a877 245 /**
ganlikun 0:13413ea9a877 246 * @brief AF 7 selection
ganlikun 0:13413ea9a877 247 */
ganlikun 0:13413ea9a877 248 #define GPIO_AF7_USART1 ((uint8_t)0x07) /* USART1 Alternate Function mapping */
ganlikun 0:13413ea9a877 249 #define GPIO_AF7_USART2 ((uint8_t)0x07) /* USART2 Alternate Function mapping */
ganlikun 0:13413ea9a877 250 #define GPIO_AF7_USART3 ((uint8_t)0x07) /* USART3 Alternate Function mapping */
ganlikun 0:13413ea9a877 251 #define GPIO_AF7_I2S3ext ((uint8_t)0x07) /* I2S3ext_SD Alternate Function mapping */
ganlikun 0:13413ea9a877 252
ganlikun 0:13413ea9a877 253 /**
ganlikun 0:13413ea9a877 254 * @brief AF 8 selection
ganlikun 0:13413ea9a877 255 */
ganlikun 0:13413ea9a877 256 #define GPIO_AF8_UART4 ((uint8_t)0x08) /* UART4 Alternate Function mapping */
ganlikun 0:13413ea9a877 257 #define GPIO_AF8_UART5 ((uint8_t)0x08) /* UART5 Alternate Function mapping */
ganlikun 0:13413ea9a877 258 #define GPIO_AF8_USART6 ((uint8_t)0x08) /* USART6 Alternate Function mapping */
ganlikun 0:13413ea9a877 259 #define GPIO_AF8_UART7 ((uint8_t)0x08) /* UART7 Alternate Function mapping */
ganlikun 0:13413ea9a877 260 #define GPIO_AF8_UART8 ((uint8_t)0x08) /* UART8 Alternate Function mapping */
ganlikun 0:13413ea9a877 261
ganlikun 0:13413ea9a877 262 /**
ganlikun 0:13413ea9a877 263 * @brief AF 9 selection
ganlikun 0:13413ea9a877 264 */
ganlikun 0:13413ea9a877 265 #define GPIO_AF9_CAN1 ((uint8_t)0x09) /* CAN1 Alternate Function mapping */
ganlikun 0:13413ea9a877 266 #define GPIO_AF9_CAN2 ((uint8_t)0x09) /* CAN2 Alternate Function mapping */
ganlikun 0:13413ea9a877 267 #define GPIO_AF9_TIM12 ((uint8_t)0x09) /* TIM12 Alternate Function mapping */
ganlikun 0:13413ea9a877 268 #define GPIO_AF9_TIM13 ((uint8_t)0x09) /* TIM13 Alternate Function mapping */
ganlikun 0:13413ea9a877 269 #define GPIO_AF9_TIM14 ((uint8_t)0x09) /* TIM14 Alternate Function mapping */
ganlikun 0:13413ea9a877 270
ganlikun 0:13413ea9a877 271 /**
ganlikun 0:13413ea9a877 272 * @brief AF 10 selection
ganlikun 0:13413ea9a877 273 */
ganlikun 0:13413ea9a877 274 #define GPIO_AF10_OTG_FS ((uint8_t)0x0A) /* OTG_FS Alternate Function mapping */
ganlikun 0:13413ea9a877 275 #define GPIO_AF10_OTG_HS ((uint8_t)0x0A) /* OTG_HS Alternate Function mapping */
ganlikun 0:13413ea9a877 276
ganlikun 0:13413ea9a877 277 /**
ganlikun 0:13413ea9a877 278 * @brief AF 11 selection
ganlikun 0:13413ea9a877 279 */
ganlikun 0:13413ea9a877 280 #define GPIO_AF11_ETH ((uint8_t)0x0B) /* ETHERNET Alternate Function mapping */
ganlikun 0:13413ea9a877 281
ganlikun 0:13413ea9a877 282 /**
ganlikun 0:13413ea9a877 283 * @brief AF 12 selection
ganlikun 0:13413ea9a877 284 */
ganlikun 0:13413ea9a877 285 #define GPIO_AF12_FMC ((uint8_t)0x0C) /* FMC Alternate Function mapping */
ganlikun 0:13413ea9a877 286 #define GPIO_AF12_OTG_HS_FS ((uint8_t)0x0C) /* OTG HS configured in FS, Alternate Function mapping */
ganlikun 0:13413ea9a877 287 #define GPIO_AF12_SDIO ((uint8_t)0x0C) /* SDIO Alternate Function mapping */
ganlikun 0:13413ea9a877 288
ganlikun 0:13413ea9a877 289 /**
ganlikun 0:13413ea9a877 290 * @brief AF 13 selection
ganlikun 0:13413ea9a877 291 */
ganlikun 0:13413ea9a877 292 #define GPIO_AF13_DCMI ((uint8_t)0x0D) /* DCMI Alternate Function mapping */
ganlikun 0:13413ea9a877 293
ganlikun 0:13413ea9a877 294 /**
ganlikun 0:13413ea9a877 295 * @brief AF 15 selection
ganlikun 0:13413ea9a877 296 */
ganlikun 0:13413ea9a877 297 #define GPIO_AF15_EVENTOUT ((uint8_t)0x0F) /* EVENTOUT Alternate Function mapping */
ganlikun 0:13413ea9a877 298 #endif /* STM32F427xx || STM32F437xx */
ganlikun 0:13413ea9a877 299 /*----------------------------------------------------------------------------*/
ganlikun 0:13413ea9a877 300
ganlikun 0:13413ea9a877 301 /*---------------------------------- STM32F407xx/STM32F417xx------------------*/
ganlikun 0:13413ea9a877 302 #if defined(STM32F407xx) || defined(STM32F417xx)
ganlikun 0:13413ea9a877 303 /**
ganlikun 0:13413ea9a877 304 * @brief AF 0 selection
ganlikun 0:13413ea9a877 305 */
ganlikun 0:13413ea9a877 306 #define GPIO_AF0_RTC_50Hz ((uint8_t)0x00) /* RTC_50Hz Alternate Function mapping */
ganlikun 0:13413ea9a877 307 #define GPIO_AF0_MCO ((uint8_t)0x00) /* MCO (MCO1 and MCO2) Alternate Function mapping */
ganlikun 0:13413ea9a877 308 #define GPIO_AF0_TAMPER ((uint8_t)0x00) /* TAMPER (TAMPER_1 and TAMPER_2) Alternate Function mapping */
ganlikun 0:13413ea9a877 309 #define GPIO_AF0_SWJ ((uint8_t)0x00) /* SWJ (SWD and JTAG) Alternate Function mapping */
ganlikun 0:13413ea9a877 310 #define GPIO_AF0_TRACE ((uint8_t)0x00) /* TRACE Alternate Function mapping */
ganlikun 0:13413ea9a877 311
ganlikun 0:13413ea9a877 312 /**
ganlikun 0:13413ea9a877 313 * @brief AF 1 selection
ganlikun 0:13413ea9a877 314 */
ganlikun 0:13413ea9a877 315 #define GPIO_AF1_TIM1 ((uint8_t)0x01) /* TIM1 Alternate Function mapping */
ganlikun 0:13413ea9a877 316 #define GPIO_AF1_TIM2 ((uint8_t)0x01) /* TIM2 Alternate Function mapping */
ganlikun 0:13413ea9a877 317
ganlikun 0:13413ea9a877 318 /**
ganlikun 0:13413ea9a877 319 * @brief AF 2 selection
ganlikun 0:13413ea9a877 320 */
ganlikun 0:13413ea9a877 321 #define GPIO_AF2_TIM3 ((uint8_t)0x02) /* TIM3 Alternate Function mapping */
ganlikun 0:13413ea9a877 322 #define GPIO_AF2_TIM4 ((uint8_t)0x02) /* TIM4 Alternate Function mapping */
ganlikun 0:13413ea9a877 323 #define GPIO_AF2_TIM5 ((uint8_t)0x02) /* TIM5 Alternate Function mapping */
ganlikun 0:13413ea9a877 324
ganlikun 0:13413ea9a877 325 /**
ganlikun 0:13413ea9a877 326 * @brief AF 3 selection
ganlikun 0:13413ea9a877 327 */
ganlikun 0:13413ea9a877 328 #define GPIO_AF3_TIM8 ((uint8_t)0x03) /* TIM8 Alternate Function mapping */
ganlikun 0:13413ea9a877 329 #define GPIO_AF3_TIM9 ((uint8_t)0x03) /* TIM9 Alternate Function mapping */
ganlikun 0:13413ea9a877 330 #define GPIO_AF3_TIM10 ((uint8_t)0x03) /* TIM10 Alternate Function mapping */
ganlikun 0:13413ea9a877 331 #define GPIO_AF3_TIM11 ((uint8_t)0x03) /* TIM11 Alternate Function mapping */
ganlikun 0:13413ea9a877 332
ganlikun 0:13413ea9a877 333 /**
ganlikun 0:13413ea9a877 334 * @brief AF 4 selection
ganlikun 0:13413ea9a877 335 */
ganlikun 0:13413ea9a877 336 #define GPIO_AF4_I2C1 ((uint8_t)0x04) /* I2C1 Alternate Function mapping */
ganlikun 0:13413ea9a877 337 #define GPIO_AF4_I2C2 ((uint8_t)0x04) /* I2C2 Alternate Function mapping */
ganlikun 0:13413ea9a877 338 #define GPIO_AF4_I2C3 ((uint8_t)0x04) /* I2C3 Alternate Function mapping */
ganlikun 0:13413ea9a877 339
ganlikun 0:13413ea9a877 340 /**
ganlikun 0:13413ea9a877 341 * @brief AF 5 selection
ganlikun 0:13413ea9a877 342 */
ganlikun 0:13413ea9a877 343 #define GPIO_AF5_SPI1 ((uint8_t)0x05) /* SPI1 Alternate Function mapping */
ganlikun 0:13413ea9a877 344 #define GPIO_AF5_SPI2 ((uint8_t)0x05) /* SPI2/I2S2 Alternate Function mapping */
ganlikun 0:13413ea9a877 345 #define GPIO_AF5_I2S3ext ((uint8_t)0x05) /* I2S3ext_SD Alternate Function mapping */
ganlikun 0:13413ea9a877 346
ganlikun 0:13413ea9a877 347 /**
ganlikun 0:13413ea9a877 348 * @brief AF 6 selection
ganlikun 0:13413ea9a877 349 */
ganlikun 0:13413ea9a877 350 #define GPIO_AF6_SPI3 ((uint8_t)0x06) /* SPI3/I2S3 Alternate Function mapping */
ganlikun 0:13413ea9a877 351 #define GPIO_AF6_I2S2ext ((uint8_t)0x06) /* I2S2ext_SD Alternate Function mapping */
ganlikun 0:13413ea9a877 352
ganlikun 0:13413ea9a877 353 /**
ganlikun 0:13413ea9a877 354 * @brief AF 7 selection
ganlikun 0:13413ea9a877 355 */
ganlikun 0:13413ea9a877 356 #define GPIO_AF7_USART1 ((uint8_t)0x07) /* USART1 Alternate Function mapping */
ganlikun 0:13413ea9a877 357 #define GPIO_AF7_USART2 ((uint8_t)0x07) /* USART2 Alternate Function mapping */
ganlikun 0:13413ea9a877 358 #define GPIO_AF7_USART3 ((uint8_t)0x07) /* USART3 Alternate Function mapping */
ganlikun 0:13413ea9a877 359 #define GPIO_AF7_I2S3ext ((uint8_t)0x07) /* I2S3ext_SD Alternate Function mapping */
ganlikun 0:13413ea9a877 360
ganlikun 0:13413ea9a877 361 /**
ganlikun 0:13413ea9a877 362 * @brief AF 8 selection
ganlikun 0:13413ea9a877 363 */
ganlikun 0:13413ea9a877 364 #define GPIO_AF8_UART4 ((uint8_t)0x08) /* UART4 Alternate Function mapping */
ganlikun 0:13413ea9a877 365 #define GPIO_AF8_UART5 ((uint8_t)0x08) /* UART5 Alternate Function mapping */
ganlikun 0:13413ea9a877 366 #define GPIO_AF8_USART6 ((uint8_t)0x08) /* USART6 Alternate Function mapping */
ganlikun 0:13413ea9a877 367
ganlikun 0:13413ea9a877 368 /**
ganlikun 0:13413ea9a877 369 * @brief AF 9 selection
ganlikun 0:13413ea9a877 370 */
ganlikun 0:13413ea9a877 371 #define GPIO_AF9_CAN1 ((uint8_t)0x09) /* CAN1 Alternate Function mapping */
ganlikun 0:13413ea9a877 372 #define GPIO_AF9_CAN2 ((uint8_t)0x09) /* CAN2 Alternate Function mapping */
ganlikun 0:13413ea9a877 373 #define GPIO_AF9_TIM12 ((uint8_t)0x09) /* TIM12 Alternate Function mapping */
ganlikun 0:13413ea9a877 374 #define GPIO_AF9_TIM13 ((uint8_t)0x09) /* TIM13 Alternate Function mapping */
ganlikun 0:13413ea9a877 375 #define GPIO_AF9_TIM14 ((uint8_t)0x09) /* TIM14 Alternate Function mapping */
ganlikun 0:13413ea9a877 376
ganlikun 0:13413ea9a877 377 /**
ganlikun 0:13413ea9a877 378 * @brief AF 10 selection
ganlikun 0:13413ea9a877 379 */
ganlikun 0:13413ea9a877 380 #define GPIO_AF10_OTG_FS ((uint8_t)0x0A) /* OTG_FS Alternate Function mapping */
ganlikun 0:13413ea9a877 381 #define GPIO_AF10_OTG_HS ((uint8_t)0x0A) /* OTG_HS Alternate Function mapping */
ganlikun 0:13413ea9a877 382
ganlikun 0:13413ea9a877 383 /**
ganlikun 0:13413ea9a877 384 * @brief AF 11 selection
ganlikun 0:13413ea9a877 385 */
ganlikun 0:13413ea9a877 386 #define GPIO_AF11_ETH ((uint8_t)0x0B) /* ETHERNET Alternate Function mapping */
ganlikun 0:13413ea9a877 387
ganlikun 0:13413ea9a877 388 /**
ganlikun 0:13413ea9a877 389 * @brief AF 12 selection
ganlikun 0:13413ea9a877 390 */
ganlikun 0:13413ea9a877 391 #define GPIO_AF12_FSMC ((uint8_t)0x0C) /* FSMC Alternate Function mapping */
ganlikun 0:13413ea9a877 392 #define GPIO_AF12_OTG_HS_FS ((uint8_t)0x0C) /* OTG HS configured in FS, Alternate Function mapping */
ganlikun 0:13413ea9a877 393 #define GPIO_AF12_SDIO ((uint8_t)0x0C) /* SDIO Alternate Function mapping */
ganlikun 0:13413ea9a877 394
ganlikun 0:13413ea9a877 395 /**
ganlikun 0:13413ea9a877 396 * @brief AF 13 selection
ganlikun 0:13413ea9a877 397 */
ganlikun 0:13413ea9a877 398 #define GPIO_AF13_DCMI ((uint8_t)0x0D) /* DCMI Alternate Function mapping */
ganlikun 0:13413ea9a877 399
ganlikun 0:13413ea9a877 400 /**
ganlikun 0:13413ea9a877 401 * @brief AF 15 selection
ganlikun 0:13413ea9a877 402 */
ganlikun 0:13413ea9a877 403 #define GPIO_AF15_EVENTOUT ((uint8_t)0x0F) /* EVENTOUT Alternate Function mapping */
ganlikun 0:13413ea9a877 404 #endif /* STM32F407xx || STM32F417xx */
ganlikun 0:13413ea9a877 405 /*----------------------------------------------------------------------------*/
ganlikun 0:13413ea9a877 406
ganlikun 0:13413ea9a877 407 /*---------------------------------- STM32F405xx/STM32F415xx------------------*/
ganlikun 0:13413ea9a877 408 #if defined(STM32F405xx) || defined(STM32F415xx)
ganlikun 0:13413ea9a877 409 /**
ganlikun 0:13413ea9a877 410 * @brief AF 0 selection
ganlikun 0:13413ea9a877 411 */
ganlikun 0:13413ea9a877 412 #define GPIO_AF0_RTC_50Hz ((uint8_t)0x00) /* RTC_50Hz Alternate Function mapping */
ganlikun 0:13413ea9a877 413 #define GPIO_AF0_MCO ((uint8_t)0x00) /* MCO (MCO1 and MCO2) Alternate Function mapping */
ganlikun 0:13413ea9a877 414 #define GPIO_AF0_TAMPER ((uint8_t)0x00) /* TAMPER (TAMPER_1 and TAMPER_2) Alternate Function mapping */
ganlikun 0:13413ea9a877 415 #define GPIO_AF0_SWJ ((uint8_t)0x00) /* SWJ (SWD and JTAG) Alternate Function mapping */
ganlikun 0:13413ea9a877 416 #define GPIO_AF0_TRACE ((uint8_t)0x00) /* TRACE Alternate Function mapping */
ganlikun 0:13413ea9a877 417
ganlikun 0:13413ea9a877 418 /**
ganlikun 0:13413ea9a877 419 * @brief AF 1 selection
ganlikun 0:13413ea9a877 420 */
ganlikun 0:13413ea9a877 421 #define GPIO_AF1_TIM1 ((uint8_t)0x01) /* TIM1 Alternate Function mapping */
ganlikun 0:13413ea9a877 422 #define GPIO_AF1_TIM2 ((uint8_t)0x01) /* TIM2 Alternate Function mapping */
ganlikun 0:13413ea9a877 423
ganlikun 0:13413ea9a877 424 /**
ganlikun 0:13413ea9a877 425 * @brief AF 2 selection
ganlikun 0:13413ea9a877 426 */
ganlikun 0:13413ea9a877 427 #define GPIO_AF2_TIM3 ((uint8_t)0x02) /* TIM3 Alternate Function mapping */
ganlikun 0:13413ea9a877 428 #define GPIO_AF2_TIM4 ((uint8_t)0x02) /* TIM4 Alternate Function mapping */
ganlikun 0:13413ea9a877 429 #define GPIO_AF2_TIM5 ((uint8_t)0x02) /* TIM5 Alternate Function mapping */
ganlikun 0:13413ea9a877 430
ganlikun 0:13413ea9a877 431 /**
ganlikun 0:13413ea9a877 432 * @brief AF 3 selection
ganlikun 0:13413ea9a877 433 */
ganlikun 0:13413ea9a877 434 #define GPIO_AF3_TIM8 ((uint8_t)0x03) /* TIM8 Alternate Function mapping */
ganlikun 0:13413ea9a877 435 #define GPIO_AF3_TIM9 ((uint8_t)0x03) /* TIM9 Alternate Function mapping */
ganlikun 0:13413ea9a877 436 #define GPIO_AF3_TIM10 ((uint8_t)0x03) /* TIM10 Alternate Function mapping */
ganlikun 0:13413ea9a877 437 #define GPIO_AF3_TIM11 ((uint8_t)0x03) /* TIM11 Alternate Function mapping */
ganlikun 0:13413ea9a877 438
ganlikun 0:13413ea9a877 439 /**
ganlikun 0:13413ea9a877 440 * @brief AF 4 selection
ganlikun 0:13413ea9a877 441 */
ganlikun 0:13413ea9a877 442 #define GPIO_AF4_I2C1 ((uint8_t)0x04) /* I2C1 Alternate Function mapping */
ganlikun 0:13413ea9a877 443 #define GPIO_AF4_I2C2 ((uint8_t)0x04) /* I2C2 Alternate Function mapping */
ganlikun 0:13413ea9a877 444 #define GPIO_AF4_I2C3 ((uint8_t)0x04) /* I2C3 Alternate Function mapping */
ganlikun 0:13413ea9a877 445
ganlikun 0:13413ea9a877 446 /**
ganlikun 0:13413ea9a877 447 * @brief AF 5 selection
ganlikun 0:13413ea9a877 448 */
ganlikun 0:13413ea9a877 449 #define GPIO_AF5_SPI1 ((uint8_t)0x05) /* SPI1 Alternate Function mapping */
ganlikun 0:13413ea9a877 450 #define GPIO_AF5_SPI2 ((uint8_t)0x05) /* SPI2/I2S2 Alternate Function mapping */
ganlikun 0:13413ea9a877 451 #define GPIO_AF5_I2S3ext ((uint8_t)0x05) /* I2S3ext_SD Alternate Function mapping */
ganlikun 0:13413ea9a877 452
ganlikun 0:13413ea9a877 453 /**
ganlikun 0:13413ea9a877 454 * @brief AF 6 selection
ganlikun 0:13413ea9a877 455 */
ganlikun 0:13413ea9a877 456 #define GPIO_AF6_SPI3 ((uint8_t)0x06) /* SPI3/I2S3 Alternate Function mapping */
ganlikun 0:13413ea9a877 457 #define GPIO_AF6_I2S2ext ((uint8_t)0x06) /* I2S2ext_SD Alternate Function mapping */
ganlikun 0:13413ea9a877 458
ganlikun 0:13413ea9a877 459 /**
ganlikun 0:13413ea9a877 460 * @brief AF 7 selection
ganlikun 0:13413ea9a877 461 */
ganlikun 0:13413ea9a877 462 #define GPIO_AF7_USART1 ((uint8_t)0x07) /* USART1 Alternate Function mapping */
ganlikun 0:13413ea9a877 463 #define GPIO_AF7_USART2 ((uint8_t)0x07) /* USART2 Alternate Function mapping */
ganlikun 0:13413ea9a877 464 #define GPIO_AF7_USART3 ((uint8_t)0x07) /* USART3 Alternate Function mapping */
ganlikun 0:13413ea9a877 465 #define GPIO_AF7_I2S3ext ((uint8_t)0x07) /* I2S3ext_SD Alternate Function mapping */
ganlikun 0:13413ea9a877 466
ganlikun 0:13413ea9a877 467 /**
ganlikun 0:13413ea9a877 468 * @brief AF 8 selection
ganlikun 0:13413ea9a877 469 */
ganlikun 0:13413ea9a877 470 #define GPIO_AF8_UART4 ((uint8_t)0x08) /* UART4 Alternate Function mapping */
ganlikun 0:13413ea9a877 471 #define GPIO_AF8_UART5 ((uint8_t)0x08) /* UART5 Alternate Function mapping */
ganlikun 0:13413ea9a877 472 #define GPIO_AF8_USART6 ((uint8_t)0x08) /* USART6 Alternate Function mapping */
ganlikun 0:13413ea9a877 473
ganlikun 0:13413ea9a877 474 /**
ganlikun 0:13413ea9a877 475 * @brief AF 9 selection
ganlikun 0:13413ea9a877 476 */
ganlikun 0:13413ea9a877 477 #define GPIO_AF9_CAN1 ((uint8_t)0x09) /* CAN1 Alternate Function mapping */
ganlikun 0:13413ea9a877 478 #define GPIO_AF9_CAN2 ((uint8_t)0x09) /* CAN2 Alternate Function mapping */
ganlikun 0:13413ea9a877 479 #define GPIO_AF9_TIM12 ((uint8_t)0x09) /* TIM12 Alternate Function mapping */
ganlikun 0:13413ea9a877 480 #define GPIO_AF9_TIM13 ((uint8_t)0x09) /* TIM13 Alternate Function mapping */
ganlikun 0:13413ea9a877 481 #define GPIO_AF9_TIM14 ((uint8_t)0x09) /* TIM14 Alternate Function mapping */
ganlikun 0:13413ea9a877 482
ganlikun 0:13413ea9a877 483 /**
ganlikun 0:13413ea9a877 484 * @brief AF 10 selection
ganlikun 0:13413ea9a877 485 */
ganlikun 0:13413ea9a877 486 #define GPIO_AF10_OTG_FS ((uint8_t)0x0A) /* OTG_FS Alternate Function mapping */
ganlikun 0:13413ea9a877 487 #define GPIO_AF10_OTG_HS ((uint8_t)0x0A) /* OTG_HS Alternate Function mapping */
ganlikun 0:13413ea9a877 488
ganlikun 0:13413ea9a877 489 /**
ganlikun 0:13413ea9a877 490 * @brief AF 12 selection
ganlikun 0:13413ea9a877 491 */
ganlikun 0:13413ea9a877 492 #define GPIO_AF12_FSMC ((uint8_t)0x0C) /* FSMC Alternate Function mapping */
ganlikun 0:13413ea9a877 493 #define GPIO_AF12_OTG_HS_FS ((uint8_t)0x0C) /* OTG HS configured in FS, Alternate Function mapping */
ganlikun 0:13413ea9a877 494 #define GPIO_AF12_SDIO ((uint8_t)0x0C) /* SDIO Alternate Function mapping */
ganlikun 0:13413ea9a877 495
ganlikun 0:13413ea9a877 496 /**
ganlikun 0:13413ea9a877 497 * @brief AF 15 selection
ganlikun 0:13413ea9a877 498 */
ganlikun 0:13413ea9a877 499 #define GPIO_AF15_EVENTOUT ((uint8_t)0x0F) /* EVENTOUT Alternate Function mapping */
ganlikun 0:13413ea9a877 500 #endif /* STM32F405xx || STM32F415xx */
ganlikun 0:13413ea9a877 501
ganlikun 0:13413ea9a877 502 /*----------------------------------------------------------------------------*/
ganlikun 0:13413ea9a877 503
ganlikun 0:13413ea9a877 504 /*---------------------------------------- STM32F401xx------------------------*/
ganlikun 0:13413ea9a877 505 #if defined(STM32F401xC) || defined(STM32F401xE)
ganlikun 0:13413ea9a877 506 /**
ganlikun 0:13413ea9a877 507 * @brief AF 0 selection
ganlikun 0:13413ea9a877 508 */
ganlikun 0:13413ea9a877 509 #define GPIO_AF0_RTC_50Hz ((uint8_t)0x00) /* RTC_50Hz Alternate Function mapping */
ganlikun 0:13413ea9a877 510 #define GPIO_AF0_MCO ((uint8_t)0x00) /* MCO (MCO1 and MCO2) Alternate Function mapping */
ganlikun 0:13413ea9a877 511 #define GPIO_AF0_TAMPER ((uint8_t)0x00) /* TAMPER (TAMPER_1 and TAMPER_2) Alternate Function mapping */
ganlikun 0:13413ea9a877 512 #define GPIO_AF0_SWJ ((uint8_t)0x00) /* SWJ (SWD and JTAG) Alternate Function mapping */
ganlikun 0:13413ea9a877 513 #define GPIO_AF0_TRACE ((uint8_t)0x00) /* TRACE Alternate Function mapping */
ganlikun 0:13413ea9a877 514
ganlikun 0:13413ea9a877 515 /**
ganlikun 0:13413ea9a877 516 * @brief AF 1 selection
ganlikun 0:13413ea9a877 517 */
ganlikun 0:13413ea9a877 518 #define GPIO_AF1_TIM1 ((uint8_t)0x01) /* TIM1 Alternate Function mapping */
ganlikun 0:13413ea9a877 519 #define GPIO_AF1_TIM2 ((uint8_t)0x01) /* TIM2 Alternate Function mapping */
ganlikun 0:13413ea9a877 520
ganlikun 0:13413ea9a877 521 /**
ganlikun 0:13413ea9a877 522 * @brief AF 2 selection
ganlikun 0:13413ea9a877 523 */
ganlikun 0:13413ea9a877 524 #define GPIO_AF2_TIM3 ((uint8_t)0x02) /* TIM3 Alternate Function mapping */
ganlikun 0:13413ea9a877 525 #define GPIO_AF2_TIM4 ((uint8_t)0x02) /* TIM4 Alternate Function mapping */
ganlikun 0:13413ea9a877 526 #define GPIO_AF2_TIM5 ((uint8_t)0x02) /* TIM5 Alternate Function mapping */
ganlikun 0:13413ea9a877 527
ganlikun 0:13413ea9a877 528 /**
ganlikun 0:13413ea9a877 529 * @brief AF 3 selection
ganlikun 0:13413ea9a877 530 */
ganlikun 0:13413ea9a877 531 #define GPIO_AF3_TIM9 ((uint8_t)0x03) /* TIM9 Alternate Function mapping */
ganlikun 0:13413ea9a877 532 #define GPIO_AF3_TIM10 ((uint8_t)0x03) /* TIM10 Alternate Function mapping */
ganlikun 0:13413ea9a877 533 #define GPIO_AF3_TIM11 ((uint8_t)0x03) /* TIM11 Alternate Function mapping */
ganlikun 0:13413ea9a877 534
ganlikun 0:13413ea9a877 535 /**
ganlikun 0:13413ea9a877 536 * @brief AF 4 selection
ganlikun 0:13413ea9a877 537 */
ganlikun 0:13413ea9a877 538 #define GPIO_AF4_I2C1 ((uint8_t)0x04) /* I2C1 Alternate Function mapping */
ganlikun 0:13413ea9a877 539 #define GPIO_AF4_I2C2 ((uint8_t)0x04) /* I2C2 Alternate Function mapping */
ganlikun 0:13413ea9a877 540 #define GPIO_AF4_I2C3 ((uint8_t)0x04) /* I2C3 Alternate Function mapping */
ganlikun 0:13413ea9a877 541
ganlikun 0:13413ea9a877 542 /**
ganlikun 0:13413ea9a877 543 * @brief AF 5 selection
ganlikun 0:13413ea9a877 544 */
ganlikun 0:13413ea9a877 545 #define GPIO_AF5_SPI1 ((uint8_t)0x05) /* SPI1 Alternate Function mapping */
ganlikun 0:13413ea9a877 546 #define GPIO_AF5_SPI2 ((uint8_t)0x05) /* SPI2/I2S2 Alternate Function mapping */
ganlikun 0:13413ea9a877 547 #define GPIO_AF5_SPI4 ((uint8_t)0x05) /* SPI4 Alternate Function mapping */
ganlikun 0:13413ea9a877 548 #define GPIO_AF5_I2S3ext ((uint8_t)0x05) /* I2S3ext_SD Alternate Function mapping */
ganlikun 0:13413ea9a877 549
ganlikun 0:13413ea9a877 550 /**
ganlikun 0:13413ea9a877 551 * @brief AF 6 selection
ganlikun 0:13413ea9a877 552 */
ganlikun 0:13413ea9a877 553 #define GPIO_AF6_SPI3 ((uint8_t)0x06) /* SPI3/I2S3 Alternate Function mapping */
ganlikun 0:13413ea9a877 554 #define GPIO_AF6_I2S2ext ((uint8_t)0x06) /* I2S2ext_SD Alternate Function mapping */
ganlikun 0:13413ea9a877 555
ganlikun 0:13413ea9a877 556 /**
ganlikun 0:13413ea9a877 557 * @brief AF 7 selection
ganlikun 0:13413ea9a877 558 */
ganlikun 0:13413ea9a877 559 #define GPIO_AF7_USART1 ((uint8_t)0x07) /* USART1 Alternate Function mapping */
ganlikun 0:13413ea9a877 560 #define GPIO_AF7_USART2 ((uint8_t)0x07) /* USART2 Alternate Function mapping */
ganlikun 0:13413ea9a877 561 #define GPIO_AF7_I2S3ext ((uint8_t)0x07) /* I2S3ext_SD Alternate Function mapping */
ganlikun 0:13413ea9a877 562
ganlikun 0:13413ea9a877 563 /**
ganlikun 0:13413ea9a877 564 * @brief AF 8 selection
ganlikun 0:13413ea9a877 565 */
ganlikun 0:13413ea9a877 566 #define GPIO_AF8_USART6 ((uint8_t)0x08) /* USART6 Alternate Function mapping */
ganlikun 0:13413ea9a877 567
ganlikun 0:13413ea9a877 568 /**
ganlikun 0:13413ea9a877 569 * @brief AF 9 selection
ganlikun 0:13413ea9a877 570 */
ganlikun 0:13413ea9a877 571 #define GPIO_AF9_TIM14 ((uint8_t)0x09) /* TIM14 Alternate Function mapping */
ganlikun 0:13413ea9a877 572 #define GPIO_AF9_I2C2 ((uint8_t)0x09) /* I2C2 Alternate Function mapping */
ganlikun 0:13413ea9a877 573 #define GPIO_AF9_I2C3 ((uint8_t)0x09) /* I2C3 Alternate Function mapping */
ganlikun 0:13413ea9a877 574
ganlikun 0:13413ea9a877 575
ganlikun 0:13413ea9a877 576 /**
ganlikun 0:13413ea9a877 577 * @brief AF 10 selection
ganlikun 0:13413ea9a877 578 */
ganlikun 0:13413ea9a877 579 #define GPIO_AF10_OTG_FS ((uint8_t)0x0A) /* OTG_FS Alternate Function mapping */
ganlikun 0:13413ea9a877 580
ganlikun 0:13413ea9a877 581 /**
ganlikun 0:13413ea9a877 582 * @brief AF 12 selection
ganlikun 0:13413ea9a877 583 */
ganlikun 0:13413ea9a877 584 #define GPIO_AF12_SDIO ((uint8_t)0x0C) /* SDIO Alternate Function mapping */
ganlikun 0:13413ea9a877 585
ganlikun 0:13413ea9a877 586 /**
ganlikun 0:13413ea9a877 587 * @brief AF 15 selection
ganlikun 0:13413ea9a877 588 */
ganlikun 0:13413ea9a877 589 #define GPIO_AF15_EVENTOUT ((uint8_t)0x0F) /* EVENTOUT Alternate Function mapping */
ganlikun 0:13413ea9a877 590 #endif /* STM32F401xC || STM32F401xE */
ganlikun 0:13413ea9a877 591 /*----------------------------------------------------------------------------*/
ganlikun 0:13413ea9a877 592
ganlikun 0:13413ea9a877 593 /*--------------- STM32F412Zx/STM32F412Vx/STM32F412Rx/STM32F412Cx-------------*/
ganlikun 0:13413ea9a877 594 #if defined(STM32F412Zx) || defined(STM32F412Vx) || defined(STM32F412Rx) || defined(STM32F412Cx)
ganlikun 0:13413ea9a877 595 /**
ganlikun 0:13413ea9a877 596 * @brief AF 0 selection
ganlikun 0:13413ea9a877 597 */
ganlikun 0:13413ea9a877 598 #define GPIO_AF0_RTC_50Hz ((uint8_t)0x00) /* RTC_50Hz Alternate Function mapping */
ganlikun 0:13413ea9a877 599 #define GPIO_AF0_MCO ((uint8_t)0x00) /* MCO (MCO1 and MCO2) Alternate Function mapping */
ganlikun 0:13413ea9a877 600 #define GPIO_AF0_TAMPER ((uint8_t)0x00) /* TAMPER (TAMPER_1 and TAMPER_2) Alternate Function mapping */
ganlikun 0:13413ea9a877 601 #define GPIO_AF0_SWJ ((uint8_t)0x00) /* SWJ (SWD and JTAG) Alternate Function mapping */
ganlikun 0:13413ea9a877 602 #define GPIO_AF0_TRACE ((uint8_t)0x00) /* TRACE Alternate Function mapping */
ganlikun 0:13413ea9a877 603
ganlikun 0:13413ea9a877 604 /**
ganlikun 0:13413ea9a877 605 * @brief AF 1 selection
ganlikun 0:13413ea9a877 606 */
ganlikun 0:13413ea9a877 607 #define GPIO_AF1_TIM1 ((uint8_t)0x01) /* TIM1 Alternate Function mapping */
ganlikun 0:13413ea9a877 608 #define GPIO_AF1_TIM2 ((uint8_t)0x01) /* TIM2 Alternate Function mapping */
ganlikun 0:13413ea9a877 609
ganlikun 0:13413ea9a877 610 /**
ganlikun 0:13413ea9a877 611 * @brief AF 2 selection
ganlikun 0:13413ea9a877 612 */
ganlikun 0:13413ea9a877 613 #define GPIO_AF2_TIM3 ((uint8_t)0x02) /* TIM3 Alternate Function mapping */
ganlikun 0:13413ea9a877 614 #define GPIO_AF2_TIM4 ((uint8_t)0x02) /* TIM4 Alternate Function mapping */
ganlikun 0:13413ea9a877 615 #define GPIO_AF2_TIM5 ((uint8_t)0x02) /* TIM5 Alternate Function mapping */
ganlikun 0:13413ea9a877 616
ganlikun 0:13413ea9a877 617 /**
ganlikun 0:13413ea9a877 618 * @brief AF 3 selection
ganlikun 0:13413ea9a877 619 */
ganlikun 0:13413ea9a877 620 #define GPIO_AF3_TIM8 ((uint8_t)0x03) /* TIM8 Alternate Function mapping */
ganlikun 0:13413ea9a877 621 #define GPIO_AF3_TIM9 ((uint8_t)0x03) /* TIM9 Alternate Function mapping */
ganlikun 0:13413ea9a877 622 #define GPIO_AF3_TIM10 ((uint8_t)0x03) /* TIM10 Alternate Function mapping */
ganlikun 0:13413ea9a877 623 #define GPIO_AF3_TIM11 ((uint8_t)0x03) /* TIM11 Alternate Function mapping */
ganlikun 0:13413ea9a877 624
ganlikun 0:13413ea9a877 625 /**
ganlikun 0:13413ea9a877 626 * @brief AF 4 selection
ganlikun 0:13413ea9a877 627 */
ganlikun 0:13413ea9a877 628 #define GPIO_AF4_I2C1 ((uint8_t)0x04) /* I2C1 Alternate Function mapping */
ganlikun 0:13413ea9a877 629 #define GPIO_AF4_I2C2 ((uint8_t)0x04) /* I2C2 Alternate Function mapping */
ganlikun 0:13413ea9a877 630 #define GPIO_AF4_I2C3 ((uint8_t)0x04) /* I2C3 Alternate Function mapping */
ganlikun 0:13413ea9a877 631 #define GPIO_AF4_FMPI2C1 ((uint8_t)0x04) /* FMPI2C1 Alternate Function mapping */
ganlikun 0:13413ea9a877 632
ganlikun 0:13413ea9a877 633 /**
ganlikun 0:13413ea9a877 634 * @brief AF 5 selection
ganlikun 0:13413ea9a877 635 */
ganlikun 0:13413ea9a877 636 #define GPIO_AF5_SPI1 ((uint8_t)0x05) /* SPI1/I2S1 Alternate Function mapping */
ganlikun 0:13413ea9a877 637 #define GPIO_AF5_SPI2 ((uint8_t)0x05) /* SPI2/I2S2 Alternate Function mapping */
ganlikun 0:13413ea9a877 638 #define GPIO_AF5_SPI3 ((uint8_t)0x05) /* SPI3/I2S3 Alternate Function mapping */
ganlikun 0:13413ea9a877 639 #define GPIO_AF5_SPI4 ((uint8_t)0x05) /* SPI4/I2S4 Alternate Function mapping */
ganlikun 0:13413ea9a877 640 #define GPIO_AF5_I2S3ext ((uint8_t)0x05) /* I2S3ext_SD Alternate Function mapping */
ganlikun 0:13413ea9a877 641
ganlikun 0:13413ea9a877 642 /**
ganlikun 0:13413ea9a877 643 * @brief AF 6 selection
ganlikun 0:13413ea9a877 644 */
ganlikun 0:13413ea9a877 645 #define GPIO_AF6_SPI2 ((uint8_t)0x06) /* I2S2 Alternate Function mapping */
ganlikun 0:13413ea9a877 646 #define GPIO_AF6_SPI3 ((uint8_t)0x06) /* SPI3/I2S3 Alternate Function mapping */
ganlikun 0:13413ea9a877 647 #define GPIO_AF6_SPI4 ((uint8_t)0x06) /* SPI4/I2S4 Alternate Function mapping */
ganlikun 0:13413ea9a877 648 #define GPIO_AF6_SPI5 ((uint8_t)0x06) /* SPI5/I2S5 Alternate Function mapping */
ganlikun 0:13413ea9a877 649 #define GPIO_AF6_I2S2ext ((uint8_t)0x06) /* I2S2ext_SD Alternate Function mapping */
ganlikun 0:13413ea9a877 650 #define GPIO_AF6_DFSDM1 ((uint8_t)0x06) /* DFSDM1 Alternate Function mapping */
ganlikun 0:13413ea9a877 651 /**
ganlikun 0:13413ea9a877 652 * @brief AF 7 selection
ganlikun 0:13413ea9a877 653 */
ganlikun 0:13413ea9a877 654 #define GPIO_AF7_SPI3 ((uint8_t)0x07) /* SPI3/I2S3 Alternate Function mapping */
ganlikun 0:13413ea9a877 655 #define GPIO_AF7_USART1 ((uint8_t)0x07) /* USART1 Alternate Function mapping */
ganlikun 0:13413ea9a877 656 #define GPIO_AF7_USART2 ((uint8_t)0x07) /* USART2 Alternate Function mapping */
ganlikun 0:13413ea9a877 657 #define GPIO_AF7_USART3 ((uint8_t)0x07) /* USART3 Alternate Function mapping */
ganlikun 0:13413ea9a877 658 #define GPIO_AF7_I2S3ext ((uint8_t)0x07) /* I2S3ext_SD Alternate Function mapping */
ganlikun 0:13413ea9a877 659
ganlikun 0:13413ea9a877 660 /**
ganlikun 0:13413ea9a877 661 * @brief AF 8 selection
ganlikun 0:13413ea9a877 662 */
ganlikun 0:13413ea9a877 663 #define GPIO_AF8_USART6 ((uint8_t)0x08) /* USART6 Alternate Function mapping */
ganlikun 0:13413ea9a877 664 #define GPIO_AF8_USART3 ((uint8_t)0x08) /* USART3 Alternate Function mapping */
ganlikun 0:13413ea9a877 665 #define GPIO_AF8_DFSDM1 ((uint8_t)0x08) /* DFSDM1 Alternate Function mapping */
ganlikun 0:13413ea9a877 666 #define GPIO_AF8_CAN1 ((uint8_t)0x08) /* CAN1 Alternate Function mapping */
ganlikun 0:13413ea9a877 667
ganlikun 0:13413ea9a877 668 /**
ganlikun 0:13413ea9a877 669 * @brief AF 9 selection
ganlikun 0:13413ea9a877 670 */
ganlikun 0:13413ea9a877 671 #define GPIO_AF9_TIM12 ((uint8_t)0x09) /* TIM12 Alternate Function mapping */
ganlikun 0:13413ea9a877 672 #define GPIO_AF9_TIM13 ((uint8_t)0x09) /* TIM13 Alternate Function mapping */
ganlikun 0:13413ea9a877 673 #define GPIO_AF9_TIM14 ((uint8_t)0x09) /* TIM14 Alternate Function mapping */
ganlikun 0:13413ea9a877 674 #define GPIO_AF9_I2C2 ((uint8_t)0x09) /* I2C2 Alternate Function mapping */
ganlikun 0:13413ea9a877 675 #define GPIO_AF9_I2C3 ((uint8_t)0x09) /* I2C3 Alternate Function mapping */
ganlikun 0:13413ea9a877 676 #define GPIO_AF9_FMPI2C1 ((uint8_t)0x09) /* FMPI2C1 Alternate Function mapping */
ganlikun 0:13413ea9a877 677 #define GPIO_AF9_CAN1 ((uint8_t)0x09) /* CAN1 Alternate Function mapping */
ganlikun 0:13413ea9a877 678 #define GPIO_AF9_CAN2 ((uint8_t)0x09) /* CAN1 Alternate Function mapping */
ganlikun 0:13413ea9a877 679 #define GPIO_AF9_QSPI ((uint8_t)0x09) /* QSPI Alternate Function mapping */
ganlikun 0:13413ea9a877 680
ganlikun 0:13413ea9a877 681 /**
ganlikun 0:13413ea9a877 682 * @brief AF 10 selection
ganlikun 0:13413ea9a877 683 */
ganlikun 0:13413ea9a877 684 #define GPIO_AF10_OTG_FS ((uint8_t)0x0A) /* OTG_FS Alternate Function mapping */
ganlikun 0:13413ea9a877 685 #define GPIO_AF10_DFSDM1 ((uint8_t)0x0A) /* DFSDM1 Alternate Function mapping */
ganlikun 0:13413ea9a877 686 #define GPIO_AF10_QSPI ((uint8_t)0x0A) /* QSPI Alternate Function mapping */
ganlikun 0:13413ea9a877 687 #define GPIO_AF10_FMC ((uint8_t)0x0A) /* FMC Alternate Function mapping */
ganlikun 0:13413ea9a877 688
ganlikun 0:13413ea9a877 689 /**
ganlikun 0:13413ea9a877 690 * @brief AF 12 selection
ganlikun 0:13413ea9a877 691 */
ganlikun 0:13413ea9a877 692 #define GPIO_AF12_SDIO ((uint8_t)0x0C) /* SDIO Alternate Function mapping */
ganlikun 0:13413ea9a877 693 #define GPIO_AF12_FSMC ((uint8_t)0x0C) /* FMC Alternate Function mapping */
ganlikun 0:13413ea9a877 694
ganlikun 0:13413ea9a877 695 /**
ganlikun 0:13413ea9a877 696 * @brief AF 15 selection
ganlikun 0:13413ea9a877 697 */
ganlikun 0:13413ea9a877 698 #define GPIO_AF15_EVENTOUT ((uint8_t)0x0F) /* EVENTOUT Alternate Function mapping */
ganlikun 0:13413ea9a877 699 #endif /* STM32F412Zx || STM32F412Vx || STM32F412Rx || STM32F412Cx */
ganlikun 0:13413ea9a877 700
ganlikun 0:13413ea9a877 701 /*----------------------------------------------------------------------------*/
ganlikun 0:13413ea9a877 702
ganlikun 0:13413ea9a877 703 /*--------------- STM32F413xx/STM32F423xx-------------------------------------*/
ganlikun 0:13413ea9a877 704 #if defined(STM32F413xx) || defined(STM32F423xx)
ganlikun 0:13413ea9a877 705 /**
ganlikun 0:13413ea9a877 706 * @brief AF 0 selection
ganlikun 0:13413ea9a877 707 */
ganlikun 0:13413ea9a877 708 #define GPIO_AF0_RTC_50Hz ((uint8_t)0x00) /* RTC_50Hz Alternate Function mapping */
ganlikun 0:13413ea9a877 709 #define GPIO_AF0_MCO ((uint8_t)0x00) /* MCO (MCO1 and MCO2) Alternate Function mapping */
ganlikun 0:13413ea9a877 710 #define GPIO_AF0_SWJ ((uint8_t)0x00) /* SWJ (SWD and JTAG) Alternate Function mapping */
ganlikun 0:13413ea9a877 711 #define GPIO_AF0_TRACE ((uint8_t)0x00) /* TRACE Alternate Function mapping */
ganlikun 0:13413ea9a877 712
ganlikun 0:13413ea9a877 713 /**
ganlikun 0:13413ea9a877 714 * @brief AF 1 selection
ganlikun 0:13413ea9a877 715 */
ganlikun 0:13413ea9a877 716 #define GPIO_AF1_TIM1 ((uint8_t)0x01) /* TIM1 Alternate Function mapping */
ganlikun 0:13413ea9a877 717 #define GPIO_AF1_TIM2 ((uint8_t)0x01) /* TIM2 Alternate Function mapping */
ganlikun 0:13413ea9a877 718 #define GPIO_AF1_LPTIM1 ((uint8_t)0x01) /* LPTIM1 Alternate Function mapping */
ganlikun 0:13413ea9a877 719
ganlikun 0:13413ea9a877 720 /**
ganlikun 0:13413ea9a877 721 * @brief AF 2 selection
ganlikun 0:13413ea9a877 722 */
ganlikun 0:13413ea9a877 723 #define GPIO_AF2_TIM3 ((uint8_t)0x02) /* TIM3 Alternate Function mapping */
ganlikun 0:13413ea9a877 724 #define GPIO_AF2_TIM4 ((uint8_t)0x02) /* TIM4 Alternate Function mapping */
ganlikun 0:13413ea9a877 725 #define GPIO_AF2_TIM5 ((uint8_t)0x02) /* TIM5 Alternate Function mapping */
ganlikun 0:13413ea9a877 726
ganlikun 0:13413ea9a877 727 /**
ganlikun 0:13413ea9a877 728 * @brief AF 3 selection
ganlikun 0:13413ea9a877 729 */
ganlikun 0:13413ea9a877 730 #define GPIO_AF3_TIM8 ((uint8_t)0x03) /* TIM8 Alternate Function mapping */
ganlikun 0:13413ea9a877 731 #define GPIO_AF3_TIM9 ((uint8_t)0x03) /* TIM9 Alternate Function mapping */
ganlikun 0:13413ea9a877 732 #define GPIO_AF3_TIM10 ((uint8_t)0x03) /* TIM10 Alternate Function mapping */
ganlikun 0:13413ea9a877 733 #define GPIO_AF3_TIM11 ((uint8_t)0x03) /* TIM11 Alternate Function mapping */
ganlikun 0:13413ea9a877 734 #define GPIO_AF3_DFSDM2 ((uint8_t)0x03) /* DFSDM2 Alternate Function mapping */
ganlikun 0:13413ea9a877 735
ganlikun 0:13413ea9a877 736 /**
ganlikun 0:13413ea9a877 737 * @brief AF 4 selection
ganlikun 0:13413ea9a877 738 */
ganlikun 0:13413ea9a877 739 #define GPIO_AF4_I2C1 ((uint8_t)0x04) /* I2C1 Alternate Function mapping */
ganlikun 0:13413ea9a877 740 #define GPIO_AF4_I2C2 ((uint8_t)0x04) /* I2C2 Alternate Function mapping */
ganlikun 0:13413ea9a877 741 #define GPIO_AF4_I2C3 ((uint8_t)0x04) /* I2C3 Alternate Function mapping */
ganlikun 0:13413ea9a877 742 #define GPIO_AF4_FMPI2C1 ((uint8_t)0x04) /* FMPI2C1 Alternate Function mapping */
ganlikun 0:13413ea9a877 743
ganlikun 0:13413ea9a877 744 /**
ganlikun 0:13413ea9a877 745 * @brief AF 5 selection
ganlikun 0:13413ea9a877 746 */
ganlikun 0:13413ea9a877 747 #define GPIO_AF5_SPI1 ((uint8_t)0x05) /* SPI1/I2S1 Alternate Function mapping */
ganlikun 0:13413ea9a877 748 #define GPIO_AF5_SPI2 ((uint8_t)0x05) /* SPI2/I2S2 Alternate Function mapping */
ganlikun 0:13413ea9a877 749 #define GPIO_AF5_SPI3 ((uint8_t)0x05) /* SPI3/I2S3 Alternate Function mapping */
ganlikun 0:13413ea9a877 750 #define GPIO_AF5_SPI4 ((uint8_t)0x05) /* SPI4/I2S4 Alternate Function mapping */
ganlikun 0:13413ea9a877 751 #define GPIO_AF5_I2S3ext ((uint8_t)0x05) /* I2S3ext_SD Alternate Function mapping */
ganlikun 0:13413ea9a877 752
ganlikun 0:13413ea9a877 753 /**
ganlikun 0:13413ea9a877 754 * @brief AF 6 selection
ganlikun 0:13413ea9a877 755 */
ganlikun 0:13413ea9a877 756 #define GPIO_AF6_SPI2 ((uint8_t)0x06) /* I2S2 Alternate Function mapping */
ganlikun 0:13413ea9a877 757 #define GPIO_AF6_SPI3 ((uint8_t)0x06) /* SPI3/I2S3 Alternate Function mapping */
ganlikun 0:13413ea9a877 758 #define GPIO_AF6_SPI4 ((uint8_t)0x06) /* SPI4/I2S4 Alternate Function mapping */
ganlikun 0:13413ea9a877 759 #define GPIO_AF6_SPI5 ((uint8_t)0x06) /* SPI5/I2S5 Alternate Function mapping */
ganlikun 0:13413ea9a877 760 #define GPIO_AF6_I2S2ext ((uint8_t)0x06) /* I2S2ext_SD Alternate Function mapping */
ganlikun 0:13413ea9a877 761 #define GPIO_AF6_DFSDM1 ((uint8_t)0x06) /* DFSDM1 Alternate Function mapping */
ganlikun 0:13413ea9a877 762 #define GPIO_AF6_DFSDM2 ((uint8_t)0x06) /* DFSDM2 Alternate Function mapping */
ganlikun 0:13413ea9a877 763 /**
ganlikun 0:13413ea9a877 764 * @brief AF 7 selection
ganlikun 0:13413ea9a877 765 */
ganlikun 0:13413ea9a877 766 #define GPIO_AF7_SPI3 ((uint8_t)0x07) /* SPI3/I2S3 Alternate Function mapping */
ganlikun 0:13413ea9a877 767 #define GPIO_AF7_SAI1 ((uint8_t)0x07) /* SAI1 Alternate Function mapping */
ganlikun 0:13413ea9a877 768 #define GPIO_AF7_USART1 ((uint8_t)0x07) /* USART1 Alternate Function mapping */
ganlikun 0:13413ea9a877 769 #define GPIO_AF7_USART2 ((uint8_t)0x07) /* USART2 Alternate Function mapping */
ganlikun 0:13413ea9a877 770 #define GPIO_AF7_USART3 ((uint8_t)0x07) /* USART3 Alternate Function mapping */
ganlikun 0:13413ea9a877 771 #define GPIO_AF7_I2S3ext ((uint8_t)0x07) /* I2S3ext_SD Alternate Function mapping */
ganlikun 0:13413ea9a877 772 #define GPIO_AF7_DFSDM2 ((uint8_t)0x07) /* DFSDM2 Alternate Function mapping */
ganlikun 0:13413ea9a877 773
ganlikun 0:13413ea9a877 774 /**
ganlikun 0:13413ea9a877 775 * @brief AF 8 selection
ganlikun 0:13413ea9a877 776 */
ganlikun 0:13413ea9a877 777 #define GPIO_AF8_USART6 ((uint8_t)0x08) /* USART6 Alternate Function mapping */
ganlikun 0:13413ea9a877 778 #define GPIO_AF8_USART3 ((uint8_t)0x08) /* USART3 Alternate Function mapping */
ganlikun 0:13413ea9a877 779 #define GPIO_AF8_UART4 ((uint8_t)0x08) /* UART4 Alternate Function mapping */
ganlikun 0:13413ea9a877 780 #define GPIO_AF8_UART5 ((uint8_t)0x08) /* UART5 Alternate Function mapping */
ganlikun 0:13413ea9a877 781 #define GPIO_AF8_UART7 ((uint8_t)0x08) /* UART8 Alternate Function mapping */
ganlikun 0:13413ea9a877 782 #define GPIO_AF8_UART8 ((uint8_t)0x08) /* UART8 Alternate Function mapping */
ganlikun 0:13413ea9a877 783 #define GPIO_AF8_DFSDM1 ((uint8_t)0x08) /* DFSDM1 Alternate Function mapping */
ganlikun 0:13413ea9a877 784 #define GPIO_AF8_CAN1 ((uint8_t)0x08) /* CAN1 Alternate Function mapping */
ganlikun 0:13413ea9a877 785
ganlikun 0:13413ea9a877 786 /**
ganlikun 0:13413ea9a877 787 * @brief AF 9 selection
ganlikun 0:13413ea9a877 788 */
ganlikun 0:13413ea9a877 789 #define GPIO_AF9_TIM12 ((uint8_t)0x09) /* TIM12 Alternate Function mapping */
ganlikun 0:13413ea9a877 790 #define GPIO_AF9_TIM13 ((uint8_t)0x09) /* TIM13 Alternate Function mapping */
ganlikun 0:13413ea9a877 791 #define GPIO_AF9_TIM14 ((uint8_t)0x09) /* TIM14 Alternate Function mapping */
ganlikun 0:13413ea9a877 792 #define GPIO_AF9_I2C2 ((uint8_t)0x09) /* I2C2 Alternate Function mapping */
ganlikun 0:13413ea9a877 793 #define GPIO_AF9_I2C3 ((uint8_t)0x09) /* I2C3 Alternate Function mapping */
ganlikun 0:13413ea9a877 794 #define GPIO_AF9_FMPI2C1 ((uint8_t)0x09) /* FMPI2C1 Alternate Function mapping */
ganlikun 0:13413ea9a877 795 #define GPIO_AF9_CAN1 ((uint8_t)0x09) /* CAN1 Alternate Function mapping */
ganlikun 0:13413ea9a877 796 #define GPIO_AF9_CAN2 ((uint8_t)0x09) /* CAN1 Alternate Function mapping */
ganlikun 0:13413ea9a877 797 #define GPIO_AF9_QSPI ((uint8_t)0x09) /* QSPI Alternate Function mapping */
ganlikun 0:13413ea9a877 798
ganlikun 0:13413ea9a877 799 /**
ganlikun 0:13413ea9a877 800 * @brief AF 10 selection
ganlikun 0:13413ea9a877 801 */
ganlikun 0:13413ea9a877 802 #define GPIO_AF10_SAI1 ((uint8_t)0x0A) /* SAI1 Alternate Function mapping */
ganlikun 0:13413ea9a877 803 #define GPIO_AF10_OTG_FS ((uint8_t)0x0A) /* OTG_FS Alternate Function mapping */
ganlikun 0:13413ea9a877 804 #define GPIO_AF10_DFSDM1 ((uint8_t)0x0A) /* DFSDM1 Alternate Function mapping */
ganlikun 0:13413ea9a877 805 #define GPIO_AF10_DFSDM2 ((uint8_t)0x0A) /* DFSDM2 Alternate Function mapping */
ganlikun 0:13413ea9a877 806 #define GPIO_AF10_QSPI ((uint8_t)0x0A) /* QSPI Alternate Function mapping */
ganlikun 0:13413ea9a877 807 #define GPIO_AF10_FSMC ((uint8_t)0x0A) /* FSMC Alternate Function mapping */
ganlikun 0:13413ea9a877 808
ganlikun 0:13413ea9a877 809 /**
ganlikun 0:13413ea9a877 810 * @brief AF 11 selection
ganlikun 0:13413ea9a877 811 */
ganlikun 0:13413ea9a877 812 #define GPIO_AF11_UART4 ((uint8_t)0x0B) /* UART4 Alternate Function mapping */
ganlikun 0:13413ea9a877 813 #define GPIO_AF11_UART5 ((uint8_t)0x0B) /* UART5 Alternate Function mapping */
ganlikun 0:13413ea9a877 814 #define GPIO_AF11_UART9 ((uint8_t)0x0B) /* UART9 Alternate Function mapping */
ganlikun 0:13413ea9a877 815 #define GPIO_AF11_UART10 ((uint8_t)0x0B) /* UART10 Alternate Function mapping */
ganlikun 0:13413ea9a877 816 #define GPIO_AF11_CAN3 ((uint8_t)0x0B) /* CAN3 Alternate Function mapping */
ganlikun 0:13413ea9a877 817
ganlikun 0:13413ea9a877 818 /**
ganlikun 0:13413ea9a877 819 * @brief AF 12 selection
ganlikun 0:13413ea9a877 820 */
ganlikun 0:13413ea9a877 821 #define GPIO_AF12_SDIO ((uint8_t)0x0C) /* SDIO Alternate Function mapping */
ganlikun 0:13413ea9a877 822 #define GPIO_AF12_FSMC ((uint8_t)0x0C) /* FMC Alternate Function mapping */
ganlikun 0:13413ea9a877 823
ganlikun 0:13413ea9a877 824 /**
ganlikun 0:13413ea9a877 825 * @brief AF 14 selection
ganlikun 0:13413ea9a877 826 */
ganlikun 0:13413ea9a877 827 #define GPIO_AF14_RNG ((uint8_t)0x0E) /* RNG Alternate Function mapping */
ganlikun 0:13413ea9a877 828
ganlikun 0:13413ea9a877 829 /**
ganlikun 0:13413ea9a877 830 * @brief AF 15 selection
ganlikun 0:13413ea9a877 831 */
ganlikun 0:13413ea9a877 832 #define GPIO_AF15_EVENTOUT ((uint8_t)0x0F) /* EVENTOUT Alternate Function mapping */
ganlikun 0:13413ea9a877 833 #endif /* STM32F413xx || STM32F423xx */
ganlikun 0:13413ea9a877 834
ganlikun 0:13413ea9a877 835 /*---------------------------------------- STM32F411xx------------------------*/
ganlikun 0:13413ea9a877 836 #if defined(STM32F411xE)
ganlikun 0:13413ea9a877 837 /**
ganlikun 0:13413ea9a877 838 * @brief AF 0 selection
ganlikun 0:13413ea9a877 839 */
ganlikun 0:13413ea9a877 840 #define GPIO_AF0_RTC_50Hz ((uint8_t)0x00) /* RTC_50Hz Alternate Function mapping */
ganlikun 0:13413ea9a877 841 #define GPIO_AF0_MCO ((uint8_t)0x00) /* MCO (MCO1 and MCO2) Alternate Function mapping */
ganlikun 0:13413ea9a877 842 #define GPIO_AF0_TAMPER ((uint8_t)0x00) /* TAMPER (TAMPER_1 and TAMPER_2) Alternate Function mapping */
ganlikun 0:13413ea9a877 843 #define GPIO_AF0_SWJ ((uint8_t)0x00) /* SWJ (SWD and JTAG) Alternate Function mapping */
ganlikun 0:13413ea9a877 844 #define GPIO_AF0_TRACE ((uint8_t)0x00) /* TRACE Alternate Function mapping */
ganlikun 0:13413ea9a877 845
ganlikun 0:13413ea9a877 846 /**
ganlikun 0:13413ea9a877 847 * @brief AF 1 selection
ganlikun 0:13413ea9a877 848 */
ganlikun 0:13413ea9a877 849 #define GPIO_AF1_TIM1 ((uint8_t)0x01) /* TIM1 Alternate Function mapping */
ganlikun 0:13413ea9a877 850 #define GPIO_AF1_TIM2 ((uint8_t)0x01) /* TIM2 Alternate Function mapping */
ganlikun 0:13413ea9a877 851
ganlikun 0:13413ea9a877 852 /**
ganlikun 0:13413ea9a877 853 * @brief AF 2 selection
ganlikun 0:13413ea9a877 854 */
ganlikun 0:13413ea9a877 855 #define GPIO_AF2_TIM3 ((uint8_t)0x02) /* TIM3 Alternate Function mapping */
ganlikun 0:13413ea9a877 856 #define GPIO_AF2_TIM4 ((uint8_t)0x02) /* TIM4 Alternate Function mapping */
ganlikun 0:13413ea9a877 857 #define GPIO_AF2_TIM5 ((uint8_t)0x02) /* TIM5 Alternate Function mapping */
ganlikun 0:13413ea9a877 858
ganlikun 0:13413ea9a877 859 /**
ganlikun 0:13413ea9a877 860 * @brief AF 3 selection
ganlikun 0:13413ea9a877 861 */
ganlikun 0:13413ea9a877 862 #define GPIO_AF3_TIM9 ((uint8_t)0x03) /* TIM9 Alternate Function mapping */
ganlikun 0:13413ea9a877 863 #define GPIO_AF3_TIM10 ((uint8_t)0x03) /* TIM10 Alternate Function mapping */
ganlikun 0:13413ea9a877 864 #define GPIO_AF3_TIM11 ((uint8_t)0x03) /* TIM11 Alternate Function mapping */
ganlikun 0:13413ea9a877 865
ganlikun 0:13413ea9a877 866 /**
ganlikun 0:13413ea9a877 867 * @brief AF 4 selection
ganlikun 0:13413ea9a877 868 */
ganlikun 0:13413ea9a877 869 #define GPIO_AF4_I2C1 ((uint8_t)0x04) /* I2C1 Alternate Function mapping */
ganlikun 0:13413ea9a877 870 #define GPIO_AF4_I2C2 ((uint8_t)0x04) /* I2C2 Alternate Function mapping */
ganlikun 0:13413ea9a877 871 #define GPIO_AF4_I2C3 ((uint8_t)0x04) /* I2C3 Alternate Function mapping */
ganlikun 0:13413ea9a877 872
ganlikun 0:13413ea9a877 873 /**
ganlikun 0:13413ea9a877 874 * @brief AF 5 selection
ganlikun 0:13413ea9a877 875 */
ganlikun 0:13413ea9a877 876 #define GPIO_AF5_SPI1 ((uint8_t)0x05) /* SPI1/I2S1 Alternate Function mapping */
ganlikun 0:13413ea9a877 877 #define GPIO_AF5_SPI2 ((uint8_t)0x05) /* SPI2/I2S2 Alternate Function mapping */
ganlikun 0:13413ea9a877 878 #define GPIO_AF5_SPI3 ((uint8_t)0x05) /* SPI3/I2S3 Alternate Function mapping */
ganlikun 0:13413ea9a877 879 #define GPIO_AF5_SPI4 ((uint8_t)0x05) /* SPI4 Alternate Function mapping */
ganlikun 0:13413ea9a877 880 #define GPIO_AF5_I2S3ext ((uint8_t)0x05) /* I2S3ext_SD Alternate Function mapping */
ganlikun 0:13413ea9a877 881
ganlikun 0:13413ea9a877 882 /**
ganlikun 0:13413ea9a877 883 * @brief AF 6 selection
ganlikun 0:13413ea9a877 884 */
ganlikun 0:13413ea9a877 885 #define GPIO_AF6_SPI2 ((uint8_t)0x06) /* I2S2 Alternate Function mapping */
ganlikun 0:13413ea9a877 886 #define GPIO_AF6_SPI3 ((uint8_t)0x06) /* SPI3/I2S3 Alternate Function mapping */
ganlikun 0:13413ea9a877 887 #define GPIO_AF6_SPI4 ((uint8_t)0x06) /* SPI4/I2S4 Alternate Function mapping */
ganlikun 0:13413ea9a877 888 #define GPIO_AF6_SPI5 ((uint8_t)0x06) /* SPI5/I2S5 Alternate Function mapping */
ganlikun 0:13413ea9a877 889 #define GPIO_AF6_I2S2ext ((uint8_t)0x06) /* I2S2ext_SD Alternate Function mapping */
ganlikun 0:13413ea9a877 890
ganlikun 0:13413ea9a877 891 /**
ganlikun 0:13413ea9a877 892 * @brief AF 7 selection
ganlikun 0:13413ea9a877 893 */
ganlikun 0:13413ea9a877 894 #define GPIO_AF7_SPI3 ((uint8_t)0x07) /* SPI3/I2S3 Alternate Function mapping */
ganlikun 0:13413ea9a877 895 #define GPIO_AF7_USART1 ((uint8_t)0x07) /* USART1 Alternate Function mapping */
ganlikun 0:13413ea9a877 896 #define GPIO_AF7_USART2 ((uint8_t)0x07) /* USART2 Alternate Function mapping */
ganlikun 0:13413ea9a877 897 #define GPIO_AF7_I2S3ext ((uint8_t)0x07) /* I2S3ext_SD Alternate Function mapping */
ganlikun 0:13413ea9a877 898
ganlikun 0:13413ea9a877 899 /**
ganlikun 0:13413ea9a877 900 * @brief AF 8 selection
ganlikun 0:13413ea9a877 901 */
ganlikun 0:13413ea9a877 902 #define GPIO_AF8_USART6 ((uint8_t)0x08) /* USART6 Alternate Function mapping */
ganlikun 0:13413ea9a877 903
ganlikun 0:13413ea9a877 904 /**
ganlikun 0:13413ea9a877 905 * @brief AF 9 selection
ganlikun 0:13413ea9a877 906 */
ganlikun 0:13413ea9a877 907 #define GPIO_AF9_TIM14 ((uint8_t)0x09) /* TIM14 Alternate Function mapping */
ganlikun 0:13413ea9a877 908 #define GPIO_AF9_I2C2 ((uint8_t)0x09) /* I2C2 Alternate Function mapping */
ganlikun 0:13413ea9a877 909 #define GPIO_AF9_I2C3 ((uint8_t)0x09) /* I2C3 Alternate Function mapping */
ganlikun 0:13413ea9a877 910
ganlikun 0:13413ea9a877 911 /**
ganlikun 0:13413ea9a877 912 * @brief AF 10 selection
ganlikun 0:13413ea9a877 913 */
ganlikun 0:13413ea9a877 914 #define GPIO_AF10_OTG_FS ((uint8_t)0x0A) /* OTG_FS Alternate Function mapping */
ganlikun 0:13413ea9a877 915
ganlikun 0:13413ea9a877 916 /**
ganlikun 0:13413ea9a877 917 * @brief AF 12 selection
ganlikun 0:13413ea9a877 918 */
ganlikun 0:13413ea9a877 919 #define GPIO_AF12_SDIO ((uint8_t)0x0C) /* SDIO Alternate Function mapping */
ganlikun 0:13413ea9a877 920
ganlikun 0:13413ea9a877 921 /**
ganlikun 0:13413ea9a877 922 * @brief AF 15 selection
ganlikun 0:13413ea9a877 923 */
ganlikun 0:13413ea9a877 924 #define GPIO_AF15_EVENTOUT ((uint8_t)0x0F) /* EVENTOUT Alternate Function mapping */
ganlikun 0:13413ea9a877 925 #endif /* STM32F411xE */
ganlikun 0:13413ea9a877 926
ganlikun 0:13413ea9a877 927 /*---------------------------------------- STM32F410xx------------------------*/
ganlikun 0:13413ea9a877 928 #if defined(STM32F410Tx) || defined(STM32F410Cx) || defined(STM32F410Rx)
ganlikun 0:13413ea9a877 929 /**
ganlikun 0:13413ea9a877 930 * @brief AF 0 selection
ganlikun 0:13413ea9a877 931 */
ganlikun 0:13413ea9a877 932 #define GPIO_AF0_RTC_50Hz ((uint8_t)0x00) /* RTC_50Hz Alternate Function mapping */
ganlikun 0:13413ea9a877 933 #define GPIO_AF0_MCO ((uint8_t)0x00) /* MCO (MCO1 and MCO2) Alternate Function mapping */
ganlikun 0:13413ea9a877 934 #define GPIO_AF0_TAMPER ((uint8_t)0x00) /* TAMPER (TAMPER_1 and TAMPER_2) Alternate Function mapping */
ganlikun 0:13413ea9a877 935 #define GPIO_AF0_SWJ ((uint8_t)0x00) /* SWJ (SWD and JTAG) Alternate Function mapping */
ganlikun 0:13413ea9a877 936 #define GPIO_AF0_TRACE ((uint8_t)0x00) /* TRACE Alternate Function mapping */
ganlikun 0:13413ea9a877 937
ganlikun 0:13413ea9a877 938 /**
ganlikun 0:13413ea9a877 939 * @brief AF 1 selection
ganlikun 0:13413ea9a877 940 */
ganlikun 0:13413ea9a877 941 #define GPIO_AF1_TIM1 ((uint8_t)0x01) /* TIM1 Alternate Function mapping */
ganlikun 0:13413ea9a877 942 #define GPIO_AF1_LPTIM1 ((uint8_t)0x01) /* LPTIM1 Alternate Function mapping */
ganlikun 0:13413ea9a877 943
ganlikun 0:13413ea9a877 944 /**
ganlikun 0:13413ea9a877 945 * @brief AF 2 selection
ganlikun 0:13413ea9a877 946 */
ganlikun 0:13413ea9a877 947 #define GPIO_AF2_TIM5 ((uint8_t)0x02) /* TIM5 Alternate Function mapping */
ganlikun 0:13413ea9a877 948
ganlikun 0:13413ea9a877 949 /**
ganlikun 0:13413ea9a877 950 * @brief AF 3 selection
ganlikun 0:13413ea9a877 951 */
ganlikun 0:13413ea9a877 952 #define GPIO_AF3_TIM9 ((uint8_t)0x03) /* TIM9 Alternate Function mapping */
ganlikun 0:13413ea9a877 953 #define GPIO_AF3_TIM11 ((uint8_t)0x03) /* TIM11 Alternate Function mapping */
ganlikun 0:13413ea9a877 954
ganlikun 0:13413ea9a877 955 /**
ganlikun 0:13413ea9a877 956 * @brief AF 4 selection
ganlikun 0:13413ea9a877 957 */
ganlikun 0:13413ea9a877 958 #define GPIO_AF4_I2C1 ((uint8_t)0x04) /* I2C1 Alternate Function mapping */
ganlikun 0:13413ea9a877 959 #define GPIO_AF4_I2C2 ((uint8_t)0x04) /* I2C2 Alternate Function mapping */
ganlikun 0:13413ea9a877 960 #define GPIO_AF4_FMPI2C1 ((uint8_t)0x04) /* FMPI2C1 Alternate Function mapping */
ganlikun 0:13413ea9a877 961
ganlikun 0:13413ea9a877 962 /**
ganlikun 0:13413ea9a877 963 * @brief AF 5 selection
ganlikun 0:13413ea9a877 964 */
ganlikun 0:13413ea9a877 965 #define GPIO_AF5_SPI1 ((uint8_t)0x05) /* SPI1/I2S1 Alternate Function mapping */
ganlikun 0:13413ea9a877 966 #if defined(STM32F410Cx) || defined(STM32F410Rx)
ganlikun 0:13413ea9a877 967 #define GPIO_AF5_SPI2 ((uint8_t)0x05) /* SPI2/I2S2 Alternate Function mapping */
ganlikun 0:13413ea9a877 968 #endif /* STM32F410Cx || STM32F410Rx */
ganlikun 0:13413ea9a877 969
ganlikun 0:13413ea9a877 970 /**
ganlikun 0:13413ea9a877 971 * @brief AF 6 selection
ganlikun 0:13413ea9a877 972 */
ganlikun 0:13413ea9a877 973 #define GPIO_AF6_SPI1 ((uint8_t)0x06) /* SPI1 Alternate Function mapping */
ganlikun 0:13413ea9a877 974 #if defined(STM32F410Cx) || defined(STM32F410Rx)
ganlikun 0:13413ea9a877 975 #define GPIO_AF6_SPI2 ((uint8_t)0x06) /* I2S2 Alternate Function mapping */
ganlikun 0:13413ea9a877 976 #endif /* STM32F410Cx || STM32F410Rx */
ganlikun 0:13413ea9a877 977 #define GPIO_AF6_SPI5 ((uint8_t)0x06) /* SPI5/I2S5 Alternate Function mapping */
ganlikun 0:13413ea9a877 978 /**
ganlikun 0:13413ea9a877 979 * @brief AF 7 selection
ganlikun 0:13413ea9a877 980 */
ganlikun 0:13413ea9a877 981 #define GPIO_AF7_USART1 ((uint8_t)0x07) /* USART1 Alternate Function mapping */
ganlikun 0:13413ea9a877 982 #define GPIO_AF7_USART2 ((uint8_t)0x07) /* USART2 Alternate Function mapping */
ganlikun 0:13413ea9a877 983
ganlikun 0:13413ea9a877 984 /**
ganlikun 0:13413ea9a877 985 * @brief AF 8 selection
ganlikun 0:13413ea9a877 986 */
ganlikun 0:13413ea9a877 987 #define GPIO_AF8_USART6 ((uint8_t)0x08) /* USART6 Alternate Function mapping */
ganlikun 0:13413ea9a877 988
ganlikun 0:13413ea9a877 989 /**
ganlikun 0:13413ea9a877 990 * @brief AF 9 selection
ganlikun 0:13413ea9a877 991 */
ganlikun 0:13413ea9a877 992 #define GPIO_AF9_I2C2 ((uint8_t)0x09) /* I2C2 Alternate Function mapping */
ganlikun 0:13413ea9a877 993 #define GPIO_AF9_FMPI2C1 ((uint8_t)0x09) /* FMPI2C1 Alternate Function mapping */
ganlikun 0:13413ea9a877 994
ganlikun 0:13413ea9a877 995 /**
ganlikun 0:13413ea9a877 996 * @brief AF 15 selection
ganlikun 0:13413ea9a877 997 */
ganlikun 0:13413ea9a877 998 #define GPIO_AF15_EVENTOUT ((uint8_t)0x0F) /* EVENTOUT Alternate Function mapping */
ganlikun 0:13413ea9a877 999 #endif /* STM32F410Tx || STM32F410Cx || STM32F410Rx */
ganlikun 0:13413ea9a877 1000
ganlikun 0:13413ea9a877 1001 /*---------------------------------------- STM32F446xx -----------------------*/
ganlikun 0:13413ea9a877 1002 #if defined(STM32F446xx)
ganlikun 0:13413ea9a877 1003 /**
ganlikun 0:13413ea9a877 1004 * @brief AF 0 selection
ganlikun 0:13413ea9a877 1005 */
ganlikun 0:13413ea9a877 1006 #define GPIO_AF0_RTC_50Hz ((uint8_t)0x00) /* RTC_50Hz Alternate Function mapping */
ganlikun 0:13413ea9a877 1007 #define GPIO_AF0_MCO ((uint8_t)0x00) /* MCO (MCO1 and MCO2) Alternate Function mapping */
ganlikun 0:13413ea9a877 1008 #define GPIO_AF0_TAMPER ((uint8_t)0x00) /* TAMPER (TAMPER_1 and TAMPER_2) Alternate Function mapping */
ganlikun 0:13413ea9a877 1009 #define GPIO_AF0_SWJ ((uint8_t)0x00) /* SWJ (SWD and JTAG) Alternate Function mapping */
ganlikun 0:13413ea9a877 1010 #define GPIO_AF0_TRACE ((uint8_t)0x00) /* TRACE Alternate Function mapping */
ganlikun 0:13413ea9a877 1011
ganlikun 0:13413ea9a877 1012 /**
ganlikun 0:13413ea9a877 1013 * @brief AF 1 selection
ganlikun 0:13413ea9a877 1014 */
ganlikun 0:13413ea9a877 1015 #define GPIO_AF1_TIM1 ((uint8_t)0x01) /* TIM1 Alternate Function mapping */
ganlikun 0:13413ea9a877 1016 #define GPIO_AF1_TIM2 ((uint8_t)0x01) /* TIM2 Alternate Function mapping */
ganlikun 0:13413ea9a877 1017
ganlikun 0:13413ea9a877 1018 /**
ganlikun 0:13413ea9a877 1019 * @brief AF 2 selection
ganlikun 0:13413ea9a877 1020 */
ganlikun 0:13413ea9a877 1021 #define GPIO_AF2_TIM3 ((uint8_t)0x02) /* TIM3 Alternate Function mapping */
ganlikun 0:13413ea9a877 1022 #define GPIO_AF2_TIM4 ((uint8_t)0x02) /* TIM4 Alternate Function mapping */
ganlikun 0:13413ea9a877 1023 #define GPIO_AF2_TIM5 ((uint8_t)0x02) /* TIM5 Alternate Function mapping */
ganlikun 0:13413ea9a877 1024
ganlikun 0:13413ea9a877 1025 /**
ganlikun 0:13413ea9a877 1026 * @brief AF 3 selection
ganlikun 0:13413ea9a877 1027 */
ganlikun 0:13413ea9a877 1028 #define GPIO_AF3_TIM8 ((uint8_t)0x03) /* TIM8 Alternate Function mapping */
ganlikun 0:13413ea9a877 1029 #define GPIO_AF3_TIM9 ((uint8_t)0x03) /* TIM9 Alternate Function mapping */
ganlikun 0:13413ea9a877 1030 #define GPIO_AF3_TIM10 ((uint8_t)0x03) /* TIM10 Alternate Function mapping */
ganlikun 0:13413ea9a877 1031 #define GPIO_AF3_TIM11 ((uint8_t)0x03) /* TIM11 Alternate Function mapping */
ganlikun 0:13413ea9a877 1032 #define GPIO_AF3_CEC ((uint8_t)0x03) /* CEC Alternate Function mapping */
ganlikun 0:13413ea9a877 1033
ganlikun 0:13413ea9a877 1034 /**
ganlikun 0:13413ea9a877 1035 * @brief AF 4 selection
ganlikun 0:13413ea9a877 1036 */
ganlikun 0:13413ea9a877 1037 #define GPIO_AF4_I2C1 ((uint8_t)0x04) /* I2C1 Alternate Function mapping */
ganlikun 0:13413ea9a877 1038 #define GPIO_AF4_I2C2 ((uint8_t)0x04) /* I2C2 Alternate Function mapping */
ganlikun 0:13413ea9a877 1039 #define GPIO_AF4_I2C3 ((uint8_t)0x04) /* I2C3 Alternate Function mapping */
ganlikun 0:13413ea9a877 1040 #define GPIO_AF4_FMPI2C1 ((uint8_t)0x04) /* FMPI2C1 Alternate Function mapping */
ganlikun 0:13413ea9a877 1041 #define GPIO_AF4_CEC ((uint8_t)0x04) /* CEC Alternate Function mapping */
ganlikun 0:13413ea9a877 1042
ganlikun 0:13413ea9a877 1043 /**
ganlikun 0:13413ea9a877 1044 * @brief AF 5 selection
ganlikun 0:13413ea9a877 1045 */
ganlikun 0:13413ea9a877 1046 #define GPIO_AF5_SPI1 ((uint8_t)0x05) /* SPI1/I2S1 Alternate Function mapping */
ganlikun 0:13413ea9a877 1047 #define GPIO_AF5_SPI2 ((uint8_t)0x05) /* SPI2/I2S2 Alternate Function mapping */
ganlikun 0:13413ea9a877 1048 #define GPIO_AF5_SPI3 ((uint8_t)0x05) /* SPI3/I2S3 Alternate Function mapping */
ganlikun 0:13413ea9a877 1049 #define GPIO_AF5_SPI4 ((uint8_t)0x05) /* SPI4 Alternate Function mapping */
ganlikun 0:13413ea9a877 1050
ganlikun 0:13413ea9a877 1051 /**
ganlikun 0:13413ea9a877 1052 * @brief AF 6 selection
ganlikun 0:13413ea9a877 1053 */
ganlikun 0:13413ea9a877 1054 #define GPIO_AF6_SPI2 ((uint8_t)0x06) /* SPI2/I2S2 Alternate Function mapping */
ganlikun 0:13413ea9a877 1055 #define GPIO_AF6_SPI3 ((uint8_t)0x06) /* SPI3/I2S3 Alternate Function mapping */
ganlikun 0:13413ea9a877 1056 #define GPIO_AF6_SPI4 ((uint8_t)0x06) /* SPI4 Alternate Function mapping */
ganlikun 0:13413ea9a877 1057 #define GPIO_AF6_SAI1 ((uint8_t)0x06) /* SAI1 Alternate Function mapping */
ganlikun 0:13413ea9a877 1058
ganlikun 0:13413ea9a877 1059 /**
ganlikun 0:13413ea9a877 1060 * @brief AF 7 selection
ganlikun 0:13413ea9a877 1061 */
ganlikun 0:13413ea9a877 1062 #define GPIO_AF7_USART1 ((uint8_t)0x07) /* USART1 Alternate Function mapping */
ganlikun 0:13413ea9a877 1063 #define GPIO_AF7_USART2 ((uint8_t)0x07) /* USART2 Alternate Function mapping */
ganlikun 0:13413ea9a877 1064 #define GPIO_AF7_USART3 ((uint8_t)0x07) /* USART3 Alternate Function mapping */
ganlikun 0:13413ea9a877 1065 #define GPIO_AF7_UART5 ((uint8_t)0x07) /* UART5 Alternate Function mapping */
ganlikun 0:13413ea9a877 1066 #define GPIO_AF7_SPI2 ((uint8_t)0x07) /* SPI2/I2S2 Alternate Function mapping */
ganlikun 0:13413ea9a877 1067 #define GPIO_AF7_SPI3 ((uint8_t)0x07) /* SPI3/I2S3 Alternate Function mapping */
ganlikun 0:13413ea9a877 1068 #define GPIO_AF7_SPDIFRX ((uint8_t)0x07) /* SPDIFRX Alternate Function mapping */
ganlikun 0:13413ea9a877 1069
ganlikun 0:13413ea9a877 1070 /**
ganlikun 0:13413ea9a877 1071 * @brief AF 8 selection
ganlikun 0:13413ea9a877 1072 */
ganlikun 0:13413ea9a877 1073 #define GPIO_AF8_UART4 ((uint8_t)0x08) /* UART4 Alternate Function mapping */
ganlikun 0:13413ea9a877 1074 #define GPIO_AF8_UART5 ((uint8_t)0x08) /* UART5 Alternate Function mapping */
ganlikun 0:13413ea9a877 1075 #define GPIO_AF8_USART6 ((uint8_t)0x08) /* USART6 Alternate Function mapping */
ganlikun 0:13413ea9a877 1076 #define GPIO_AF8_SPDIFRX ((uint8_t)0x08) /* SPDIFRX Alternate Function mapping */
ganlikun 0:13413ea9a877 1077 #define GPIO_AF8_SAI2 ((uint8_t)0x08) /* SAI2 Alternate Function mapping */
ganlikun 0:13413ea9a877 1078
ganlikun 0:13413ea9a877 1079 /**
ganlikun 0:13413ea9a877 1080 * @brief AF 9 selection
ganlikun 0:13413ea9a877 1081 */
ganlikun 0:13413ea9a877 1082 #define GPIO_AF9_CAN1 ((uint8_t)0x09) /* CAN1 Alternate Function mapping */
ganlikun 0:13413ea9a877 1083 #define GPIO_AF9_CAN2 ((uint8_t)0x09) /* CAN2 Alternate Function mapping */
ganlikun 0:13413ea9a877 1084 #define GPIO_AF9_TIM12 ((uint8_t)0x09) /* TIM12 Alternate Function mapping */
ganlikun 0:13413ea9a877 1085 #define GPIO_AF9_TIM13 ((uint8_t)0x09) /* TIM13 Alternate Function mapping */
ganlikun 0:13413ea9a877 1086 #define GPIO_AF9_TIM14 ((uint8_t)0x09) /* TIM14 Alternate Function mapping */
ganlikun 0:13413ea9a877 1087 #define GPIO_AF9_QSPI ((uint8_t)0x09) /* QSPI Alternate Function mapping */
ganlikun 0:13413ea9a877 1088
ganlikun 0:13413ea9a877 1089 /**
ganlikun 0:13413ea9a877 1090 * @brief AF 10 selection
ganlikun 0:13413ea9a877 1091 */
ganlikun 0:13413ea9a877 1092 #define GPIO_AF10_OTG_FS ((uint8_t)0x0A) /* OTG_FS Alternate Function mapping */
ganlikun 0:13413ea9a877 1093 #define GPIO_AF10_OTG_HS ((uint8_t)0x0A) /* OTG_HS Alternate Function mapping */
ganlikun 0:13413ea9a877 1094 #define GPIO_AF10_SAI2 ((uint8_t)0x0A) /* SAI2 Alternate Function mapping */
ganlikun 0:13413ea9a877 1095 #define GPIO_AF10_QSPI ((uint8_t)0x0A) /* QSPI Alternate Function mapping */
ganlikun 0:13413ea9a877 1096
ganlikun 0:13413ea9a877 1097 /**
ganlikun 0:13413ea9a877 1098 * @brief AF 11 selection
ganlikun 0:13413ea9a877 1099 */
ganlikun 0:13413ea9a877 1100 #define GPIO_AF11_ETH ((uint8_t)0x0B) /* ETHERNET Alternate Function mapping */
ganlikun 0:13413ea9a877 1101
ganlikun 0:13413ea9a877 1102 /**
ganlikun 0:13413ea9a877 1103 * @brief AF 12 selection
ganlikun 0:13413ea9a877 1104 */
ganlikun 0:13413ea9a877 1105 #define GPIO_AF12_FMC ((uint8_t)0x0C) /* FMC Alternate Function mapping */
ganlikun 0:13413ea9a877 1106 #define GPIO_AF12_OTG_HS_FS ((uint8_t)0x0C) /* OTG HS configured in FS, Alternate Function mapping */
ganlikun 0:13413ea9a877 1107 #define GPIO_AF12_SDIO ((uint8_t)0x0C) /* SDIO Alternate Function mapping */
ganlikun 0:13413ea9a877 1108
ganlikun 0:13413ea9a877 1109 /**
ganlikun 0:13413ea9a877 1110 * @brief AF 13 selection
ganlikun 0:13413ea9a877 1111 */
ganlikun 0:13413ea9a877 1112 #define GPIO_AF13_DCMI ((uint8_t)0x0D) /* DCMI Alternate Function mapping */
ganlikun 0:13413ea9a877 1113
ganlikun 0:13413ea9a877 1114 /**
ganlikun 0:13413ea9a877 1115 * @brief AF 15 selection
ganlikun 0:13413ea9a877 1116 */
ganlikun 0:13413ea9a877 1117 #define GPIO_AF15_EVENTOUT ((uint8_t)0x0F) /* EVENTOUT Alternate Function mapping */
ganlikun 0:13413ea9a877 1118
ganlikun 0:13413ea9a877 1119 #endif /* STM32F446xx */
ganlikun 0:13413ea9a877 1120 /*----------------------------------------------------------------------------*/
ganlikun 0:13413ea9a877 1121
ganlikun 0:13413ea9a877 1122 /*-------------------------------- STM32F469xx/STM32F479xx--------------------*/
ganlikun 0:13413ea9a877 1123 #if defined(STM32F469xx) || defined(STM32F479xx)
ganlikun 0:13413ea9a877 1124 /**
ganlikun 0:13413ea9a877 1125 * @brief AF 0 selection
ganlikun 0:13413ea9a877 1126 */
ganlikun 0:13413ea9a877 1127 #define GPIO_AF0_RTC_50Hz ((uint8_t)0x00) /* RTC_50Hz Alternate Function mapping */
ganlikun 0:13413ea9a877 1128 #define GPIO_AF0_MCO ((uint8_t)0x00) /* MCO (MCO1 and MCO2) Alternate Function mapping */
ganlikun 0:13413ea9a877 1129 #define GPIO_AF0_TAMPER ((uint8_t)0x00) /* TAMPER (TAMPER_1 and TAMPER_2) Alternate Function mapping */
ganlikun 0:13413ea9a877 1130 #define GPIO_AF0_SWJ ((uint8_t)0x00) /* SWJ (SWD and JTAG) Alternate Function mapping */
ganlikun 0:13413ea9a877 1131 #define GPIO_AF0_TRACE ((uint8_t)0x00) /* TRACE Alternate Function mapping */
ganlikun 0:13413ea9a877 1132
ganlikun 0:13413ea9a877 1133 /**
ganlikun 0:13413ea9a877 1134 * @brief AF 1 selection
ganlikun 0:13413ea9a877 1135 */
ganlikun 0:13413ea9a877 1136 #define GPIO_AF1_TIM1 ((uint8_t)0x01) /* TIM1 Alternate Function mapping */
ganlikun 0:13413ea9a877 1137 #define GPIO_AF1_TIM2 ((uint8_t)0x01) /* TIM2 Alternate Function mapping */
ganlikun 0:13413ea9a877 1138
ganlikun 0:13413ea9a877 1139 /**
ganlikun 0:13413ea9a877 1140 * @brief AF 2 selection
ganlikun 0:13413ea9a877 1141 */
ganlikun 0:13413ea9a877 1142 #define GPIO_AF2_TIM3 ((uint8_t)0x02) /* TIM3 Alternate Function mapping */
ganlikun 0:13413ea9a877 1143 #define GPIO_AF2_TIM4 ((uint8_t)0x02) /* TIM4 Alternate Function mapping */
ganlikun 0:13413ea9a877 1144 #define GPIO_AF2_TIM5 ((uint8_t)0x02) /* TIM5 Alternate Function mapping */
ganlikun 0:13413ea9a877 1145
ganlikun 0:13413ea9a877 1146 /**
ganlikun 0:13413ea9a877 1147 * @brief AF 3 selection
ganlikun 0:13413ea9a877 1148 */
ganlikun 0:13413ea9a877 1149 #define GPIO_AF3_TIM8 ((uint8_t)0x03) /* TIM8 Alternate Function mapping */
ganlikun 0:13413ea9a877 1150 #define GPIO_AF3_TIM9 ((uint8_t)0x03) /* TIM9 Alternate Function mapping */
ganlikun 0:13413ea9a877 1151 #define GPIO_AF3_TIM10 ((uint8_t)0x03) /* TIM10 Alternate Function mapping */
ganlikun 0:13413ea9a877 1152 #define GPIO_AF3_TIM11 ((uint8_t)0x03) /* TIM11 Alternate Function mapping */
ganlikun 0:13413ea9a877 1153
ganlikun 0:13413ea9a877 1154 /**
ganlikun 0:13413ea9a877 1155 * @brief AF 4 selection
ganlikun 0:13413ea9a877 1156 */
ganlikun 0:13413ea9a877 1157 #define GPIO_AF4_I2C1 ((uint8_t)0x04) /* I2C1 Alternate Function mapping */
ganlikun 0:13413ea9a877 1158 #define GPIO_AF4_I2C2 ((uint8_t)0x04) /* I2C2 Alternate Function mapping */
ganlikun 0:13413ea9a877 1159 #define GPIO_AF4_I2C3 ((uint8_t)0x04) /* I2C3 Alternate Function mapping */
ganlikun 0:13413ea9a877 1160
ganlikun 0:13413ea9a877 1161 /**
ganlikun 0:13413ea9a877 1162 * @brief AF 5 selection
ganlikun 0:13413ea9a877 1163 */
ganlikun 0:13413ea9a877 1164 #define GPIO_AF5_SPI1 ((uint8_t)0x05) /* SPI1 Alternate Function mapping */
ganlikun 0:13413ea9a877 1165 #define GPIO_AF5_SPI2 ((uint8_t)0x05) /* SPI2/I2S2 Alternate Function mapping */
ganlikun 0:13413ea9a877 1166 #define GPIO_AF5_SPI3 ((uint8_t)0x05) /* SPI3/I2S3 Alternate Function mapping */
ganlikun 0:13413ea9a877 1167 #define GPIO_AF5_SPI4 ((uint8_t)0x05) /* SPI4 Alternate Function mapping */
ganlikun 0:13413ea9a877 1168 #define GPIO_AF5_SPI5 ((uint8_t)0x05) /* SPI5 Alternate Function mapping */
ganlikun 0:13413ea9a877 1169 #define GPIO_AF5_SPI6 ((uint8_t)0x05) /* SPI6 Alternate Function mapping */
ganlikun 0:13413ea9a877 1170 #define GPIO_AF5_I2S3ext ((uint8_t)0x05) /* I2S3ext_SD Alternate Function mapping */
ganlikun 0:13413ea9a877 1171
ganlikun 0:13413ea9a877 1172 /**
ganlikun 0:13413ea9a877 1173 * @brief AF 6 selection
ganlikun 0:13413ea9a877 1174 */
ganlikun 0:13413ea9a877 1175 #define GPIO_AF6_SPI3 ((uint8_t)0x06) /* SPI3/I2S3 Alternate Function mapping */
ganlikun 0:13413ea9a877 1176 #define GPIO_AF6_I2S2ext ((uint8_t)0x06) /* I2S2ext_SD Alternate Function mapping */
ganlikun 0:13413ea9a877 1177 #define GPIO_AF6_SAI1 ((uint8_t)0x06) /* SAI1 Alternate Function mapping */
ganlikun 0:13413ea9a877 1178
ganlikun 0:13413ea9a877 1179 /**
ganlikun 0:13413ea9a877 1180 * @brief AF 7 selection
ganlikun 0:13413ea9a877 1181 */
ganlikun 0:13413ea9a877 1182 #define GPIO_AF7_USART1 ((uint8_t)0x07) /* USART1 Alternate Function mapping */
ganlikun 0:13413ea9a877 1183 #define GPIO_AF7_USART2 ((uint8_t)0x07) /* USART2 Alternate Function mapping */
ganlikun 0:13413ea9a877 1184 #define GPIO_AF7_USART3 ((uint8_t)0x07) /* USART3 Alternate Function mapping */
ganlikun 0:13413ea9a877 1185 #define GPIO_AF7_I2S3ext ((uint8_t)0x07) /* I2S3ext_SD Alternate Function mapping */
ganlikun 0:13413ea9a877 1186
ganlikun 0:13413ea9a877 1187 /**
ganlikun 0:13413ea9a877 1188 * @brief AF 8 selection
ganlikun 0:13413ea9a877 1189 */
ganlikun 0:13413ea9a877 1190 #define GPIO_AF8_UART4 ((uint8_t)0x08) /* UART4 Alternate Function mapping */
ganlikun 0:13413ea9a877 1191 #define GPIO_AF8_UART5 ((uint8_t)0x08) /* UART5 Alternate Function mapping */
ganlikun 0:13413ea9a877 1192 #define GPIO_AF8_USART6 ((uint8_t)0x08) /* USART6 Alternate Function mapping */
ganlikun 0:13413ea9a877 1193 #define GPIO_AF8_UART7 ((uint8_t)0x08) /* UART7 Alternate Function mapping */
ganlikun 0:13413ea9a877 1194 #define GPIO_AF8_UART8 ((uint8_t)0x08) /* UART8 Alternate Function mapping */
ganlikun 0:13413ea9a877 1195
ganlikun 0:13413ea9a877 1196 /**
ganlikun 0:13413ea9a877 1197 * @brief AF 9 selection
ganlikun 0:13413ea9a877 1198 */
ganlikun 0:13413ea9a877 1199 #define GPIO_AF9_CAN1 ((uint8_t)0x09) /* CAN1 Alternate Function mapping */
ganlikun 0:13413ea9a877 1200 #define GPIO_AF9_CAN2 ((uint8_t)0x09) /* CAN2 Alternate Function mapping */
ganlikun 0:13413ea9a877 1201 #define GPIO_AF9_TIM12 ((uint8_t)0x09) /* TIM12 Alternate Function mapping */
ganlikun 0:13413ea9a877 1202 #define GPIO_AF9_TIM13 ((uint8_t)0x09) /* TIM13 Alternate Function mapping */
ganlikun 0:13413ea9a877 1203 #define GPIO_AF9_TIM14 ((uint8_t)0x09) /* TIM14 Alternate Function mapping */
ganlikun 0:13413ea9a877 1204 #define GPIO_AF9_LTDC ((uint8_t)0x09) /* LCD-TFT Alternate Function mapping */
ganlikun 0:13413ea9a877 1205 #define GPIO_AF9_QSPI ((uint8_t)0x09) /* QSPI Alternate Function mapping */
ganlikun 0:13413ea9a877 1206
ganlikun 0:13413ea9a877 1207 /**
ganlikun 0:13413ea9a877 1208 * @brief AF 10 selection
ganlikun 0:13413ea9a877 1209 */
ganlikun 0:13413ea9a877 1210 #define GPIO_AF10_OTG_FS ((uint8_t)0x0A) /* OTG_FS Alternate Function mapping */
ganlikun 0:13413ea9a877 1211 #define GPIO_AF10_OTG_HS ((uint8_t)0x0A) /* OTG_HS Alternate Function mapping */
ganlikun 0:13413ea9a877 1212 #define GPIO_AF10_QSPI ((uint8_t)0x0A) /* QSPI Alternate Function mapping */
ganlikun 0:13413ea9a877 1213
ganlikun 0:13413ea9a877 1214 /**
ganlikun 0:13413ea9a877 1215 * @brief AF 11 selection
ganlikun 0:13413ea9a877 1216 */
ganlikun 0:13413ea9a877 1217 #define GPIO_AF11_ETH ((uint8_t)0x0B) /* ETHERNET Alternate Function mapping */
ganlikun 0:13413ea9a877 1218
ganlikun 0:13413ea9a877 1219 /**
ganlikun 0:13413ea9a877 1220 * @brief AF 12 selection
ganlikun 0:13413ea9a877 1221 */
ganlikun 0:13413ea9a877 1222 #define GPIO_AF12_FMC ((uint8_t)0x0C) /* FMC Alternate Function mapping */
ganlikun 0:13413ea9a877 1223 #define GPIO_AF12_OTG_HS_FS ((uint8_t)0x0C) /* OTG HS configured in FS, Alternate Function mapping */
ganlikun 0:13413ea9a877 1224 #define GPIO_AF12_SDIO ((uint8_t)0x0C) /* SDIO Alternate Function mapping */
ganlikun 0:13413ea9a877 1225
ganlikun 0:13413ea9a877 1226 /**
ganlikun 0:13413ea9a877 1227 * @brief AF 13 selection
ganlikun 0:13413ea9a877 1228 */
ganlikun 0:13413ea9a877 1229 #define GPIO_AF13_DCMI ((uint8_t)0x0D) /* DCMI Alternate Function mapping */
ganlikun 0:13413ea9a877 1230 #define GPIO_AF13_DSI ((uint8_t)0x0D) /* DSI Alternate Function mapping */
ganlikun 0:13413ea9a877 1231
ganlikun 0:13413ea9a877 1232 /**
ganlikun 0:13413ea9a877 1233 * @brief AF 14 selection
ganlikun 0:13413ea9a877 1234 */
ganlikun 0:13413ea9a877 1235 #define GPIO_AF14_LTDC ((uint8_t)0x0E) /* LCD-TFT Alternate Function mapping */
ganlikun 0:13413ea9a877 1236
ganlikun 0:13413ea9a877 1237 /**
ganlikun 0:13413ea9a877 1238 * @brief AF 15 selection
ganlikun 0:13413ea9a877 1239 */
ganlikun 0:13413ea9a877 1240 #define GPIO_AF15_EVENTOUT ((uint8_t)0x0F) /* EVENTOUT Alternate Function mapping */
ganlikun 0:13413ea9a877 1241
ganlikun 0:13413ea9a877 1242 #endif /* STM32F469xx || STM32F479xx */
ganlikun 0:13413ea9a877 1243 /*----------------------------------------------------------------------------*/
ganlikun 0:13413ea9a877 1244 /**
ganlikun 0:13413ea9a877 1245 * @}
ganlikun 0:13413ea9a877 1246 */
ganlikun 0:13413ea9a877 1247
ganlikun 0:13413ea9a877 1248 /**
ganlikun 0:13413ea9a877 1249 * @}
ganlikun 0:13413ea9a877 1250 */
ganlikun 0:13413ea9a877 1251
ganlikun 0:13413ea9a877 1252 /* Exported macro ------------------------------------------------------------*/
ganlikun 0:13413ea9a877 1253 /** @defgroup GPIOEx_Exported_Macros GPIO Exported Macros
ganlikun 0:13413ea9a877 1254 * @{
ganlikun 0:13413ea9a877 1255 */
ganlikun 0:13413ea9a877 1256 /**
ganlikun 0:13413ea9a877 1257 * @}
ganlikun 0:13413ea9a877 1258 */
ganlikun 0:13413ea9a877 1259
ganlikun 0:13413ea9a877 1260 /* Exported functions --------------------------------------------------------*/
ganlikun 0:13413ea9a877 1261 /** @defgroup GPIOEx_Exported_Functions GPIO Exported Functions
ganlikun 0:13413ea9a877 1262 * @{
ganlikun 0:13413ea9a877 1263 */
ganlikun 0:13413ea9a877 1264 /**
ganlikun 0:13413ea9a877 1265 * @}
ganlikun 0:13413ea9a877 1266 */
ganlikun 0:13413ea9a877 1267
ganlikun 0:13413ea9a877 1268 /* Private types -------------------------------------------------------------*/
ganlikun 0:13413ea9a877 1269 /* Private variables ---------------------------------------------------------*/
ganlikun 0:13413ea9a877 1270 /* Private constants ---------------------------------------------------------*/
ganlikun 0:13413ea9a877 1271 /** @defgroup GPIOEx_Private_Constants GPIO Private Constants
ganlikun 0:13413ea9a877 1272 * @{
ganlikun 0:13413ea9a877 1273 */
ganlikun 0:13413ea9a877 1274 /**
ganlikun 0:13413ea9a877 1275 * @}
ganlikun 0:13413ea9a877 1276 */
ganlikun 0:13413ea9a877 1277
ganlikun 0:13413ea9a877 1278 /* Private macros ------------------------------------------------------------*/
ganlikun 0:13413ea9a877 1279 /** @defgroup GPIOEx_Private_Macros GPIO Private Macros
ganlikun 0:13413ea9a877 1280 * @{
ganlikun 0:13413ea9a877 1281 */
ganlikun 0:13413ea9a877 1282 /** @defgroup GPIOEx_Get_Port_Index GPIO Get Port Index
ganlikun 0:13413ea9a877 1283 * @{
ganlikun 0:13413ea9a877 1284 */
ganlikun 0:13413ea9a877 1285 #if defined(STM32F405xx) || defined(STM32F415xx) || defined(STM32F407xx) || defined(STM32F417xx)
ganlikun 0:13413ea9a877 1286 #define GPIO_GET_INDEX(__GPIOx__) (uint8_t)(((__GPIOx__) == (GPIOA))? 0U :\
ganlikun 0:13413ea9a877 1287 ((__GPIOx__) == (GPIOB))? 1U :\
ganlikun 0:13413ea9a877 1288 ((__GPIOx__) == (GPIOC))? 2U :\
ganlikun 0:13413ea9a877 1289 ((__GPIOx__) == (GPIOD))? 3U :\
ganlikun 0:13413ea9a877 1290 ((__GPIOx__) == (GPIOE))? 4U :\
ganlikun 0:13413ea9a877 1291 ((__GPIOx__) == (GPIOF))? 5U :\
ganlikun 0:13413ea9a877 1292 ((__GPIOx__) == (GPIOG))? 6U :\
ganlikun 0:13413ea9a877 1293 ((__GPIOx__) == (GPIOH))? 7U : 8U)
ganlikun 0:13413ea9a877 1294 #endif /* STM32F405xx || STM32F415xx || STM32F407xx || STM32F417xx */
ganlikun 0:13413ea9a877 1295
ganlikun 0:13413ea9a877 1296 #if defined(STM32F427xx) || defined(STM32F437xx) || defined(STM32F429xx) || defined(STM32F439xx) ||\
ganlikun 0:13413ea9a877 1297 defined(STM32F469xx) || defined(STM32F479xx)
ganlikun 0:13413ea9a877 1298 #define GPIO_GET_INDEX(__GPIOx__) (uint8_t)(((__GPIOx__) == (GPIOA))? 0U :\
ganlikun 0:13413ea9a877 1299 ((__GPIOx__) == (GPIOB))? 1U :\
ganlikun 0:13413ea9a877 1300 ((__GPIOx__) == (GPIOC))? 2U :\
ganlikun 0:13413ea9a877 1301 ((__GPIOx__) == (GPIOD))? 3U :\
ganlikun 0:13413ea9a877 1302 ((__GPIOx__) == (GPIOE))? 4U :\
ganlikun 0:13413ea9a877 1303 ((__GPIOx__) == (GPIOF))? 5U :\
ganlikun 0:13413ea9a877 1304 ((__GPIOx__) == (GPIOG))? 6U :\
ganlikun 0:13413ea9a877 1305 ((__GPIOx__) == (GPIOH))? 7U :\
ganlikun 0:13413ea9a877 1306 ((__GPIOx__) == (GPIOI))? 8U :\
ganlikun 0:13413ea9a877 1307 ((__GPIOx__) == (GPIOJ))? 9U : 10U)
ganlikun 0:13413ea9a877 1308 #endif /* STM32F427xx || STM32F437xx || STM32F429xx || STM32F439xx || STM32F469xx || STM32F479xx */
ganlikun 0:13413ea9a877 1309
ganlikun 0:13413ea9a877 1310 #if defined(STM32F410Tx) || defined(STM32F410Cx) || defined(STM32F410Rx)
ganlikun 0:13413ea9a877 1311 #define GPIO_GET_INDEX(__GPIOx__) (uint8_t)(((__GPIOx__) == (GPIOA))? 0U :\
ganlikun 0:13413ea9a877 1312 ((__GPIOx__) == (GPIOB))? 1U :\
ganlikun 0:13413ea9a877 1313 ((__GPIOx__) == (GPIOC))? 2U : 7U)
ganlikun 0:13413ea9a877 1314 #endif /* STM32F410Tx || STM32F410Cx || STM32F410Rx */
ganlikun 0:13413ea9a877 1315
ganlikun 0:13413ea9a877 1316 #if defined(STM32F401xC) || defined(STM32F401xE) || defined(STM32F411xE)
ganlikun 0:13413ea9a877 1317 #define GPIO_GET_INDEX(__GPIOx__) (uint8_t)(((__GPIOx__) == (GPIOA))? 0U :\
ganlikun 0:13413ea9a877 1318 ((__GPIOx__) == (GPIOB))? 1U :\
ganlikun 0:13413ea9a877 1319 ((__GPIOx__) == (GPIOC))? 2U :\
ganlikun 0:13413ea9a877 1320 ((__GPIOx__) == (GPIOD))? 3U :\
ganlikun 0:13413ea9a877 1321 ((__GPIOx__) == (GPIOE))? 4U : 7U)
ganlikun 0:13413ea9a877 1322 #endif /* STM32F401xC || STM32F401xE || STM32F411xE */
ganlikun 0:13413ea9a877 1323
ganlikun 0:13413ea9a877 1324 #if defined(STM32F446xx) || defined(STM32F412Zx) ||defined(STM32F412Vx) || defined(STM32F412Rx) || defined(STM32F412Cx) || defined(STM32F413xx) || defined(STM32F423xx)
ganlikun 0:13413ea9a877 1325 #define GPIO_GET_INDEX(__GPIOx__) (uint8_t)(((__GPIOx__) == (GPIOA))? 0U :\
ganlikun 0:13413ea9a877 1326 ((__GPIOx__) == (GPIOB))? 1U :\
ganlikun 0:13413ea9a877 1327 ((__GPIOx__) == (GPIOC))? 2U :\
ganlikun 0:13413ea9a877 1328 ((__GPIOx__) == (GPIOD))? 3U :\
ganlikun 0:13413ea9a877 1329 ((__GPIOx__) == (GPIOE))? 4U :\
ganlikun 0:13413ea9a877 1330 ((__GPIOx__) == (GPIOF))? 5U :\
ganlikun 0:13413ea9a877 1331 ((__GPIOx__) == (GPIOG))? 6U : 7U)
ganlikun 0:13413ea9a877 1332 #endif /* STM32F446xx || STM32F412Zx || STM32F412Vx || STM32F412Rx || STM32F412Cx || STM32F413xx || STM32F423xx */
ganlikun 0:13413ea9a877 1333
ganlikun 0:13413ea9a877 1334 /**
ganlikun 0:13413ea9a877 1335 * @}
ganlikun 0:13413ea9a877 1336 */
ganlikun 0:13413ea9a877 1337
ganlikun 0:13413ea9a877 1338 /** @defgroup GPIOEx_IS_Alternat_function_selection GPIO Check Alternate Function
ganlikun 0:13413ea9a877 1339 * @{
ganlikun 0:13413ea9a877 1340 */
ganlikun 0:13413ea9a877 1341 /*------------------------- STM32F429xx/STM32F439xx---------------------------*/
ganlikun 0:13413ea9a877 1342 #if defined(STM32F429xx) || defined(STM32F439xx)
ganlikun 0:13413ea9a877 1343 #define IS_GPIO_AF(AF) (((AF) == GPIO_AF0_RTC_50Hz) || ((AF) == GPIO_AF9_TIM14) || \
ganlikun 0:13413ea9a877 1344 ((AF) == GPIO_AF0_MCO) || ((AF) == GPIO_AF0_TAMPER) || \
ganlikun 0:13413ea9a877 1345 ((AF) == GPIO_AF0_SWJ) || ((AF) == GPIO_AF0_TRACE) || \
ganlikun 0:13413ea9a877 1346 ((AF) == GPIO_AF1_TIM1) || ((AF) == GPIO_AF1_TIM2) || \
ganlikun 0:13413ea9a877 1347 ((AF) == GPIO_AF2_TIM3) || ((AF) == GPIO_AF2_TIM4) || \
ganlikun 0:13413ea9a877 1348 ((AF) == GPIO_AF2_TIM5) || ((AF) == GPIO_AF3_TIM8) || \
ganlikun 0:13413ea9a877 1349 ((AF) == GPIO_AF4_I2C1) || ((AF) == GPIO_AF4_I2C2) || \
ganlikun 0:13413ea9a877 1350 ((AF) == GPIO_AF4_I2C3) || ((AF) == GPIO_AF5_SPI1) || \
ganlikun 0:13413ea9a877 1351 ((AF) == GPIO_AF5_SPI2) || ((AF) == GPIO_AF9_TIM13) || \
ganlikun 0:13413ea9a877 1352 ((AF) == GPIO_AF6_SPI3) || ((AF) == GPIO_AF9_TIM12) || \
ganlikun 0:13413ea9a877 1353 ((AF) == GPIO_AF7_USART1) || ((AF) == GPIO_AF7_USART2) || \
ganlikun 0:13413ea9a877 1354 ((AF) == GPIO_AF7_USART3) || ((AF) == GPIO_AF8_UART4) || \
ganlikun 0:13413ea9a877 1355 ((AF) == GPIO_AF8_UART5) || ((AF) == GPIO_AF8_USART6) || \
ganlikun 0:13413ea9a877 1356 ((AF) == GPIO_AF9_CAN1) || ((AF) == GPIO_AF9_CAN2) || \
ganlikun 0:13413ea9a877 1357 ((AF) == GPIO_AF10_OTG_FS) || ((AF) == GPIO_AF10_OTG_HS) || \
ganlikun 0:13413ea9a877 1358 ((AF) == GPIO_AF11_ETH) || ((AF) == GPIO_AF12_OTG_HS_FS) || \
ganlikun 0:13413ea9a877 1359 ((AF) == GPIO_AF12_SDIO) || ((AF) == GPIO_AF13_DCMI) || \
ganlikun 0:13413ea9a877 1360 ((AF) == GPIO_AF15_EVENTOUT) || ((AF) == GPIO_AF5_SPI4) || \
ganlikun 0:13413ea9a877 1361 ((AF) == GPIO_AF5_SPI5) || ((AF) == GPIO_AF5_SPI6) || \
ganlikun 0:13413ea9a877 1362 ((AF) == GPIO_AF8_UART7) || ((AF) == GPIO_AF8_UART8) || \
ganlikun 0:13413ea9a877 1363 ((AF) == GPIO_AF12_FMC) || ((AF) == GPIO_AF6_SAI1) || \
ganlikun 0:13413ea9a877 1364 ((AF) == GPIO_AF14_LTDC))
ganlikun 0:13413ea9a877 1365
ganlikun 0:13413ea9a877 1366 #endif /* STM32F429xx || STM32F439xx */
ganlikun 0:13413ea9a877 1367 /*----------------------------------------------------------------------------*/
ganlikun 0:13413ea9a877 1368
ganlikun 0:13413ea9a877 1369 /*---------------------------------- STM32F427xx/STM32F437xx------------------*/
ganlikun 0:13413ea9a877 1370 #if defined(STM32F427xx) || defined(STM32F437xx)
ganlikun 0:13413ea9a877 1371 #define IS_GPIO_AF(AF) (((AF) == GPIO_AF0_RTC_50Hz) || ((AF) == GPIO_AF9_TIM14) || \
ganlikun 0:13413ea9a877 1372 ((AF) == GPIO_AF0_MCO) || ((AF) == GPIO_AF0_TAMPER) || \
ganlikun 0:13413ea9a877 1373 ((AF) == GPIO_AF0_SWJ) || ((AF) == GPIO_AF0_TRACE) || \
ganlikun 0:13413ea9a877 1374 ((AF) == GPIO_AF1_TIM1) || ((AF) == GPIO_AF1_TIM2) || \
ganlikun 0:13413ea9a877 1375 ((AF) == GPIO_AF2_TIM3) || ((AF) == GPIO_AF2_TIM4) || \
ganlikun 0:13413ea9a877 1376 ((AF) == GPIO_AF2_TIM5) || ((AF) == GPIO_AF3_TIM8) || \
ganlikun 0:13413ea9a877 1377 ((AF) == GPIO_AF4_I2C1) || ((AF) == GPIO_AF4_I2C2) || \
ganlikun 0:13413ea9a877 1378 ((AF) == GPIO_AF4_I2C3) || ((AF) == GPIO_AF5_SPI1) || \
ganlikun 0:13413ea9a877 1379 ((AF) == GPIO_AF5_SPI2) || ((AF) == GPIO_AF9_TIM13) || \
ganlikun 0:13413ea9a877 1380 ((AF) == GPIO_AF6_SPI3) || ((AF) == GPIO_AF9_TIM12) || \
ganlikun 0:13413ea9a877 1381 ((AF) == GPIO_AF7_USART1) || ((AF) == GPIO_AF7_USART2) || \
ganlikun 0:13413ea9a877 1382 ((AF) == GPIO_AF7_USART3) || ((AF) == GPIO_AF8_UART4) || \
ganlikun 0:13413ea9a877 1383 ((AF) == GPIO_AF8_UART5) || ((AF) == GPIO_AF8_USART6) || \
ganlikun 0:13413ea9a877 1384 ((AF) == GPIO_AF9_CAN1) || ((AF) == GPIO_AF9_CAN2) || \
ganlikun 0:13413ea9a877 1385 ((AF) == GPIO_AF10_OTG_FS) || ((AF) == GPIO_AF10_OTG_HS) || \
ganlikun 0:13413ea9a877 1386 ((AF) == GPIO_AF11_ETH) || ((AF) == GPIO_AF12_OTG_HS_FS) || \
ganlikun 0:13413ea9a877 1387 ((AF) == GPIO_AF12_SDIO) || ((AF) == GPIO_AF13_DCMI) || \
ganlikun 0:13413ea9a877 1388 ((AF) == GPIO_AF15_EVENTOUT) || ((AF) == GPIO_AF5_SPI4) || \
ganlikun 0:13413ea9a877 1389 ((AF) == GPIO_AF5_SPI5) || ((AF) == GPIO_AF5_SPI6) || \
ganlikun 0:13413ea9a877 1390 ((AF) == GPIO_AF8_UART7) || ((AF) == GPIO_AF8_UART8) || \
ganlikun 0:13413ea9a877 1391 ((AF) == GPIO_AF12_FMC) || ((AF) == GPIO_AF6_SAI1))
ganlikun 0:13413ea9a877 1392
ganlikun 0:13413ea9a877 1393 #endif /* STM32F427xx || STM32F437xx */
ganlikun 0:13413ea9a877 1394 /*----------------------------------------------------------------------------*/
ganlikun 0:13413ea9a877 1395
ganlikun 0:13413ea9a877 1396 /*---------------------------------- STM32F407xx/STM32F417xx------------------*/
ganlikun 0:13413ea9a877 1397 #if defined(STM32F407xx) || defined(STM32F417xx)
ganlikun 0:13413ea9a877 1398 #define IS_GPIO_AF(AF) (((AF) == GPIO_AF0_RTC_50Hz) || ((AF) == GPIO_AF9_TIM14) || \
ganlikun 0:13413ea9a877 1399 ((AF) == GPIO_AF0_MCO) || ((AF) == GPIO_AF0_TAMPER) || \
ganlikun 0:13413ea9a877 1400 ((AF) == GPIO_AF0_SWJ) || ((AF) == GPIO_AF0_TRACE) || \
ganlikun 0:13413ea9a877 1401 ((AF) == GPIO_AF1_TIM1) || ((AF) == GPIO_AF1_TIM2) || \
ganlikun 0:13413ea9a877 1402 ((AF) == GPIO_AF2_TIM3) || ((AF) == GPIO_AF2_TIM4) || \
ganlikun 0:13413ea9a877 1403 ((AF) == GPIO_AF2_TIM5) || ((AF) == GPIO_AF3_TIM8) || \
ganlikun 0:13413ea9a877 1404 ((AF) == GPIO_AF4_I2C1) || ((AF) == GPIO_AF4_I2C2) || \
ganlikun 0:13413ea9a877 1405 ((AF) == GPIO_AF4_I2C3) || ((AF) == GPIO_AF5_SPI1) || \
ganlikun 0:13413ea9a877 1406 ((AF) == GPIO_AF5_SPI2) || ((AF) == GPIO_AF9_TIM13) || \
ganlikun 0:13413ea9a877 1407 ((AF) == GPIO_AF6_SPI3) || ((AF) == GPIO_AF9_TIM12) || \
ganlikun 0:13413ea9a877 1408 ((AF) == GPIO_AF7_USART1) || ((AF) == GPIO_AF7_USART2) || \
ganlikun 0:13413ea9a877 1409 ((AF) == GPIO_AF7_USART3) || ((AF) == GPIO_AF8_UART4) || \
ganlikun 0:13413ea9a877 1410 ((AF) == GPIO_AF8_UART5) || ((AF) == GPIO_AF8_USART6) || \
ganlikun 0:13413ea9a877 1411 ((AF) == GPIO_AF9_CAN1) || ((AF) == GPIO_AF9_CAN2) || \
ganlikun 0:13413ea9a877 1412 ((AF) == GPIO_AF10_OTG_FS) || ((AF) == GPIO_AF10_OTG_HS) || \
ganlikun 0:13413ea9a877 1413 ((AF) == GPIO_AF11_ETH) || ((AF) == GPIO_AF12_OTG_HS_FS) || \
ganlikun 0:13413ea9a877 1414 ((AF) == GPIO_AF12_SDIO) || ((AF) == GPIO_AF13_DCMI) || \
ganlikun 0:13413ea9a877 1415 ((AF) == GPIO_AF12_FSMC) || ((AF) == GPIO_AF15_EVENTOUT))
ganlikun 0:13413ea9a877 1416
ganlikun 0:13413ea9a877 1417 #endif /* STM32F407xx || STM32F417xx */
ganlikun 0:13413ea9a877 1418 /*----------------------------------------------------------------------------*/
ganlikun 0:13413ea9a877 1419
ganlikun 0:13413ea9a877 1420 /*---------------------------------- STM32F405xx/STM32F415xx------------------*/
ganlikun 0:13413ea9a877 1421 #if defined(STM32F405xx) || defined(STM32F415xx)
ganlikun 0:13413ea9a877 1422 #define IS_GPIO_AF(AF) (((AF) == GPIO_AF0_RTC_50Hz) || ((AF) == GPIO_AF9_TIM14) || \
ganlikun 0:13413ea9a877 1423 ((AF) == GPIO_AF0_MCO) || ((AF) == GPIO_AF0_TAMPER) || \
ganlikun 0:13413ea9a877 1424 ((AF) == GPIO_AF0_SWJ) || ((AF) == GPIO_AF0_TRACE) || \
ganlikun 0:13413ea9a877 1425 ((AF) == GPIO_AF1_TIM1) || ((AF) == GPIO_AF1_TIM2) || \
ganlikun 0:13413ea9a877 1426 ((AF) == GPIO_AF2_TIM3) || ((AF) == GPIO_AF2_TIM4) || \
ganlikun 0:13413ea9a877 1427 ((AF) == GPIO_AF2_TIM5) || ((AF) == GPIO_AF3_TIM8) || \
ganlikun 0:13413ea9a877 1428 ((AF) == GPIO_AF4_I2C1) || ((AF) == GPIO_AF4_I2C2) || \
ganlikun 0:13413ea9a877 1429 ((AF) == GPIO_AF4_I2C3) || ((AF) == GPIO_AF5_SPI1) || \
ganlikun 0:13413ea9a877 1430 ((AF) == GPIO_AF5_SPI2) || ((AF) == GPIO_AF9_TIM13) || \
ganlikun 0:13413ea9a877 1431 ((AF) == GPIO_AF6_SPI3) || ((AF) == GPIO_AF9_TIM12) || \
ganlikun 0:13413ea9a877 1432 ((AF) == GPIO_AF7_USART1) || ((AF) == GPIO_AF7_USART2) || \
ganlikun 0:13413ea9a877 1433 ((AF) == GPIO_AF7_USART3) || ((AF) == GPIO_AF8_UART4) || \
ganlikun 0:13413ea9a877 1434 ((AF) == GPIO_AF8_UART5) || ((AF) == GPIO_AF8_USART6) || \
ganlikun 0:13413ea9a877 1435 ((AF) == GPIO_AF9_CAN1) || ((AF) == GPIO_AF9_CAN2) || \
ganlikun 0:13413ea9a877 1436 ((AF) == GPIO_AF10_OTG_FS) || ((AF) == GPIO_AF10_OTG_HS) || \
ganlikun 0:13413ea9a877 1437 ((AF) == GPIO_AF12_OTG_HS_FS) || ((AF) == GPIO_AF12_SDIO) || \
ganlikun 0:13413ea9a877 1438 ((AF) == GPIO_AF12_FSMC) || ((AF) == GPIO_AF15_EVENTOUT))
ganlikun 0:13413ea9a877 1439
ganlikun 0:13413ea9a877 1440 #endif /* STM32F405xx || STM32F415xx */
ganlikun 0:13413ea9a877 1441
ganlikun 0:13413ea9a877 1442 /*----------------------------------------------------------------------------*/
ganlikun 0:13413ea9a877 1443
ganlikun 0:13413ea9a877 1444 /*---------------------------------------- STM32F401xx------------------------*/
ganlikun 0:13413ea9a877 1445 #if defined(STM32F401xC) || defined(STM32F401xE)
ganlikun 0:13413ea9a877 1446 #define IS_GPIO_AF(AF) (((AF) == GPIO_AF0_RTC_50Hz) || ((AF) == GPIO_AF9_TIM14) || \
ganlikun 0:13413ea9a877 1447 ((AF) == GPIO_AF0_MCO) || ((AF) == GPIO_AF0_TAMPER) || \
ganlikun 0:13413ea9a877 1448 ((AF) == GPIO_AF0_SWJ) || ((AF) == GPIO_AF0_TRACE) || \
ganlikun 0:13413ea9a877 1449 ((AF) == GPIO_AF1_TIM1) || ((AF) == GPIO_AF1_TIM2) || \
ganlikun 0:13413ea9a877 1450 ((AF) == GPIO_AF2_TIM3) || ((AF) == GPIO_AF2_TIM4) || \
ganlikun 0:13413ea9a877 1451 ((AF) == GPIO_AF2_TIM5) || ((AF) == GPIO_AF4_I2C1) || \
ganlikun 0:13413ea9a877 1452 ((AF) == GPIO_AF4_I2C2) || ((AF) == GPIO_AF4_I2C3) || \
ganlikun 0:13413ea9a877 1453 ((AF) == GPIO_AF5_SPI1) || ((AF) == GPIO_AF5_SPI2) || \
ganlikun 0:13413ea9a877 1454 ((AF) == GPIO_AF6_SPI3) || ((AF) == GPIO_AF5_SPI4) || \
ganlikun 0:13413ea9a877 1455 ((AF) == GPIO_AF7_USART1) || ((AF) == GPIO_AF7_USART2) || \
ganlikun 0:13413ea9a877 1456 ((AF) == GPIO_AF8_USART6) || ((AF) == GPIO_AF10_OTG_FS) || \
ganlikun 0:13413ea9a877 1457 ((AF) == GPIO_AF9_I2C2) || ((AF) == GPIO_AF9_I2C3) || \
ganlikun 0:13413ea9a877 1458 ((AF) == GPIO_AF12_SDIO) || ((AF) == GPIO_AF15_EVENTOUT))
ganlikun 0:13413ea9a877 1459
ganlikun 0:13413ea9a877 1460 #endif /* STM32F401xC || STM32F401xE */
ganlikun 0:13413ea9a877 1461 /*----------------------------------------------------------------------------*/
ganlikun 0:13413ea9a877 1462 /*---------------------------------------- STM32F410xx------------------------*/
ganlikun 0:13413ea9a877 1463 #if defined(STM32F410Tx) || defined(STM32F410Cx) || defined(STM32F410Rx)
ganlikun 0:13413ea9a877 1464 #define IS_GPIO_AF(AF) (((AF) < 10U) || ((AF) == 15U))
ganlikun 0:13413ea9a877 1465 #endif /* STM32F410Tx || STM32F410Cx || STM32F410Rx */
ganlikun 0:13413ea9a877 1466
ganlikun 0:13413ea9a877 1467 /*---------------------------------------- STM32F411xx------------------------*/
ganlikun 0:13413ea9a877 1468 #if defined(STM32F411xE)
ganlikun 0:13413ea9a877 1469 #define IS_GPIO_AF(AF) (((AF) == GPIO_AF0_RTC_50Hz) || ((AF) == GPIO_AF9_TIM14) || \
ganlikun 0:13413ea9a877 1470 ((AF) == GPIO_AF0_MCO) || ((AF) == GPIO_AF0_TAMPER) || \
ganlikun 0:13413ea9a877 1471 ((AF) == GPIO_AF0_SWJ) || ((AF) == GPIO_AF0_TRACE) || \
ganlikun 0:13413ea9a877 1472 ((AF) == GPIO_AF1_TIM1) || ((AF) == GPIO_AF1_TIM2) || \
ganlikun 0:13413ea9a877 1473 ((AF) == GPIO_AF2_TIM3) || ((AF) == GPIO_AF2_TIM4) || \
ganlikun 0:13413ea9a877 1474 ((AF) == GPIO_AF2_TIM5) || ((AF) == GPIO_AF4_I2C1) || \
ganlikun 0:13413ea9a877 1475 ((AF) == GPIO_AF4_I2C2) || ((AF) == GPIO_AF4_I2C3) || \
ganlikun 0:13413ea9a877 1476 ((AF) == GPIO_AF5_SPI1) || ((AF) == GPIO_AF5_SPI2) || \
ganlikun 0:13413ea9a877 1477 ((AF) == GPIO_AF5_SPI3) || ((AF) == GPIO_AF6_SPI4) || \
ganlikun 0:13413ea9a877 1478 ((AF) == GPIO_AF6_SPI3) || ((AF) == GPIO_AF5_SPI4) || \
ganlikun 0:13413ea9a877 1479 ((AF) == GPIO_AF6_SPI5) || ((AF) == GPIO_AF7_SPI3) || \
ganlikun 0:13413ea9a877 1480 ((AF) == GPIO_AF7_USART1) || ((AF) == GPIO_AF7_USART2) || \
ganlikun 0:13413ea9a877 1481 ((AF) == GPIO_AF8_USART6) || ((AF) == GPIO_AF10_OTG_FS) || \
ganlikun 0:13413ea9a877 1482 ((AF) == GPIO_AF9_I2C2) || ((AF) == GPIO_AF9_I2C3) || \
ganlikun 0:13413ea9a877 1483 ((AF) == GPIO_AF12_SDIO) || ((AF) == GPIO_AF15_EVENTOUT))
ganlikun 0:13413ea9a877 1484
ganlikun 0:13413ea9a877 1485 #endif /* STM32F411xE */
ganlikun 0:13413ea9a877 1486 /*----------------------------------------------------------------------------*/
ganlikun 0:13413ea9a877 1487
ganlikun 0:13413ea9a877 1488 /*----------------------------------------------- STM32F446xx ----------------*/
ganlikun 0:13413ea9a877 1489 #if defined(STM32F446xx)
ganlikun 0:13413ea9a877 1490 #define IS_GPIO_AF(AF) (((AF) == GPIO_AF0_RTC_50Hz) || ((AF) == GPIO_AF9_TIM14) || \
ganlikun 0:13413ea9a877 1491 ((AF) == GPIO_AF0_MCO) || ((AF) == GPIO_AF0_TAMPER) || \
ganlikun 0:13413ea9a877 1492 ((AF) == GPIO_AF0_SWJ) || ((AF) == GPIO_AF0_TRACE) || \
ganlikun 0:13413ea9a877 1493 ((AF) == GPIO_AF1_TIM1) || ((AF) == GPIO_AF1_TIM2) || \
ganlikun 0:13413ea9a877 1494 ((AF) == GPIO_AF2_TIM3) || ((AF) == GPIO_AF2_TIM4) || \
ganlikun 0:13413ea9a877 1495 ((AF) == GPIO_AF2_TIM5) || ((AF) == GPIO_AF3_TIM8) || \
ganlikun 0:13413ea9a877 1496 ((AF) == GPIO_AF4_I2C1) || ((AF) == GPIO_AF4_I2C2) || \
ganlikun 0:13413ea9a877 1497 ((AF) == GPIO_AF4_I2C3) || ((AF) == GPIO_AF5_SPI1) || \
ganlikun 0:13413ea9a877 1498 ((AF) == GPIO_AF5_SPI2) || ((AF) == GPIO_AF9_TIM13) || \
ganlikun 0:13413ea9a877 1499 ((AF) == GPIO_AF6_SPI3) || ((AF) == GPIO_AF9_TIM12) || \
ganlikun 0:13413ea9a877 1500 ((AF) == GPIO_AF7_USART1) || ((AF) == GPIO_AF7_USART2) || \
ganlikun 0:13413ea9a877 1501 ((AF) == GPIO_AF7_USART3) || ((AF) == GPIO_AF8_UART4) || \
ganlikun 0:13413ea9a877 1502 ((AF) == GPIO_AF8_UART5) || ((AF) == GPIO_AF8_USART6) || \
ganlikun 0:13413ea9a877 1503 ((AF) == GPIO_AF9_CAN1) || ((AF) == GPIO_AF9_CAN2) || \
ganlikun 0:13413ea9a877 1504 ((AF) == GPIO_AF10_OTG_FS) || ((AF) == GPIO_AF10_OTG_HS) || \
ganlikun 0:13413ea9a877 1505 ((AF) == GPIO_AF11_ETH) || ((AF) == GPIO_AF12_OTG_HS_FS) || \
ganlikun 0:13413ea9a877 1506 ((AF) == GPIO_AF12_SDIO) || ((AF) == GPIO_AF13_DCMI) || \
ganlikun 0:13413ea9a877 1507 ((AF) == GPIO_AF15_EVENTOUT) || ((AF) == GPIO_AF5_SPI4) || \
ganlikun 0:13413ea9a877 1508 ((AF) == GPIO_AF12_FMC) || ((AF) == GPIO_AF6_SAI1) || \
ganlikun 0:13413ea9a877 1509 ((AF) == GPIO_AF3_CEC) || ((AF) == GPIO_AF4_CEC) || \
ganlikun 0:13413ea9a877 1510 ((AF) == GPIO_AF5_SPI3) || ((AF) == GPIO_AF6_SPI2) || \
ganlikun 0:13413ea9a877 1511 ((AF) == GPIO_AF6_SPI4) || ((AF) == GPIO_AF7_UART5) || \
ganlikun 0:13413ea9a877 1512 ((AF) == GPIO_AF7_SPI2) || ((AF) == GPIO_AF7_SPI3) || \
ganlikun 0:13413ea9a877 1513 ((AF) == GPIO_AF7_SPDIFRX) || ((AF) == GPIO_AF8_SPDIFRX) || \
ganlikun 0:13413ea9a877 1514 ((AF) == GPIO_AF8_SAI2) || ((AF) == GPIO_AF9_QSPI) || \
ganlikun 0:13413ea9a877 1515 ((AF) == GPIO_AF10_SAI2) || ((AF) == GPIO_AF10_QSPI))
ganlikun 0:13413ea9a877 1516
ganlikun 0:13413ea9a877 1517 #endif /* STM32F446xx */
ganlikun 0:13413ea9a877 1518 /*----------------------------------------------------------------------------*/
ganlikun 0:13413ea9a877 1519
ganlikun 0:13413ea9a877 1520 /*------------------------------------------- STM32F469xx/STM32F479xx --------*/
ganlikun 0:13413ea9a877 1521 #if defined(STM32F469xx) || defined(STM32F479xx)
ganlikun 0:13413ea9a877 1522 #define IS_GPIO_AF(AF) (((AF) == GPIO_AF0_RTC_50Hz) || ((AF) == GPIO_AF9_TIM14) || \
ganlikun 0:13413ea9a877 1523 ((AF) == GPIO_AF0_MCO) || ((AF) == GPIO_AF0_TAMPER) || \
ganlikun 0:13413ea9a877 1524 ((AF) == GPIO_AF0_SWJ) || ((AF) == GPIO_AF0_TRACE) || \
ganlikun 0:13413ea9a877 1525 ((AF) == GPIO_AF1_TIM1) || ((AF) == GPIO_AF1_TIM2) || \
ganlikun 0:13413ea9a877 1526 ((AF) == GPIO_AF2_TIM3) || ((AF) == GPIO_AF2_TIM4) || \
ganlikun 0:13413ea9a877 1527 ((AF) == GPIO_AF2_TIM5) || ((AF) == GPIO_AF3_TIM8) || \
ganlikun 0:13413ea9a877 1528 ((AF) == GPIO_AF4_I2C1) || ((AF) == GPIO_AF4_I2C2) || \
ganlikun 0:13413ea9a877 1529 ((AF) == GPIO_AF4_I2C3) || ((AF) == GPIO_AF5_SPI1) || \
ganlikun 0:13413ea9a877 1530 ((AF) == GPIO_AF5_SPI2) || ((AF) == GPIO_AF9_TIM13) || \
ganlikun 0:13413ea9a877 1531 ((AF) == GPIO_AF6_SPI3) || ((AF) == GPIO_AF9_TIM12) || \
ganlikun 0:13413ea9a877 1532 ((AF) == GPIO_AF7_USART1) || ((AF) == GPIO_AF7_USART2) || \
ganlikun 0:13413ea9a877 1533 ((AF) == GPIO_AF7_USART3) || ((AF) == GPIO_AF8_UART4) || \
ganlikun 0:13413ea9a877 1534 ((AF) == GPIO_AF8_UART5) || ((AF) == GPIO_AF8_USART6) || \
ganlikun 0:13413ea9a877 1535 ((AF) == GPIO_AF9_CAN1) || ((AF) == GPIO_AF9_CAN2) || \
ganlikun 0:13413ea9a877 1536 ((AF) == GPIO_AF10_OTG_FS) || ((AF) == GPIO_AF10_OTG_HS) || \
ganlikun 0:13413ea9a877 1537 ((AF) == GPIO_AF11_ETH) || ((AF) == GPIO_AF12_OTG_HS_FS) || \
ganlikun 0:13413ea9a877 1538 ((AF) == GPIO_AF12_SDIO) || ((AF) == GPIO_AF13_DCMI) || \
ganlikun 0:13413ea9a877 1539 ((AF) == GPIO_AF15_EVENTOUT) || ((AF) == GPIO_AF5_SPI4) || \
ganlikun 0:13413ea9a877 1540 ((AF) == GPIO_AF5_SPI5) || ((AF) == GPIO_AF5_SPI6) || \
ganlikun 0:13413ea9a877 1541 ((AF) == GPIO_AF8_UART7) || ((AF) == GPIO_AF8_UART8) || \
ganlikun 0:13413ea9a877 1542 ((AF) == GPIO_AF12_FMC) || ((AF) == GPIO_AF6_SAI1) || \
ganlikun 0:13413ea9a877 1543 ((AF) == GPIO_AF14_LTDC) || ((AF) == GPIO_AF13_DSI) || \
ganlikun 0:13413ea9a877 1544 ((AF) == GPIO_AF9_QSPI) || ((AF) == GPIO_AF10_QSPI))
ganlikun 0:13413ea9a877 1545
ganlikun 0:13413ea9a877 1546 #endif /* STM32F469xx || STM32F479xx */
ganlikun 0:13413ea9a877 1547 /*----------------------------------------------------------------------------*/
ganlikun 0:13413ea9a877 1548
ganlikun 0:13413ea9a877 1549 /*------------------STM32F412Zx/STM32F412Vx/STM32F412Rx/STM32F412Cx-----------*/
ganlikun 0:13413ea9a877 1550 #if defined(STM32F412Zx) || defined(STM32F412Vx) || defined(STM32F412Rx) || defined(STM32F412Cx)
ganlikun 0:13413ea9a877 1551 #define IS_GPIO_AF(AF) (((AF) < 16U) && ((AF) != 11U) && ((AF) != 14U) && ((AF) != 13U))
ganlikun 0:13413ea9a877 1552 #endif /* STM32F412Zx || STM32F412Vx || STM32F412Rx || STM32F412Cx */
ganlikun 0:13413ea9a877 1553 /*----------------------------------------------------------------------------*/
ganlikun 0:13413ea9a877 1554
ganlikun 0:13413ea9a877 1555 /*------------------STM32F413xx/STM32F423xx-----------------------------------*/
ganlikun 0:13413ea9a877 1556 #if defined(STM32F413xx) || defined(STM32F423xx)
ganlikun 0:13413ea9a877 1557 #define IS_GPIO_AF(AF) (((AF) < 16U) && ((AF) != 13U))
ganlikun 0:13413ea9a877 1558 #endif /* STM32F413xx || STM32F423xx */
ganlikun 0:13413ea9a877 1559 /*----------------------------------------------------------------------------*/
ganlikun 0:13413ea9a877 1560
ganlikun 0:13413ea9a877 1561 /**
ganlikun 0:13413ea9a877 1562 * @}
ganlikun 0:13413ea9a877 1563 */
ganlikun 0:13413ea9a877 1564
ganlikun 0:13413ea9a877 1565 /**
ganlikun 0:13413ea9a877 1566 * @}
ganlikun 0:13413ea9a877 1567 */
ganlikun 0:13413ea9a877 1568
ganlikun 0:13413ea9a877 1569 /* Private functions ---------------------------------------------------------*/
ganlikun 0:13413ea9a877 1570 /** @defgroup GPIOEx_Private_Functions GPIO Private Functions
ganlikun 0:13413ea9a877 1571 * @{
ganlikun 0:13413ea9a877 1572 */
ganlikun 0:13413ea9a877 1573
ganlikun 0:13413ea9a877 1574 /**
ganlikun 0:13413ea9a877 1575 * @}
ganlikun 0:13413ea9a877 1576 */
ganlikun 0:13413ea9a877 1577
ganlikun 0:13413ea9a877 1578 /**
ganlikun 0:13413ea9a877 1579 * @}
ganlikun 0:13413ea9a877 1580 */
ganlikun 0:13413ea9a877 1581
ganlikun 0:13413ea9a877 1582 /**
ganlikun 0:13413ea9a877 1583 * @}
ganlikun 0:13413ea9a877 1584 */
ganlikun 0:13413ea9a877 1585
ganlikun 0:13413ea9a877 1586 #ifdef __cplusplus
ganlikun 0:13413ea9a877 1587 }
ganlikun 0:13413ea9a877 1588 #endif
ganlikun 0:13413ea9a877 1589
ganlikun 0:13413ea9a877 1590 #endif /* __STM32F4xx_HAL_GPIO_EX_H */
ganlikun 0:13413ea9a877 1591
ganlikun 0:13413ea9a877 1592 /************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
ganlikun 0:13413ea9a877 1593