inport from local

Dependents:   Hobbyking_Cheetah_0511

Committer:
NYX
Date:
Mon Mar 16 06:35:48 2020 +0000
Revision:
0:85b3fd62ea1a
reinport to mbed;

Who changed what in which revision?

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