1 /** 2 ****************************************************************************** 3 * @file stm32f3xx_hal_gpio_ex.h 4 * @author MCD Application Team 5 * @brief Header file of GPIO HAL Extended module. 6 ****************************************************************************** 7 * @attention 8 * 9 * Copyright (c) 2016 STMicroelectronics. 10 * All rights reserved. 11 * 12 * This software is licensed under terms that can be found in the LICENSE file 13 * in the root directory of this software component. 14 * If no LICENSE file comes with this software, it is provided AS-IS. 15 * 16 ****************************************************************************** 17 */ 18 19 /* Define to prevent recursive inclusion -------------------------------------*/ 20 #ifndef __STM32F3xx_HAL_GPIO_EX_H 21 #define __STM32F3xx_HAL_GPIO_EX_H 22 23 #ifdef __cplusplus 24 extern "C" { 25 #endif 26 27 /* Includes ------------------------------------------------------------------*/ 28 #include "stm32f3xx_hal_def.h" 29 30 /** @addtogroup STM32F3xx_HAL_Driver 31 * @{ 32 */ 33 34 /** @defgroup GPIOEx GPIOEx 35 * @brief GPIO Extended HAL module driver 36 * @{ 37 */ 38 39 /* Exported types ------------------------------------------------------------*/ 40 /* Exported constants --------------------------------------------------------*/ 41 /** @defgroup GPIOEx_Exported_Constants GPIOEx Exported Constants 42 * @{ 43 */ 44 45 /** @defgroup GPIOEx_Alternate_function_selection GPIOEx Alternate function selection 46 * @{ 47 */ 48 49 #if defined (STM32F302xC) 50 /*---------------------------------- STM32F302xC ------------------------------*/ 51 /** 52 * @brief AF 0 selection 53 */ 54 #define GPIO_AF0_RTC_50Hz ((uint8_t)0x00U) /* RTC_50Hz Alternate Function mapping */ 55 #define GPIO_AF0_MCO ((uint8_t)0x00U) /* MCO (MCO1 and MCO2) Alternate Function mapping */ 56 #define GPIO_AF0_TAMPER ((uint8_t)0x00U) /* TAMPER (TAMPER_1 and TAMPER_2) Alternate Function mapping */ 57 #define GPIO_AF0_SWJ ((uint8_t)0x00U) /* SWJ (SWD and JTAG) Alternate Function mapping */ 58 #define GPIO_AF0_TRACE ((uint8_t)0x00U) /* TRACE Alternate Function mapping */ 59 60 /** 61 * @brief AF 1 selection 62 */ 63 #define GPIO_AF1_TIM2 ((uint8_t)0x01U) /* TIM2 Alternate Function mapping */ 64 #define GPIO_AF1_TIM15 ((uint8_t)0x01U) /* TIM15 Alternate Function mapping */ 65 #define GPIO_AF1_TIM16 ((uint8_t)0x01U) /* TIM16 Alternate Function mapping */ 66 #define GPIO_AF1_TIM17 ((uint8_t)0x01U) /* TIM17 Alternate Function mapping */ 67 #define GPIO_AF1_EVENTOUT ((uint8_t)0x01U) /* EVENTOUT Alternate Function mapping */ 68 /** 69 * @brief AF 2 selection 70 */ 71 #define GPIO_AF2_TIM1 ((uint8_t)0x02U) /* TIM1 Alternate Function mapping */ 72 #define GPIO_AF2_TIM2 ((uint8_t)0x02U) /* TIM2 Alternate Function mapping */ 73 #define GPIO_AF2_TIM3 ((uint8_t)0x02U) /* TIM3 Alternate Function mapping */ 74 #define GPIO_AF2_TIM4 ((uint8_t)0x02U) /* TIM4 Alternate Function mapping */ 75 #define GPIO_AF2_TIM15 ((uint8_t)0x02U) /* TIM15 Alternate Function mapping */ 76 #define GPIO_AF2_COMP1 ((uint8_t)0x02U) /* COMP1 Alternate Function mapping */ 77 /** 78 * @brief AF 3 selection 79 */ 80 #define GPIO_AF3_TSC ((uint8_t)0x03U) /* TSC Alternate Function mapping */ 81 #define GPIO_AF3_TIM15 ((uint8_t)0x03U) /* TIM15 Alternate Function mapping */ 82 83 /** 84 * @brief AF 4 selection 85 */ 86 #define GPIO_AF4_TIM1 ((uint8_t)0x04U) /* TIM1 Alternate Function mapping */ 87 #define GPIO_AF4_TIM16 ((uint8_t)0x04U) /* TIM16 Alternate Function mapping */ 88 #define GPIO_AF4_TIM17 ((uint8_t)0x04U) /* TIM17 Alternate Function mapping */ 89 #define GPIO_AF4_I2C1 ((uint8_t)0x04U) /* I2C1 Alternate Function mapping */ 90 #define GPIO_AF4_I2C2 ((uint8_t)0x04U) /* I2C2 Alternate Function mapping */ 91 92 /** 93 * @brief AF 5 selection 94 */ 95 #define GPIO_AF5_SPI1 ((uint8_t)0x05U) /* SPI1/I2S1 Alternate Function mapping */ 96 #define GPIO_AF5_SPI2 ((uint8_t)0x05U) /* SPI2/I2S2 Alternate Function mapping */ 97 #define GPIO_AF5_SPI3 ((uint8_t)0x05U) /* SPI3/I2S3 Alternate Function mapping */ 98 #define GPIO_AF5_I2S ((uint8_t)0x05U) /* I2S Alternate Function mapping */ 99 #define GPIO_AF5_I2S2ext ((uint8_t)0x05U) /* I2S2ext Alternate Function mapping */ 100 #define GPIO_AF5_IR ((uint8_t)0x05U) /* IR Alternate Function mapping */ 101 #define GPIO_AF5_UART4 ((uint8_t)0x05U) /* UART4 Alternate Function mapping */ 102 #define GPIO_AF5_UART5 ((uint8_t)0x05U) /* UART5 Alternate Function mapping */ 103 /** 104 * @brief AF 6 selection 105 */ 106 #define GPIO_AF6_SPI2 ((uint8_t)0x06U) /* SPI2/I2S2 Alternate Function mapping */ 107 #define GPIO_AF6_SPI3 ((uint8_t)0x06U) /* SPI3/I2S3 Alternate Function mapping */ 108 #define GPIO_AF6_I2S3ext ((uint8_t)0x06U) /* I2S3ext Alternate Function mapping */ 109 #define GPIO_AF6_TIM1 ((uint8_t)0x06U) /* TIM1 Alternate Function mapping */ 110 #define GPIO_AF6_IR ((uint8_t)0x06U) /* IR Alternate Function mapping */ 111 112 /** 113 * @brief AF 7 selection 114 */ 115 #define GPIO_AF7_USART1 ((uint8_t)0x07U) /* USART1 Alternate Function mapping */ 116 #define GPIO_AF7_USART2 ((uint8_t)0x07U) /* USART2 Alternate Function mapping */ 117 #define GPIO_AF7_USART3 ((uint8_t)0x07U) /* USART3 Alternate Function mapping */ 118 #define GPIO_AF7_COMP6 ((uint8_t)0x07U) /* COMP6 Alternate Function mapping */ 119 #define GPIO_AF7_CAN ((uint8_t)0x07U) /* CAN Alternate Function mapping */ 120 121 /** 122 * @brief AF 8 selection 123 */ 124 #define GPIO_AF8_COMP1 ((uint8_t)0x08U) /* COMP1 Alternate Function mapping */ 125 #define GPIO_AF8_COMP2 ((uint8_t)0x08U) /* COMP2 Alternate Function mapping */ 126 #define GPIO_AF8_COMP4 ((uint8_t)0x08U) /* COMP4 Alternate Function mapping */ 127 #define GPIO_AF8_COMP6 ((uint8_t)0x08U) /* COMP6 Alternate Function mapping */ 128 129 /** 130 * @brief AF 9 selection 131 */ 132 #define GPIO_AF9_CAN ((uint8_t)0x09U) /* CAN Alternate Function mapping */ 133 #define GPIO_AF9_TIM1 ((uint8_t)0x09U) /* TIM1 Alternate Function mapping */ 134 #define GPIO_AF9_TIM15 ((uint8_t)0x09U) /* TIM15 Alternate Function mapping */ 135 136 /** 137 * @brief AF 10 selection 138 */ 139 #define GPIO_AF10_TIM2 ((uint8_t)0xAU) /* TIM2 Alternate Function mapping */ 140 #define GPIO_AF10_TIM3 ((uint8_t)0xAU) /* TIM3 Alternate Function mapping */ 141 #define GPIO_AF10_TIM4 ((uint8_t)0xAU) /* TIM4 Alternate Function mapping */ 142 #define GPIO_AF10_TIM17 ((uint8_t)0xAU) /* TIM17 Alternate Function mapping */ 143 /** 144 * @brief AF 11 selection 145 */ 146 #define GPIO_AF11_TIM1 ((uint8_t)0x0BU) /* TIM1 Alternate Function mapping */ 147 148 /** 149 * @brief AF 12 selection 150 */ 151 #define GPIO_AF12_TIM1 ((uint8_t)0xCU) /* TIM1 Alternate Function mapping */ 152 153 /** 154 * @brief AF 14 selection 155 */ 156 157 #define GPIO_AF14_USB ((uint8_t)0x0EU) /* USB Alternate Function mapping */ 158 /** 159 * @brief AF 15 selection 160 */ 161 #define GPIO_AF15_EVENTOUT ((uint8_t)0x0FU) /* EVENTOUT Alternate Function mapping */ 162 163 #define IS_GPIO_AF(AF) (((AF) <= (uint8_t)0x0CU) || ((AF) == (uint8_t)0x0EU) || ((AF) == (uint8_t)0x0FU)) 164 /*------------------------------------------------------------------------------------------*/ 165 #endif /* STM32F302xC */ 166 167 #if defined (STM32F303xC) 168 /*---------------------------------- STM32F303xC ------------------------------*/ 169 /** 170 * @brief AF 0 selection 171 */ 172 #define GPIO_AF0_RTC_50Hz ((uint8_t)0x00U) /* RTC_50Hz Alternate Function mapping */ 173 #define GPIO_AF0_MCO ((uint8_t)0x00U) /* MCO (MCO1 and MCO2) Alternate Function mapping */ 174 #define GPIO_AF0_TAMPER ((uint8_t)0x00U) /* TAMPER (TAMPER_1 and TAMPER_2) Alternate Function mapping */ 175 #define GPIO_AF0_SWJ ((uint8_t)0x00U) /* SWJ (SWD and JTAG) Alternate Function mapping */ 176 #define GPIO_AF0_TRACE ((uint8_t)0x00U) /* TRACE Alternate Function mapping */ 177 178 /** 179 * @brief AF 1 selection 180 */ 181 #define GPIO_AF1_TIM2 ((uint8_t)0x01U) /* TIM2 Alternate Function mapping */ 182 #define GPIO_AF1_TIM15 ((uint8_t)0x01U) /* TIM15 Alternate Function mapping */ 183 #define GPIO_AF1_TIM16 ((uint8_t)0x01U) /* TIM16 Alternate Function mapping */ 184 #define GPIO_AF1_TIM17 ((uint8_t)0x01U) /* TIM17 Alternate Function mapping */ 185 #define GPIO_AF1_EVENTOUT ((uint8_t)0x01U) /* EVENTOUT Alternate Function mapping */ 186 /** 187 * @brief AF 2 selection 188 */ 189 #define GPIO_AF2_TIM1 ((uint8_t)0x02U) /* TIM1 Alternate Function mapping */ 190 #define GPIO_AF2_TIM2 ((uint8_t)0x02U) /* TIM2 Alternate Function mapping */ 191 #define GPIO_AF2_TIM3 ((uint8_t)0x02U) /* TIM3 Alternate Function mapping */ 192 #define GPIO_AF2_TIM4 ((uint8_t)0x02U) /* TIM4 Alternate Function mapping */ 193 #define GPIO_AF2_TIM8 ((uint8_t)0x02U) /* TIM8 Alternate Function mapping */ 194 #define GPIO_AF2_TIM15 ((uint8_t)0x02U) /* TIM15 Alternate Function mapping */ 195 #define GPIO_AF2_COMP1 ((uint8_t)0x02U) /* COMP1 Alternate Function mapping */ 196 /** 197 * @brief AF 3 selection 198 */ 199 #define GPIO_AF3_TSC ((uint8_t)0x03U) /* TSC Alternate Function mapping */ 200 #define GPIO_AF3_TIM8 ((uint8_t)0x03U) /* TIM8 Alternate Function mapping */ 201 #define GPIO_AF3_COMP7 ((uint8_t)0x03U) /* COMP7 Alternate Function mapping */ 202 #define GPIO_AF3_TIM15 ((uint8_t)0x03U) /* TIM15 Alternate Function mapping */ 203 204 /** 205 * @brief AF 4 selection 206 */ 207 #define GPIO_AF4_TIM1 ((uint8_t)0x04U) /* TIM1 Alternate Function mapping */ 208 #define GPIO_AF4_TIM8 ((uint8_t)0x04U) /* TIM8 Alternate Function mapping */ 209 #define GPIO_AF4_TIM16 ((uint8_t)0x04U) /* TIM16 Alternate Function mapping */ 210 #define GPIO_AF4_TIM17 ((uint8_t)0x04U) /* TIM17 Alternate Function mapping */ 211 #define GPIO_AF4_I2C1 ((uint8_t)0x04U) /* I2C1 Alternate Function mapping */ 212 #define GPIO_AF4_I2C2 ((uint8_t)0x04U) /* I2C2 Alternate Function mapping */ 213 214 /** 215 * @brief AF 5 selection 216 */ 217 #define GPIO_AF5_SPI1 ((uint8_t)0x05U) /* SPI1/I2S1 Alternate Function mapping */ 218 #define GPIO_AF5_SPI2 ((uint8_t)0x05U) /* SPI2/I2S2 Alternate Function mapping */ 219 #define GPIO_AF5_SPI3 ((uint8_t)0x05U) /* SPI3/I2S3 Alternate Function mapping */ 220 #define GPIO_AF5_I2S ((uint8_t)0x05U) /* I2S Alternate Function mapping */ 221 #define GPIO_AF5_I2S2ext ((uint8_t)0x05U) /* I2S2ext Alternate Function mapping */ 222 #define GPIO_AF5_TIM8 ((uint8_t)0x05U) /* TIM8 Alternate Function mapping */ 223 #define GPIO_AF5_IR ((uint8_t)0x05U) /* IR Alternate Function mapping */ 224 #define GPIO_AF5_UART4 ((uint8_t)0x05U) /* UART4 Alternate Function mapping */ 225 #define GPIO_AF5_UART5 ((uint8_t)0x05U) /* UART5 Alternate Function mapping */ 226 /** 227 * @brief AF 6 selection 228 */ 229 #define GPIO_AF6_SPI2 ((uint8_t)0x06U) /* SPI2/I2S2 Alternate Function mapping */ 230 #define GPIO_AF6_SPI3 ((uint8_t)0x06U) /* SPI3/I2S3 Alternate Function mapping */ 231 #define GPIO_AF6_I2S3ext ((uint8_t)0x06U) /* I2S3ext Alternate Function mapping */ 232 #define GPIO_AF6_TIM1 ((uint8_t)0x06U) /* TIM1 Alternate Function mapping */ 233 #define GPIO_AF6_TIM8 ((uint8_t)0x06U) /* TIM8 Alternate Function mapping */ 234 #define GPIO_AF6_IR ((uint8_t)0x06U) /* IR Alternate Function mapping */ 235 236 /** 237 * @brief AF 7 selection 238 */ 239 #define GPIO_AF7_USART1 ((uint8_t)0x07U) /* USART1 Alternate Function mapping */ 240 #define GPIO_AF7_USART2 ((uint8_t)0x07U) /* USART2 Alternate Function mapping */ 241 #define GPIO_AF7_USART3 ((uint8_t)0x07U) /* USART3 Alternate Function mapping */ 242 #define GPIO_AF7_COMP3 ((uint8_t)0x07U) /* COMP3 Alternate Function mapping */ 243 #define GPIO_AF7_COMP5 ((uint8_t)0x07U) /* COMP5 Alternate Function mapping */ 244 #define GPIO_AF7_COMP6 ((uint8_t)0x07U) /* COMP6 Alternate Function mapping */ 245 #define GPIO_AF7_CAN ((uint8_t)0x07U) /* CAN Alternate Function mapping */ 246 247 /** 248 * @brief AF 8 selection 249 */ 250 #define GPIO_AF8_COMP1 ((uint8_t)0x08U) /* COMP1 Alternate Function mapping */ 251 #define GPIO_AF8_COMP2 ((uint8_t)0x08U) /* COMP2 Alternate Function mapping */ 252 #define GPIO_AF8_COMP3 ((uint8_t)0x08U) /* COMP3 Alternate Function mapping */ 253 #define GPIO_AF8_COMP4 ((uint8_t)0x08U) /* COMP4 Alternate Function mapping */ 254 #define GPIO_AF8_COMP5 ((uint8_t)0x08U) /* COMP5 Alternate Function mapping */ 255 #define GPIO_AF8_COMP6 ((uint8_t)0x08U) /* COMP6 Alternate Function mapping */ 256 257 /** 258 * @brief AF 9 selection 259 */ 260 #define GPIO_AF9_CAN ((uint8_t)0x09U) /* CAN Alternate Function mapping */ 261 #define GPIO_AF9_TIM1 ((uint8_t)0x09U) /* TIM1 Alternate Function mapping */ 262 #define GPIO_AF9_TIM8 ((uint8_t)0x09U) /* TIM8 Alternate Function mapping */ 263 #define GPIO_AF9_TIM15 ((uint8_t)0x09U) /* TIM15 Alternate Function mapping */ 264 265 /** 266 * @brief AF 10 selection 267 */ 268 #define GPIO_AF10_TIM2 ((uint8_t)0xAU) /* TIM2 Alternate Function mapping */ 269 #define GPIO_AF10_TIM3 ((uint8_t)0xAU) /* TIM3 Alternate Function mapping */ 270 #define GPIO_AF10_TIM4 ((uint8_t)0xAU) /* TIM4 Alternate Function mapping */ 271 #define GPIO_AF10_TIM8 ((uint8_t)0xAU) /* TIM8 Alternate Function mapping */ 272 #define GPIO_AF10_TIM17 ((uint8_t)0xAU) /* TIM17 Alternate Function mapping */ 273 /** 274 * @brief AF 11 selection 275 */ 276 #define GPIO_AF11_TIM1 ((uint8_t)0x0BU) /* TIM1 Alternate Function mapping */ 277 #define GPIO_AF11_TIM8 ((uint8_t)0x0BU) /* TIM8 Alternate Function mapping */ 278 279 /** 280 * @brief AF 12 selection 281 */ 282 #define GPIO_AF12_TIM1 ((uint8_t)0xCU) /* TIM1 Alternate Function mapping */ 283 284 /** 285 * @brief AF 14 selection 286 */ 287 288 #define GPIO_AF14_USB ((uint8_t)0x0EU) /* USB Alternate Function mapping */ 289 /** 290 * @brief AF 15 selection 291 */ 292 #define GPIO_AF15_EVENTOUT ((uint8_t)0x0FU) /* EVENTOUT Alternate Function mapping */ 293 294 #define IS_GPIO_AF(AF) (((AF) <= (uint8_t)0x0CU) || ((AF) == (uint8_t)0x0EU) || ((AF) == (uint8_t)0x0FU)) 295 /*------------------------------------------------------------------------------------------*/ 296 #endif /* STM32F303xC */ 297 298 #if defined (STM32F303xE) 299 /*---------------------------------- STM32F303xE ------------------------------*/ 300 /** 301 * @brief AF 0 selection 302 */ 303 #define GPIO_AF0_RTC_50Hz ((uint8_t)0x00U) /* RTC_50Hz Alternate Function mapping */ 304 #define GPIO_AF0_MCO ((uint8_t)0x00U) /* MCO (MCO1 and MCO2) Alternate Function mapping */ 305 #define GPIO_AF0_TAMPER ((uint8_t)0x00U) /* TAMPER (TAMPER_1 and TAMPER_2) Alternate Function mapping */ 306 #define GPIO_AF0_SWJ ((uint8_t)0x00U) /* SWJ (SWD and JTAG) Alternate Function mapping */ 307 #define GPIO_AF0_TRACE ((uint8_t)0x00U) /* TRACE Alternate Function mapping */ 308 309 /** 310 * @brief AF 1 selection 311 */ 312 #define GPIO_AF1_TIM2 ((uint8_t)0x01U) /* TIM2 Alternate Function mapping */ 313 #define GPIO_AF1_TIM15 ((uint8_t)0x01U) /* TIM15 Alternate Function mapping */ 314 #define GPIO_AF1_TIM16 ((uint8_t)0x01U) /* TIM16 Alternate Function mapping */ 315 #define GPIO_AF1_TIM17 ((uint8_t)0x01U) /* TIM17 Alternate Function mapping */ 316 #define GPIO_AF1_EVENTOUT ((uint8_t)0x01U) /* EVENTOUT Alternate Function mapping */ 317 318 /** 319 * @brief AF 2 selection 320 */ 321 #define GPIO_AF2_TIM1 ((uint8_t)0x02U) /* TIM1 Alternate Function mapping */ 322 #define GPIO_AF2_TIM2 ((uint8_t)0x02U) /* TIM2 Alternate Function mapping */ 323 #define GPIO_AF2_TIM3 ((uint8_t)0x02U) /* TIM3 Alternate Function mapping */ 324 #define GPIO_AF2_TIM4 ((uint8_t)0x02U) /* TIM4 Alternate Function mapping */ 325 #define GPIO_AF2_TIM8 ((uint8_t)0x02U) /* TIM8 Alternate Function mapping */ 326 #define GPIO_AF2_TIM15 ((uint8_t)0x02U) /* TIM15 Alternate Function mapping */ 327 #define GPIO_AF2_COMP1 ((uint8_t)0x02U) /* COMP1 Alternate Function mapping */ 328 #define GPIO_AF2_I2C3 ((uint8_t)0x02U) /* I2C3 Alternate Function mapping */ 329 #define GPIO_AF2_TIM20 ((uint8_t)0x02U) /* TIM20 Alternate Function mapping */ 330 331 /** 332 * @brief AF 3 selection 333 */ 334 #define GPIO_AF3_TSC ((uint8_t)0x03U) /* TSC Alternate Function mapping */ 335 #define GPIO_AF3_TIM8 ((uint8_t)0x03U) /* TIM8 Alternate Function mapping */ 336 #define GPIO_AF3_COMP7 ((uint8_t)0x03U) /* COMP7 Alternate Function mapping */ 337 #define GPIO_AF3_TIM15 ((uint8_t)0x03U) /* TIM15 Alternate Function mapping */ 338 #define GPIO_AF3_I2C3 ((uint8_t)0x03U) /* I2C3 Alternate Function mapping */ 339 #define GPIO_AF3_TIM20 ((uint8_t)0x03U) /* TIM20 Alternate Function mapping */ 340 341 /** 342 * @brief AF 4 selection 343 */ 344 #define GPIO_AF4_TIM1 ((uint8_t)0x04U) /* TIM1 Alternate Function mapping */ 345 #define GPIO_AF4_TIM8 ((uint8_t)0x04U) /* TIM8 Alternate Function mapping */ 346 #define GPIO_AF4_TIM16 ((uint8_t)0x04U) /* TIM16 Alternate Function mapping */ 347 #define GPIO_AF4_TIM17 ((uint8_t)0x04U) /* TIM17 Alternate Function mapping */ 348 #define GPIO_AF4_I2C1 ((uint8_t)0x04U) /* I2C1 Alternate Function mapping */ 349 #define GPIO_AF4_I2C2 ((uint8_t)0x04U) /* I2C2 Alternate Function mapping */ 350 351 /** 352 * @brief AF 5 selection 353 */ 354 #define GPIO_AF5_SPI1 ((uint8_t)0x05U) /* SPI1 Alternate Function mapping */ 355 #define GPIO_AF5_SPI2 ((uint8_t)0x05U) /* SPI2/I2S2 Alternate Function mapping */ 356 #define GPIO_AF5_SPI3 ((uint8_t)0x05U) /* SPI3/I2S3 Alternate Function mapping */ 357 #define GPIO_AF5_I2S ((uint8_t)0x05U) /* I2S Alternate Function mapping */ 358 #define GPIO_AF5_I2S2ext ((uint8_t)0x05U) /* I2S2ext Alternate Function mapping */ 359 #define GPIO_AF5_TIM8 ((uint8_t)0x05U) /* TIM8 Alternate Function mapping */ 360 #define GPIO_AF5_IR ((uint8_t)0x05U) /* IR Alternate Function mapping */ 361 #define GPIO_AF5_UART4 ((uint8_t)0x05U) /* UART4 Alternate Function mapping */ 362 #define GPIO_AF5_UART5 ((uint8_t)0x05U) /* UART5 Alternate Function mapping */ 363 #define GPIO_AF5_SPI4 ((uint8_t)0x05U) /* SPI4 Alternate Function mapping */ 364 365 /** 366 * @brief AF 6 selection 367 */ 368 #define GPIO_AF6_SPI2 ((uint8_t)0x06U) /* SPI2/I2S2 Alternate Function mapping */ 369 #define GPIO_AF6_SPI3 ((uint8_t)0x06U) /* SPI3/I2S3 Alternate Function mapping */ 370 #define GPIO_AF6_I2S3ext ((uint8_t)0x06U) /* I2S3ext Alternate Function mapping */ 371 #define GPIO_AF6_TIM1 ((uint8_t)0x06U) /* TIM1 Alternate Function mapping */ 372 #define GPIO_AF6_TIM8 ((uint8_t)0x06U) /* TIM8 Alternate Function mapping */ 373 #define GPIO_AF6_IR ((uint8_t)0x06U) /* IR Alternate Function mapping */ 374 #define GPIO_AF6_TIM20 ((uint8_t)0x06U) /* TIM20 Alternate Function mapping */ 375 376 /** 377 * @brief AF 7 selection 378 */ 379 #define GPIO_AF7_USART1 ((uint8_t)0x07U) /* USART1 Alternate Function mapping */ 380 #define GPIO_AF7_USART2 ((uint8_t)0x07U) /* USART2 Alternate Function mapping */ 381 #define GPIO_AF7_USART3 ((uint8_t)0x07U) /* USART3 Alternate Function mapping */ 382 #define GPIO_AF7_COMP3 ((uint8_t)0x07U) /* COMP3 Alternate Function mapping */ 383 #define GPIO_AF7_COMP5 ((uint8_t)0x07U) /* COMP5 Alternate Function mapping */ 384 #define GPIO_AF7_COMP6 ((uint8_t)0x07U) /* COMP6 Alternate Function mapping */ 385 #define GPIO_AF7_CAN ((uint8_t)0x07U) /* CAN Alternate Function mapping */ 386 387 /** 388 * @brief AF 8 selection 389 */ 390 #define GPIO_AF8_COMP1 ((uint8_t)0x08U) /* COMP1 Alternate Function mapping */ 391 #define GPIO_AF8_COMP2 ((uint8_t)0x08U) /* COMP2 Alternate Function mapping */ 392 #define GPIO_AF8_COMP3 ((uint8_t)0x08U) /* COMP3 Alternate Function mapping */ 393 #define GPIO_AF8_COMP4 ((uint8_t)0x08U) /* COMP4 Alternate Function mapping */ 394 #define GPIO_AF8_COMP5 ((uint8_t)0x08U) /* COMP5 Alternate Function mapping */ 395 #define GPIO_AF8_COMP6 ((uint8_t)0x08U) /* COMP6 Alternate Function mapping */ 396 #define GPIO_AF8_I2C3 ((uint8_t)0x08U) /* I2C3 Alternate Function mapping */ 397 398 /** 399 * @brief AF 9 selection 400 */ 401 #define GPIO_AF9_CAN ((uint8_t)0x09U) /* CAN Alternate Function mapping */ 402 #define GPIO_AF9_TIM1 ((uint8_t)0x09U) /* TIM1 Alternate Function mapping */ 403 #define GPIO_AF9_TIM8 ((uint8_t)0x09U) /* TIM8 Alternate Function mapping */ 404 #define GPIO_AF9_TIM15 ((uint8_t)0x09U) /* TIM15 Alternate Function mapping */ 405 406 /** 407 * @brief AF 10 selection 408 */ 409 #define GPIO_AF10_TIM2 ((uint8_t)0xAU) /* TIM2 Alternate Function mapping */ 410 #define GPIO_AF10_TIM3 ((uint8_t)0xAU) /* TIM3 Alternate Function mapping */ 411 #define GPIO_AF10_TIM4 ((uint8_t)0xAU) /* TIM4 Alternate Function mapping */ 412 #define GPIO_AF10_TIM8 ((uint8_t)0xAU) /* TIM8 Alternate Function mapping */ 413 #define GPIO_AF10_TIM17 ((uint8_t)0xAU) /* TIM17 Alternate Function mapping */ 414 /** 415 * @brief AF 11 selection 416 */ 417 #define GPIO_AF11_TIM1 ((uint8_t)0x0BU) /* TIM1 Alternate Function mapping */ 418 #define GPIO_AF11_TIM8 ((uint8_t)0x0BU) /* TIM8 Alternate Function mapping */ 419 420 /** 421 * @brief AF 12 selection 422 */ 423 #define GPIO_AF12_TIM1 ((uint8_t)0xCU) /* TIM1 Alternate Function mapping */ 424 #define GPIO_AF12_FMC ((uint8_t)0xCU) /* FMC Alternate Function mapping */ 425 #define GPIO_AF12_SDIO ((uint8_t)0xCU) /* SDIO Alternate Function mapping */ 426 427 /** 428 * @brief AF 14 selection 429 */ 430 #define GPIO_AF14_USB ((uint8_t)0x0EU) /* USB Alternate Function mapping */ 431 432 /** 433 * @brief AF 15 selection 434 */ 435 #define GPIO_AF15_EVENTOUT ((uint8_t)0x0FU) /* EVENTOUT Alternate Function mapping */ 436 437 #define IS_GPIO_AF(AF) (((AF) <= (uint8_t)0x0CU) || ((AF) == (uint8_t)0x0EU) || ((AF) == (uint8_t)0x0FU)) 438 /*------------------------------------------------------------------------------------------*/ 439 #endif /* STM32F303xE */ 440 441 #if defined (STM32F302xE) 442 /*---------------------------------- STM32F302xE ------------------------------*/ 443 /** 444 * @brief AF 0 selection 445 */ 446 #define GPIO_AF0_RTC_50Hz ((uint8_t)0x00U) /* RTC_50Hz Alternate Function mapping */ 447 #define GPIO_AF0_MCO ((uint8_t)0x00U) /* MCO (MCO1 and MCO2) Alternate Function mapping */ 448 #define GPIO_AF0_TAMPER ((uint8_t)0x00U) /* TAMPER (TAMPER_1 and TAMPER_2) Alternate Function mapping */ 449 #define GPIO_AF0_SWJ ((uint8_t)0x00U) /* SWJ (SWD and JTAG) Alternate Function mapping */ 450 #define GPIO_AF0_TRACE ((uint8_t)0x00U) /* TRACE Alternate Function mapping */ 451 452 /** 453 * @brief AF 1 selection 454 */ 455 #define GPIO_AF1_TIM2 ((uint8_t)0x01U) /* TIM2 Alternate Function mapping */ 456 #define GPIO_AF1_TIM15 ((uint8_t)0x01U) /* TIM15 Alternate Function mapping */ 457 #define GPIO_AF1_TIM16 ((uint8_t)0x01U) /* TIM16 Alternate Function mapping */ 458 #define GPIO_AF1_TIM17 ((uint8_t)0x01U) /* TIM17 Alternate Function mapping */ 459 #define GPIO_AF1_EVENTOUT ((uint8_t)0x01U) /* EVENTOUT Alternate Function mapping */ 460 461 /** 462 * @brief AF 2 selection 463 */ 464 #define GPIO_AF2_TIM1 ((uint8_t)0x02U) /* TIM1 Alternate Function mapping */ 465 #define GPIO_AF2_TIM2 ((uint8_t)0x02U) /* TIM2 Alternate Function mapping */ 466 #define GPIO_AF2_TIM3 ((uint8_t)0x02U) /* TIM3 Alternate Function mapping */ 467 #define GPIO_AF2_TIM4 ((uint8_t)0x02U) /* TIM4 Alternate Function mapping */ 468 #define GPIO_AF2_TIM15 ((uint8_t)0x02U) /* TIM15 Alternate Function mapping */ 469 #define GPIO_AF2_COMP1 ((uint8_t)0x02U) /* COMP1 Alternate Function mapping */ 470 #define GPIO_AF2_I2C3 ((uint8_t)0x02U) /* I2C3 Alternate Function mapping */ 471 472 /** 473 * @brief AF 3 selection 474 */ 475 #define GPIO_AF3_TSC ((uint8_t)0x03U) /* TSC Alternate Function mapping */ 476 #define GPIO_AF3_TIM15 ((uint8_t)0x03U) /* TIM15 Alternate Function mapping */ 477 #define GPIO_AF3_I2C3 ((uint8_t)0x03U) /* I2C3 Alternate Function mapping */ 478 479 /** 480 * @brief AF 4 selection 481 */ 482 #define GPIO_AF4_TIM1 ((uint8_t)0x04U) /* TIM1 Alternate Function mapping */ 483 #define GPIO_AF4_TIM16 ((uint8_t)0x04U) /* TIM16 Alternate Function mapping */ 484 #define GPIO_AF4_TIM17 ((uint8_t)0x04U) /* TIM17 Alternate Function mapping */ 485 #define GPIO_AF4_I2C1 ((uint8_t)0x04U) /* I2C1 Alternate Function mapping */ 486 #define GPIO_AF4_I2C2 ((uint8_t)0x04U) /* I2C2 Alternate Function mapping */ 487 488 /** 489 * @brief AF 5 selection 490 */ 491 #define GPIO_AF5_SPI1 ((uint8_t)0x05U) /* SPI1 Alternate Function mapping */ 492 #define GPIO_AF5_SPI2 ((uint8_t)0x05U) /* SPI2/I2S2 Alternate Function mapping */ 493 #define GPIO_AF5_SPI3 ((uint8_t)0x05U) /* SPI3/I2S3 Alternate Function mapping */ 494 #define GPIO_AF5_I2S ((uint8_t)0x05U) /* I2S Alternate Function mapping */ 495 #define GPIO_AF5_I2S2ext ((uint8_t)0x05U) /* I2S2ext Alternate Function mapping */ 496 #define GPIO_AF5_IR ((uint8_t)0x05U) /* IR Alternate Function mapping */ 497 #define GPIO_AF5_UART4 ((uint8_t)0x05U) /* UART4 Alternate Function mapping */ 498 #define GPIO_AF5_UART5 ((uint8_t)0x05U) /* UART5 Alternate Function mapping */ 499 #define GPIO_AF5_SPI4 ((uint8_t)0x05U) /* SPI4 Alternate Function mapping */ 500 501 /** 502 * @brief AF 6 selection 503 */ 504 #define GPIO_AF6_SPI2 ((uint8_t)0x06U) /* SPI2/I2S2 Alternate Function mapping */ 505 #define GPIO_AF6_SPI3 ((uint8_t)0x06U) /* SPI3/I2S3 Alternate Function mapping */ 506 #define GPIO_AF6_I2S3ext ((uint8_t)0x06U) /* I2S3ext Alternate Function mapping */ 507 #define GPIO_AF6_TIM1 ((uint8_t)0x06U) /* TIM1 Alternate Function mapping */ 508 #define GPIO_AF6_IR ((uint8_t)0x06U) /* IR Alternate Function mapping */ 509 510 /** 511 * @brief AF 7 selection 512 */ 513 #define GPIO_AF7_USART1 ((uint8_t)0x07U) /* USART1 Alternate Function mapping */ 514 #define GPIO_AF7_USART2 ((uint8_t)0x07U) /* USART2 Alternate Function mapping */ 515 #define GPIO_AF7_USART3 ((uint8_t)0x07U) /* USART3 Alternate Function mapping */ 516 #define GPIO_AF7_COMP6 ((uint8_t)0x07U) /* COMP6 Alternate Function mapping */ 517 #define GPIO_AF7_CAN ((uint8_t)0x07U) /* CAN Alternate Function mapping */ 518 519 /** 520 * @brief AF 8 selection 521 */ 522 #define GPIO_AF8_COMP1 ((uint8_t)0x08U) /* COMP1 Alternate Function mapping */ 523 #define GPIO_AF8_COMP2 ((uint8_t)0x08U) /* COMP2 Alternate Function mapping */ 524 #define GPIO_AF8_COMP4 ((uint8_t)0x08U) /* COMP4 Alternate Function mapping */ 525 #define GPIO_AF8_COMP6 ((uint8_t)0x08U) /* COMP6 Alternate Function mapping */ 526 #define GPIO_AF8_I2C3 ((uint8_t)0x08U) /* I2C3 Alternate Function mapping */ 527 528 /** 529 * @brief AF 9 selection 530 */ 531 #define GPIO_AF9_CAN ((uint8_t)0x09U) /* CAN Alternate Function mapping */ 532 #define GPIO_AF9_TIM1 ((uint8_t)0x09U) /* TIM1 Alternate Function mapping */ 533 #define GPIO_AF9_TIM15 ((uint8_t)0x09U) /* TIM15 Alternate Function mapping */ 534 535 /** 536 * @brief AF 10 selection 537 */ 538 #define GPIO_AF10_TIM2 ((uint8_t)0xAU) /* TIM2 Alternate Function mapping */ 539 #define GPIO_AF10_TIM3 ((uint8_t)0xAU) /* TIM3 Alternate Function mapping */ 540 #define GPIO_AF10_TIM4 ((uint8_t)0xAU) /* TIM4 Alternate Function mapping */ 541 #define GPIO_AF10_TIM17 ((uint8_t)0xAU) /* TIM17 Alternate Function mapping */ 542 /** 543 * @brief AF 11 selection 544 */ 545 #define GPIO_AF11_TIM1 ((uint8_t)0x0BU) /* TIM1 Alternate Function mapping */ 546 547 /** 548 * @brief AF 12 selection 549 */ 550 #define GPIO_AF12_TIM1 ((uint8_t)0xCU) /* TIM1 Alternate Function mapping */ 551 #define GPIO_AF12_FMC ((uint8_t)0xCU) /* FMC Alternate Function mapping */ 552 #define GPIO_AF12_SDIO ((uint8_t)0xCU) /* SDIO Alternate Function mapping */ 553 554 /** 555 * @brief AF 14 selection 556 */ 557 #define GPIO_AF14_USB ((uint8_t)0x0EU) /* USB Alternate Function mapping */ 558 559 /** 560 * @brief AF 15 selection 561 */ 562 #define GPIO_AF15_EVENTOUT ((uint8_t)0x0FU) /* EVENTOUT Alternate Function mapping */ 563 564 #define IS_GPIO_AF(AF) (((AF) <= (uint8_t)0x0CU) || ((AF) == (uint8_t)0x0EU) || ((AF) == (uint8_t)0x0FU)) 565 /*------------------------------------------------------------------------------------------*/ 566 #endif /* STM32F302xE */ 567 568 #if defined (STM32F398xx) 569 /*---------------------------------- STM32F398xx ------------------------------*/ 570 /** 571 * @brief AF 0 selection 572 */ 573 #define GPIO_AF0_RTC_50Hz ((uint8_t)0x00U) /* RTC_50Hz Alternate Function mapping */ 574 #define GPIO_AF0_MCO ((uint8_t)0x00U) /* MCO (MCO1 and MCO2) Alternate Function mapping */ 575 #define GPIO_AF0_TAMPER ((uint8_t)0x00U) /* TAMPER (TAMPER_1 and TAMPER_2) Alternate Function mapping */ 576 #define GPIO_AF0_SWJ ((uint8_t)0x00U) /* SWJ (SWD and JTAG) Alternate Function mapping */ 577 #define GPIO_AF0_TRACE ((uint8_t)0x00U) /* TRACE Alternate Function mapping */ 578 579 /** 580 * @brief AF 1 selection 581 */ 582 #define GPIO_AF1_TIM2 ((uint8_t)0x01U) /* TIM2 Alternate Function mapping */ 583 #define GPIO_AF1_TIM15 ((uint8_t)0x01U) /* TIM15 Alternate Function mapping */ 584 #define GPIO_AF1_TIM16 ((uint8_t)0x01U) /* TIM16 Alternate Function mapping */ 585 #define GPIO_AF1_TIM17 ((uint8_t)0x01U) /* TIM17 Alternate Function mapping */ 586 #define GPIO_AF1_EVENTOUT ((uint8_t)0x01U) /* EVENTOUT Alternate Function mapping */ 587 588 /** 589 * @brief AF 2 selection 590 */ 591 #define GPIO_AF2_TIM1 ((uint8_t)0x02U) /* TIM1 Alternate Function mapping */ 592 #define GPIO_AF2_TIM2 ((uint8_t)0x02U) /* TIM2 Alternate Function mapping */ 593 #define GPIO_AF2_TIM3 ((uint8_t)0x02U) /* TIM3 Alternate Function mapping */ 594 #define GPIO_AF2_TIM4 ((uint8_t)0x02U) /* TIM4 Alternate Function mapping */ 595 #define GPIO_AF2_TIM8 ((uint8_t)0x02U) /* TIM8 Alternate Function mapping */ 596 #define GPIO_AF2_TIM15 ((uint8_t)0x02U) /* TIM15 Alternate Function mapping */ 597 #define GPIO_AF2_COMP1 ((uint8_t)0x02U) /* COMP1 Alternate Function mapping */ 598 #define GPIO_AF2_I2C3 ((uint8_t)0x02U) /* I2C3 Alternate Function mapping */ 599 #define GPIO_AF2_TIM20 ((uint8_t)0x02U) /* TIM20 Alternate Function mapping */ 600 601 /** 602 * @brief AF 3 selection 603 */ 604 #define GPIO_AF3_TSC ((uint8_t)0x03U) /* TSC Alternate Function mapping */ 605 #define GPIO_AF3_TIM8 ((uint8_t)0x03U) /* TIM8 Alternate Function mapping */ 606 #define GPIO_AF3_COMP7 ((uint8_t)0x03U) /* COMP7 Alternate Function mapping */ 607 #define GPIO_AF3_TIM15 ((uint8_t)0x03U) /* TIM15 Alternate Function mapping */ 608 #define GPIO_AF3_I2C3 ((uint8_t)0x03U) /* I2C3 Alternate Function mapping */ 609 #define GPIO_AF3_TIM20 ((uint8_t)0x03U) /* TIM20 Alternate Function mapping */ 610 611 /** 612 * @brief AF 4 selection 613 */ 614 #define GPIO_AF4_TIM1 ((uint8_t)0x04U) /* TIM1 Alternate Function mapping */ 615 #define GPIO_AF4_TIM8 ((uint8_t)0x04U) /* TIM8 Alternate Function mapping */ 616 #define GPIO_AF4_TIM16 ((uint8_t)0x04U) /* TIM16 Alternate Function mapping */ 617 #define GPIO_AF4_TIM17 ((uint8_t)0x04U) /* TIM17 Alternate Function mapping */ 618 #define GPIO_AF4_I2C1 ((uint8_t)0x04U) /* I2C1 Alternate Function mapping */ 619 #define GPIO_AF4_I2C2 ((uint8_t)0x04U) /* I2C2 Alternate Function mapping */ 620 621 /** 622 * @brief AF 5 selection 623 */ 624 #define GPIO_AF5_SPI1 ((uint8_t)0x05U) /* SPI1 Alternate Function mapping */ 625 #define GPIO_AF5_SPI2 ((uint8_t)0x05U) /* SPI2/I2S2 Alternate Function mapping */ 626 #define GPIO_AF5_SPI3 ((uint8_t)0x05U) /* SPI3/I2S3 Alternate Function mapping */ 627 #define GPIO_AF5_I2S ((uint8_t)0x05U) /* I2S Alternate Function mapping */ 628 #define GPIO_AF5_I2S2ext ((uint8_t)0x05U) /* I2S2ext Alternate Function mapping */ 629 #define GPIO_AF5_TIM8 ((uint8_t)0x05U) /* TIM8 Alternate Function mapping */ 630 #define GPIO_AF5_IR ((uint8_t)0x05U) /* IR Alternate Function mapping */ 631 #define GPIO_AF5_UART4 ((uint8_t)0x05U) /* UART4 Alternate Function mapping */ 632 #define GPIO_AF5_UART5 ((uint8_t)0x05U) /* UART5 Alternate Function mapping */ 633 #define GPIO_AF5_SPI4 ((uint8_t)0x05U) /* SPI4 Alternate Function mapping */ 634 635 /** 636 * @brief AF 6 selection 637 */ 638 #define GPIO_AF6_SPI2 ((uint8_t)0x06U) /* SPI2/I2S2 Alternate Function mapping */ 639 #define GPIO_AF6_SPI3 ((uint8_t)0x06U) /* SPI3/I2S3 Alternate Function mapping */ 640 #define GPIO_AF6_I2S3ext ((uint8_t)0x06U) /* I2S3ext Alternate Function mapping */ 641 #define GPIO_AF6_TIM1 ((uint8_t)0x06U) /* TIM1 Alternate Function mapping */ 642 #define GPIO_AF6_TIM8 ((uint8_t)0x06U) /* TIM8 Alternate Function mapping */ 643 #define GPIO_AF6_IR ((uint8_t)0x06U) /* IR Alternate Function mapping */ 644 #define GPIO_AF6_TIM20 ((uint8_t)0x06U) /* TIM20 Alternate Function mapping */ 645 646 /** 647 * @brief AF 7 selection 648 */ 649 #define GPIO_AF7_USART1 ((uint8_t)0x07U) /* USART1 Alternate Function mapping */ 650 #define GPIO_AF7_USART2 ((uint8_t)0x07U) /* USART2 Alternate Function mapping */ 651 #define GPIO_AF7_USART3 ((uint8_t)0x07U) /* USART3 Alternate Function mapping */ 652 #define GPIO_AF7_COMP3 ((uint8_t)0x07U) /* COMP3 Alternate Function mapping */ 653 #define GPIO_AF7_COMP5 ((uint8_t)0x07U) /* COMP5 Alternate Function mapping */ 654 #define GPIO_AF7_COMP6 ((uint8_t)0x07U) /* COMP6 Alternate Function mapping */ 655 #define GPIO_AF7_CAN ((uint8_t)0x07U) /* CAN Alternate Function mapping */ 656 657 /** 658 * @brief AF 8 selection 659 */ 660 #define GPIO_AF8_COMP1 ((uint8_t)0x08U) /* COMP1 Alternate Function mapping */ 661 #define GPIO_AF8_COMP2 ((uint8_t)0x08U) /* COMP2 Alternate Function mapping */ 662 #define GPIO_AF8_COMP3 ((uint8_t)0x08U) /* COMP3 Alternate Function mapping */ 663 #define GPIO_AF8_COMP4 ((uint8_t)0x08U) /* COMP4 Alternate Function mapping */ 664 #define GPIO_AF8_COMP5 ((uint8_t)0x08U) /* COMP5 Alternate Function mapping */ 665 #define GPIO_AF8_COMP6 ((uint8_t)0x08U) /* COMP6 Alternate Function mapping */ 666 #define GPIO_AF8_I2C3 ((uint8_t)0x08U) /* I2C3 Alternate Function mapping */ 667 668 /** 669 * @brief AF 9 selection 670 */ 671 #define GPIO_AF9_CAN ((uint8_t)0x09U) /* CAN Alternate Function mapping */ 672 #define GPIO_AF9_TIM1 ((uint8_t)0x09U) /* TIM1 Alternate Function mapping */ 673 #define GPIO_AF9_TIM8 ((uint8_t)0x09U) /* TIM8 Alternate Function mapping */ 674 #define GPIO_AF9_TIM15 ((uint8_t)0x09U) /* TIM15 Alternate Function mapping */ 675 676 /** 677 * @brief AF 10 selection 678 */ 679 #define GPIO_AF10_TIM2 ((uint8_t)0xAU) /* TIM2 Alternate Function mapping */ 680 #define GPIO_AF10_TIM3 ((uint8_t)0xAU) /* TIM3 Alternate Function mapping */ 681 #define GPIO_AF10_TIM4 ((uint8_t)0xAU) /* TIM4 Alternate Function mapping */ 682 #define GPIO_AF10_TIM8 ((uint8_t)0xAU) /* TIM8 Alternate Function mapping */ 683 #define GPIO_AF10_TIM17 ((uint8_t)0xAU) /* TIM17 Alternate Function mapping */ 684 /** 685 * @brief AF 11 selection 686 */ 687 #define GPIO_AF11_TIM1 ((uint8_t)0x0BU) /* TIM1 Alternate Function mapping */ 688 #define GPIO_AF11_TIM8 ((uint8_t)0x0BU) /* TIM8 Alternate Function mapping */ 689 690 /** 691 * @brief AF 12 selection 692 */ 693 #define GPIO_AF12_TIM1 ((uint8_t)0xCU) /* TIM1 Alternate Function mapping */ 694 #define GPIO_AF12_FMC ((uint8_t)0xCU) /* FMC Alternate Function mapping */ 695 #define GPIO_AF12_SDIO ((uint8_t)0xCU) /* SDIO Alternate Function mapping */ 696 697 /** 698 * @brief AF 15 selection 699 */ 700 #define GPIO_AF15_EVENTOUT ((uint8_t)0x0FU) /* EVENTOUT Alternate Function mapping */ 701 702 #define IS_GPIO_AF(AF) (((AF) <= (uint8_t)0x0CU) || ((AF) == (uint8_t)0x0FU)) 703 /*------------------------------------------------------------------------------------------*/ 704 #endif /* STM32F398xx */ 705 706 #if defined (STM32F358xx) 707 /*---------------------------------- STM32F358xx -------------------------------------------*/ 708 /** 709 * @brief AF 0 selection 710 */ 711 #define GPIO_AF0_RTC_50Hz ((uint8_t)0x00U) /* RTC_50Hz Alternate Function mapping */ 712 #define GPIO_AF0_MCO ((uint8_t)0x00U) /* MCO (MCO1 and MCO2) Alternate Function mapping */ 713 #define GPIO_AF0_TAMPER ((uint8_t)0x00U) /* TAMPER (TAMPER_1 and TAMPER_2) Alternate Function mapping */ 714 #define GPIO_AF0_SWJ ((uint8_t)0x00U) /* SWJ (SWD and JTAG) Alternate Function mapping */ 715 #define GPIO_AF0_TRACE ((uint8_t)0x00U) /* TRACE Alternate Function mapping */ 716 717 /** 718 * @brief AF 1 selection 719 */ 720 #define GPIO_AF1_TIM2 ((uint8_t)0x01U) /* TIM2 Alternate Function mapping */ 721 #define GPIO_AF1_TIM15 ((uint8_t)0x01U) /* TIM15 Alternate Function mapping */ 722 #define GPIO_AF1_TIM16 ((uint8_t)0x01U) /* TIM16 Alternate Function mapping */ 723 #define GPIO_AF1_TIM17 ((uint8_t)0x01U) /* TIM17 Alternate Function mapping */ 724 #define GPIO_AF1_EVENTOUT ((uint8_t)0x01U) /* EVENTOUT Alternate Function mapping */ 725 /** 726 * @brief AF 2 selection 727 */ 728 #define GPIO_AF2_TIM1 ((uint8_t)0x02U) /* TIM1 Alternate Function mapping */ 729 #define GPIO_AF2_TIM2 ((uint8_t)0x02U) /* TIM2 Alternate Function mapping */ 730 #define GPIO_AF2_TIM3 ((uint8_t)0x02U) /* TIM3 Alternate Function mapping */ 731 #define GPIO_AF2_TIM4 ((uint8_t)0x02U) /* TIM4 Alternate Function mapping */ 732 #define GPIO_AF2_TIM8 ((uint8_t)0x02U) /* TIM8 Alternate Function mapping */ 733 #define GPIO_AF2_TIM15 ((uint8_t)0x02U) /* TIM15 Alternate Function mapping */ 734 #define GPIO_AF2_COMP1 ((uint8_t)0x02U) /* COMP1 Alternate Function mapping */ 735 /** 736 * @brief AF 3 selection 737 */ 738 #define GPIO_AF3_TSC ((uint8_t)0x03U) /* TSC Alternate Function mapping */ 739 #define GPIO_AF3_TIM8 ((uint8_t)0x03U) /* TIM8 Alternate Function mapping */ 740 #define GPIO_AF3_COMP7 ((uint8_t)0x03U) /* COMP7 Alternate Function mapping */ 741 #define GPIO_AF3_TIM15 ((uint8_t)0x03U) /* TIM15 Alternate Function mapping */ 742 743 /** 744 * @brief AF 4 selection 745 */ 746 #define GPIO_AF4_TIM1 ((uint8_t)0x04U) /* TIM1 Alternate Function mapping */ 747 #define GPIO_AF4_TIM8 ((uint8_t)0x04U) /* TIM8 Alternate Function mapping */ 748 #define GPIO_AF4_TIM16 ((uint8_t)0x04U) /* TIM16 Alternate Function mapping */ 749 #define GPIO_AF4_TIM17 ((uint8_t)0x04U) /* TIM17 Alternate Function mapping */ 750 #define GPIO_AF4_I2C1 ((uint8_t)0x04U) /* I2C1 Alternate Function mapping */ 751 #define GPIO_AF4_I2C2 ((uint8_t)0x04U) /* I2C2 Alternate Function mapping */ 752 753 /** 754 * @brief AF 5 selection 755 */ 756 #define GPIO_AF5_SPI1 ((uint8_t)0x05U) /* SPI1/I2S1 Alternate Function mapping */ 757 #define GPIO_AF5_SPI2 ((uint8_t)0x05U) /* SPI2/I2S2 Alternate Function mapping */ 758 #define GPIO_AF5_SPI3 ((uint8_t)0x05U) /* SPI3/I2S3 Alternate Function mapping */ 759 #define GPIO_AF5_I2S ((uint8_t)0x05U) /* I2S Alternate Function mapping */ 760 #define GPIO_AF5_I2S2ext ((uint8_t)0x05U) /* I2S2ext Alternate Function mapping */ 761 #define GPIO_AF5_TIM8 ((uint8_t)0x05U) /* TIM8 Alternate Function mapping */ 762 #define GPIO_AF5_IR ((uint8_t)0x05U) /* IR Alternate Function mapping */ 763 #define GPIO_AF5_UART4 ((uint8_t)0x05U) /* UART4 Alternate Function mapping */ 764 #define GPIO_AF5_UART5 ((uint8_t)0x05U) /* UART5 Alternate Function mapping */ 765 /** 766 * @brief AF 6 selection 767 */ 768 #define GPIO_AF6_SPI2 ((uint8_t)0x06U) /* SPI2/I2S2 Alternate Function mapping */ 769 #define GPIO_AF6_SPI3 ((uint8_t)0x06U) /* SPI3/I2S3 Alternate Function mapping */ 770 #define GPIO_AF6_I2S3ext ((uint8_t)0x06U) /* I2S3ext Alternate Function mapping */ 771 #define GPIO_AF6_TIM1 ((uint8_t)0x06U) /* TIM1 Alternate Function mapping */ 772 #define GPIO_AF6_TIM8 ((uint8_t)0x06U) /* TIM8 Alternate Function mapping */ 773 #define GPIO_AF6_IR ((uint8_t)0x06U) /* IR Alternate Function mapping */ 774 775 /** 776 * @brief AF 7 selection 777 */ 778 #define GPIO_AF7_USART1 ((uint8_t)0x07U) /* USART1 Alternate Function mapping */ 779 #define GPIO_AF7_USART2 ((uint8_t)0x07U) /* USART2 Alternate Function mapping */ 780 #define GPIO_AF7_USART3 ((uint8_t)0x07U) /* USART3 Alternate Function mapping */ 781 #define GPIO_AF7_COMP3 ((uint8_t)0x07U) /* COMP3 Alternate Function mapping */ 782 #define GPIO_AF7_COMP5 ((uint8_t)0x07U) /* COMP5 Alternate Function mapping */ 783 #define GPIO_AF7_COMP6 ((uint8_t)0x07U) /* COMP6 Alternate Function mapping */ 784 #define GPIO_AF7_CAN ((uint8_t)0x07U) /* CAN Alternate Function mapping */ 785 786 /** 787 * @brief AF 8 selection 788 */ 789 #define GPIO_AF8_COMP1 ((uint8_t)0x08U) /* COMP1 Alternate Function mapping */ 790 #define GPIO_AF8_COMP2 ((uint8_t)0x08U) /* COMP2 Alternate Function mapping */ 791 #define GPIO_AF8_COMP3 ((uint8_t)0x08U) /* COMP3 Alternate Function mapping */ 792 #define GPIO_AF8_COMP4 ((uint8_t)0x08U) /* COMP4 Alternate Function mapping */ 793 #define GPIO_AF8_COMP5 ((uint8_t)0x08U) /* COMP5 Alternate Function mapping */ 794 #define GPIO_AF8_COMP6 ((uint8_t)0x08U) /* COMP6 Alternate Function mapping */ 795 796 /** 797 * @brief AF 9 selection 798 */ 799 #define GPIO_AF9_CAN ((uint8_t)0x09U) /* CAN Alternate Function mapping */ 800 #define GPIO_AF9_TIM1 ((uint8_t)0x09U) /* TIM1 Alternate Function mapping */ 801 #define GPIO_AF9_TIM8 ((uint8_t)0x09U) /* TIM8 Alternate Function mapping */ 802 #define GPIO_AF9_TIM15 ((uint8_t)0x09U) /* TIM15 Alternate Function mapping */ 803 804 /** 805 * @brief AF 10 selection 806 */ 807 #define GPIO_AF10_TIM2 ((uint8_t)0xAU) /* TIM2 Alternate Function mapping */ 808 #define GPIO_AF10_TIM3 ((uint8_t)0xAU) /* TIM3 Alternate Function mapping */ 809 #define GPIO_AF10_TIM4 ((uint8_t)0xAU) /* TIM4 Alternate Function mapping */ 810 #define GPIO_AF10_TIM8 ((uint8_t)0xAU) /* TIM8 Alternate Function mapping */ 811 #define GPIO_AF10_TIM17 ((uint8_t)0xAU) /* TIM17 Alternate Function mapping */ 812 /** 813 * @brief AF 11 selection 814 */ 815 #define GPIO_AF11_TIM1 ((uint8_t)0x0BU) /* TIM1 Alternate Function mapping */ 816 #define GPIO_AF11_TIM8 ((uint8_t)0x0BU) /* TIM8 Alternate Function mapping */ 817 818 /** 819 * @brief AF 12 selection 820 */ 821 #define GPIO_AF12_TIM1 ((uint8_t)0xCU) /* TIM1 Alternate Function mapping */ 822 823 /** 824 * @brief AF 15 selection 825 */ 826 #define GPIO_AF15_EVENTOUT ((uint8_t)0x0FU) /* EVENTOUT Alternate Function mapping */ 827 828 #define IS_GPIO_AF(AF) (((AF) <= (uint8_t)0x0CU) || ((AF) == (uint8_t)0x0FU)) 829 /*------------------------------------------------------------------------------------------*/ 830 #endif /* STM32F358xx */ 831 832 #if defined (STM32F373xC) 833 /*---------------------------------- STM32F373xC--------------------------------*/ 834 /** 835 * @brief AF 0 selection 836 */ 837 #define GPIO_AF0_RTC_50Hz ((uint8_t)0x00U) /* RTC_50Hz Alternate Function mapping */ 838 #define GPIO_AF0_MCO ((uint8_t)0x00U) /* MCO (MCO1 and MCO2) Alternate Function mapping */ 839 #define GPIO_AF0_TAMPER ((uint8_t)0x00U) /* TAMPER (TAMPER_1 and TAMPER_2) Alternate Function mapping */ 840 #define GPIO_AF0_SWJ ((uint8_t)0x00U) /* SWJ (SWD and JTAG) Alternate Function mapping */ 841 #define GPIO_AF0_TRACE ((uint8_t)0x00U) /* TRACE Alternate Function mapping */ 842 843 /** 844 * @brief AF 1 selection 845 */ 846 #define GPIO_AF1_TIM2 ((uint8_t)0x01U) /* TIM2 Alternate Function mapping */ 847 #define GPIO_AF1_TIM15 ((uint8_t)0x01U) /* TIM15 Alternate Function mapping */ 848 #define GPIO_AF1_TIM16 ((uint8_t)0x01U) /* TIM16 Alternate Function mapping */ 849 #define GPIO_AF1_TIM17 ((uint8_t)0x01U) /* TIM17 Alternate Function mapping */ 850 #define GPIO_AF1_EVENTOUT ((uint8_t)0x01U) /* EVENTOUT Alternate Function mapping */ 851 /** 852 * @brief AF 2 selection 853 */ 854 #define GPIO_AF2_TIM3 ((uint8_t)0x02U) /* TIM3 Alternate Function mapping */ 855 #define GPIO_AF2_TIM4 ((uint8_t)0x02U) /* TIM4 Alternate Function mapping */ 856 #define GPIO_AF2_TIM5 ((uint8_t)0x02U) /* TIM5 Alternate Function mapping */ 857 #define GPIO_AF2_TIM13 ((uint8_t)0x02U) /* TIM13 Alternate Function mapping */ 858 #define GPIO_AF2_TIM14 ((uint8_t)0x02U) /* TIM14 Alternate Function mapping */ 859 #define GPIO_AF2_TIM15 ((uint8_t)0x02U) /* TIM15 Alternate Function mapping */ 860 #define GPIO_AF2_TIM19 ((uint8_t)0x02U) /* TIM19 Alternate Function mapping */ 861 862 /** 863 * @brief AF 3 selection 864 */ 865 #define GPIO_AF3_TSC ((uint8_t)0x03U) /* TSC Alternate Function mapping */ 866 /** 867 * @brief AF 4 selection 868 */ 869 #define GPIO_AF4_I2C1 ((uint8_t)0x04U) /* I2C1 Alternate Function mapping */ 870 #define GPIO_AF4_I2C2 ((uint8_t)0x04U) /* I2C2 Alternate Function mapping */ 871 872 /** 873 * @brief AF 5 selection 874 */ 875 #define GPIO_AF5_SPI1 ((uint8_t)0x05U) /* SPI1/I2S1 Alternate Function mapping */ 876 #define GPIO_AF5_SPI2 ((uint8_t)0x05U) /* SPI2/I2S2 Alternate Function mapping */ 877 #define GPIO_AF5_IR ((uint8_t)0x05U) /* IR Alternate Function mapping */ 878 /** 879 * @brief AF 6 selection 880 */ 881 #define GPIO_AF6_SPI1 ((uint8_t)0x06U) /* SPI1/I2S1 Alternate Function mapping */ 882 #define GPIO_AF6_SPI3 ((uint8_t)0x06U) /* SPI3/I2S3 Alternate Function mapping */ 883 #define GPIO_AF6_IR ((uint8_t)0x06U) /* IR Alternate Function mapping */ 884 #define GPIO_AF6_CEC ((uint8_t)0x06U) /* CEC Alternate Function mapping */ 885 /** 886 * @brief AF 7 selection 887 */ 888 #define GPIO_AF7_USART1 ((uint8_t)0x07U) /* USART1 Alternate Function mapping */ 889 #define GPIO_AF7_USART2 ((uint8_t)0x07U) /* USART2 Alternate Function mapping */ 890 #define GPIO_AF7_USART3 ((uint8_t)0x07U) /* USART3 Alternate Function mapping */ 891 #define GPIO_AF7_CAN ((uint8_t)0x07U) /* CAN Alternate Function mapping */ 892 #define GPIO_AF7_CEC ((uint8_t)0x07U) /* CEC Alternate Function mapping */ 893 894 /** 895 * @brief AF 8 selection 896 */ 897 #define GPIO_AF8_COMP1 ((uint8_t)0x08U) /* COMP1 Alternate Function mapping */ 898 #define GPIO_AF8_COMP2 ((uint8_t)0x08U) /* COMP2 Alternate Function mapping */ 899 900 /** 901 * @brief AF 9 selection 902 */ 903 #define GPIO_AF9_CAN ((uint8_t)0x09U) /* CAN Alternate Function mapping */ 904 #define GPIO_AF9_TIM12 ((uint8_t)0x09U) /* TIM12 Alternate Function mapping */ 905 #define GPIO_AF9_TIM13 ((uint8_t)0x09U) /* TIM13 Alternate Function mapping */ 906 #define GPIO_AF9_TIM14 ((uint8_t)0x09U) /* TIM14 Alternate Function mapping */ 907 #define GPIO_AF9_TIM15 ((uint8_t)0x09U) /* TIM15 Alternate Function mapping */ 908 /** 909 * @brief AF 10 selection 910 */ 911 #define GPIO_AF10_TIM2 ((uint8_t)0xAU) /* TIM2 Alternate Function mapping */ 912 #define GPIO_AF10_TIM3 ((uint8_t)0xAU) /* TIM3 Alternate Function mapping */ 913 #define GPIO_AF10_TIM4 ((uint8_t)0xAU) /* TIM4 Alternate Function mapping */ 914 #define GPIO_AF10_TIM12 ((uint8_t)0xAU) /* TIM12 Alternate Function mapping */ 915 #define GPIO_AF10_TIM17 ((uint8_t)0xAU) /* TIM17 Alternate Function mapping */ 916 /** 917 * @brief AF 11 selection 918 */ 919 #define GPIO_AF11_TIM19 ((uint8_t)0x0BU) /* TIM19 Alternate Function mapping */ 920 921 922 /** 923 * @brief AF 14 selection 924 */ 925 #define GPIO_AF14_USB ((uint8_t)0x0EU) /* USB Alternate Function mapping */ 926 927 /** 928 * @brief AF 15 selection 929 */ 930 #define GPIO_AF15_EVENTOUT ((uint8_t)0x0FU) /* EVENTOUT Alternate Function mapping */ 931 932 #define IS_GPIO_AF(AF) (((AF) <= (uint8_t)0x0BU) || ((AF) == (uint8_t)0x0EU) || ((AF) == (uint8_t)0x0FU)) 933 /*------------------------------------------------------------------------------------------*/ 934 #endif /* STM32F373xC */ 935 936 937 #if defined (STM32F378xx) 938 /*---------------------------------------- STM32F378xx--------------------------------------*/ 939 /** 940 * @brief AF 0 selection 941 */ 942 #define GPIO_AF0_RTC_50Hz ((uint8_t)0x00U) /* RTC_50Hz Alternate Function mapping */ 943 #define GPIO_AF0_MCO ((uint8_t)0x00U) /* MCO (MCO1 and MCO2) Alternate Function mapping */ 944 #define GPIO_AF0_TAMPER ((uint8_t)0x00U) /* TAMPER (TAMPER_1 and TAMPER_2) Alternate Function mapping */ 945 #define GPIO_AF0_SWJ ((uint8_t)0x00U) /* SWJ (SWD and JTAG) Alternate Function mapping */ 946 #define GPIO_AF0_TRACE ((uint8_t)0x00U) /* TRACE Alternate Function mapping */ 947 948 /** 949 * @brief AF 1 selection 950 */ 951 #define GPIO_AF1_TIM2 ((uint8_t)0x01U) /* TIM2 Alternate Function mapping */ 952 #define GPIO_AF1_TIM15 ((uint8_t)0x01U) /* TIM15 Alternate Function mapping */ 953 #define GPIO_AF1_TIM16 ((uint8_t)0x01U) /* TIM16 Alternate Function mapping */ 954 #define GPIO_AF1_TIM17 ((uint8_t)0x01U) /* TIM17 Alternate Function mapping */ 955 #define GPIO_AF1_EVENTOUT ((uint8_t)0x01U) /* EVENTOUT Alternate Function mapping */ 956 /** 957 * @brief AF 2 selection 958 */ 959 #define GPIO_AF2_TIM3 ((uint8_t)0x02U) /* TIM3 Alternate Function mapping */ 960 #define GPIO_AF2_TIM4 ((uint8_t)0x02U) /* TIM4 Alternate Function mapping */ 961 #define GPIO_AF2_TIM5 ((uint8_t)0x02U) /* TIM5 Alternate Function mapping */ 962 #define GPIO_AF2_TIM13 ((uint8_t)0x02U) /* TIM13 Alternate Function mapping */ 963 #define GPIO_AF2_TIM14 ((uint8_t)0x02U) /* TIM14 Alternate Function mapping */ 964 #define GPIO_AF2_TIM15 ((uint8_t)0x02U) /* TIM15 Alternate Function mapping */ 965 #define GPIO_AF2_TIM19 ((uint8_t)0x02U) /* TIM19 Alternate Function mapping */ 966 967 /** 968 * @brief AF 3 selection 969 */ 970 #define GPIO_AF3_TSC ((uint8_t)0x03U) /* TSC Alternate Function mapping */ 971 /** 972 * @brief AF 4 selection 973 */ 974 #define GPIO_AF4_I2C1 ((uint8_t)0x04U) /* I2C1 Alternate Function mapping */ 975 #define GPIO_AF4_I2C2 ((uint8_t)0x04U) /* I2C2 Alternate Function mapping */ 976 977 /** 978 * @brief AF 5 selection 979 */ 980 #define GPIO_AF5_SPI1 ((uint8_t)0x05U) /* SPI1/I2S1 Alternate Function mapping */ 981 #define GPIO_AF5_SPI2 ((uint8_t)0x05U) /* SPI2/I2S2 Alternate Function mapping */ 982 #define GPIO_AF5_IR ((uint8_t)0x05U) /* IR Alternate Function mapping */ 983 984 /** 985 * @brief AF 6 selection 986 */ 987 #define GPIO_AF6_SPI1 ((uint8_t)0x06U) /* SPI1/I2S1 Alternate Function mapping */ 988 #define GPIO_AF6_SPI3 ((uint8_t)0x06U) /* SPI3/I2S3 Alternate Function mapping */ 989 #define GPIO_AF6_IR ((uint8_t)0x06U) /* IR Alternate Function mapping */ 990 #define GPIO_AF6_CEC ((uint8_t)0x06U) /* CEC Alternate Function mapping */ 991 992 /** 993 * @brief AF 7 selection 994 */ 995 #define GPIO_AF7_USART1 ((uint8_t)0x07U) /* USART1 Alternate Function mapping */ 996 #define GPIO_AF7_USART2 ((uint8_t)0x07U) /* USART2 Alternate Function mapping */ 997 #define GPIO_AF7_USART3 ((uint8_t)0x07U) /* USART3 Alternate Function mapping */ 998 #define GPIO_AF7_CAN ((uint8_t)0x07U) /* CAN Alternate Function mapping */ 999 #define GPIO_AF7_CEC ((uint8_t)0x07U) /* CEC Alternate Function mapping */ 1000 1001 /** 1002 * @brief AF 8 selection 1003 */ 1004 #define GPIO_AF8_COMP1 ((uint8_t)0x08U) /* COMP1 Alternate Function mapping */ 1005 #define GPIO_AF8_COMP2 ((uint8_t)0x08U) /* COMP2 Alternate Function mapping */ 1006 1007 /** 1008 * @brief AF 9 selection 1009 */ 1010 #define GPIO_AF9_CAN ((uint8_t)0x09U) /* CAN Alternate Function mapping */ 1011 #define GPIO_AF9_TIM12 ((uint8_t)0x09U) /* TIM12 Alternate Function mapping */ 1012 #define GPIO_AF9_TIM13 ((uint8_t)0x09U) /* TIM13 Alternate Function mapping */ 1013 #define GPIO_AF9_TIM14 ((uint8_t)0x09U) /* TIM14 Alternate Function mapping */ 1014 #define GPIO_AF9_TIM15 ((uint8_t)0x09U) /* TIM15 Alternate Function mapping */ 1015 1016 /** 1017 * @brief AF 10 selection 1018 */ 1019 #define GPIO_AF10_TIM2 ((uint8_t)0xAU) /* TIM2 Alternate Function mapping */ 1020 #define GPIO_AF10_TIM3 ((uint8_t)0xAU) /* TIM3 Alternate Function mapping */ 1021 #define GPIO_AF10_TIM4 ((uint8_t)0xAU) /* TIM4 Alternate Function mapping */ 1022 #define GPIO_AF10_TIM12 ((uint8_t)0xAU) /* TIM12 Alternate Function mapping */ 1023 #define GPIO_AF10_TIM17 ((uint8_t)0xAU) /* TIM17 Alternate Function mapping */ 1024 1025 /** 1026 * @brief AF 11 selection 1027 */ 1028 #define GPIO_AF11_TIM19 ((uint8_t)0x0BU) /* TIM19 Alternate Function mapping */ 1029 1030 /** 1031 * @brief AF 15 selection 1032 */ 1033 #define GPIO_AF15_EVENTOUT ((uint8_t)0x0FU) /* EVENTOUT Alternate Function mapping */ 1034 1035 #define IS_GPIO_AF(AF) (((AF) <= (uint8_t)0x0BU) || ((AF) == (uint8_t)0x0FU)) 1036 /*------------------------------------------------------------------------------------------*/ 1037 #endif /* STM32F378xx */ 1038 1039 #if defined (STM32F303x8) 1040 /*---------------------------------- STM32F303x8--------------------------------*/ 1041 /** 1042 * @brief AF 0 selection 1043 */ 1044 #define GPIO_AF0_MCO ((uint8_t)0x00U) /* MCO (MCO1 and MCO2) Alternate Function mapping */ 1045 #define GPIO_AF0_TAMPER ((uint8_t)0x00U) /* TAMPER (TAMPER_1 and TAMPER_2) Alternate Function mapping */ 1046 #define GPIO_AF0_SWJ ((uint8_t)0x00U) /* SWJ (SWD and JTAG) Alternate Function mapping */ 1047 #define GPIO_AF0_TRACE ((uint8_t)0x00U) /* TRACE Alternate Function mapping */ 1048 1049 /** 1050 * @brief AF 1 selection 1051 */ 1052 #define GPIO_AF1_TIM2 ((uint8_t)0x01U) /* TIM2 Alternate Function mapping */ 1053 #define GPIO_AF1_TIM15 ((uint8_t)0x01U) /* TIM15 Alternate Function mapping */ 1054 #define GPIO_AF1_TIM16 ((uint8_t)0x01U) /* TIM16 Alternate Function mapping */ 1055 #define GPIO_AF1_TIM17 ((uint8_t)0x01U) /* TIM17 Alternate Function mapping */ 1056 #define GPIO_AF1_EVENTOUT ((uint8_t)0x01U) /* EVENTOUT Alternate Function mapping */ 1057 /** 1058 * @brief AF 2 selection 1059 */ 1060 #define GPIO_AF2_TIM3 ((uint8_t)0x02U) /* TIM3 Alternate Function mapping */ 1061 #define GPIO_AF2_TIM1 ((uint8_t)0x02U) /* TIM1 Alternate Function mapping */ 1062 #define GPIO_AF2_TIM15 ((uint8_t)0x02U) /* TIM15 Alternate Function mapping */ 1063 #define GPIO_AF2_TIM16 ((uint8_t)0x02U) /* TIM16 Alternate Function mapping */ 1064 1065 /** 1066 * @brief AF 3 selection 1067 */ 1068 #define GPIO_AF3_TSC ((uint8_t)0x03U) /* TSC Alternate Function mapping */ 1069 1070 /** 1071 * @brief AF 4 selection 1072 */ 1073 #define GPIO_AF4_I2C1 ((uint8_t)0x04U) /* I2C1 Alternate Function mapping */ 1074 #define GPIO_AF4_TIM1 ((uint8_t)0x04U) /* TIM1 Alternate Function mapping */ 1075 1076 /** 1077 * @brief AF 5 selection 1078 */ 1079 #define GPIO_AF5_SPI1 ((uint8_t)0x05U) /* SPI1 Alternate Function mapping */ 1080 #define GPIO_AF5_IR ((uint8_t)0x05U) /* IR Alternate Function mapping */ 1081 /** 1082 * @brief AF 6 selection 1083 */ 1084 #define GPIO_AF6_TIM1 ((uint8_t)0x06U) /* TIM1 Alternate Function mapping */ 1085 #define GPIO_AF6_IR ((uint8_t)0x06U) /* IR Alternate Function mapping */ 1086 1087 /** 1088 * @brief AF 7 selection 1089 */ 1090 #define GPIO_AF7_USART1 ((uint8_t)0x07U) /* USART1 Alternate Function mapping */ 1091 #define GPIO_AF7_USART2 ((uint8_t)0x07U) /* USART2 Alternate Function mapping */ 1092 #define GPIO_AF7_USART3 ((uint8_t)0x07U) /* USART3 Alternate Function mapping */ 1093 #define GPIO_AF7_GPCOMP6 ((uint8_t)0x07U) /* GPCOMP6 Alternate Function mapping */ 1094 1095 /** 1096 * @brief AF 8 selection 1097 */ 1098 #define GPIO_AF8_GPCOMP2 ((uint8_t)0x08U) /* GPCOMP2 Alternate Function mapping */ 1099 #define GPIO_AF8_GPCOMP4 ((uint8_t)0x08U) /* GPCOMP4 Alternate Function mapping */ 1100 #define GPIO_AF8_GPCOMP6 ((uint8_t)0x08U) /* GPCOMP6 Alternate Function mapping */ 1101 1102 /** 1103 * @brief AF 9 selection 1104 */ 1105 #define GPIO_AF9_CAN ((uint8_t)0x09U) /* CAN Alternate Function mapping */ 1106 #define GPIO_AF9_TIM1 ((uint8_t)0x09U) /* TIM1 Alternate Function mapping */ 1107 #define GPIO_AF9_TIM15 ((uint8_t)0x09U) /* TIM15 Alternate Function mapping */ 1108 /** 1109 * @brief AF 10 selection 1110 */ 1111 #define GPIO_AF10_TIM2 ((uint8_t)0xAU) /* TIM2 Alternate Function mapping */ 1112 #define GPIO_AF10_TIM3 ((uint8_t)0xAU) /* TIM3 Alternate Function mapping */ 1113 #define GPIO_AF10_TIM17 ((uint8_t)0xAU) /* TIM17 Alternate Function mapping */ 1114 1115 /** 1116 * @brief AF 11 selection 1117 */ 1118 #define GPIO_AF11_TIM1 ((uint8_t)0x0BU) /* TIM1 Alternate Function mapping */ 1119 1120 /** 1121 * @brief AF 12 selection 1122 */ 1123 #define GPIO_AF12_TIM1 ((uint8_t)0x0CU) /* TIM1 Alternate Function mapping */ 1124 1125 /** 1126 * @brief AF 13 selection 1127 */ 1128 #define GPIO_AF13_OPAMP2 ((uint8_t)0x0DU) /* OPAMP2 Alternate Function mapping */ 1129 1130 /** 1131 * @brief AF 15 selection 1132 */ 1133 #define GPIO_AF15_EVENTOUT ((uint8_t)0x0FU) /* EVENTOUT Alternate Function mapping */ 1134 1135 #define IS_GPIO_AF(AF) (((AF) <= (uint8_t)0x0DU) || ((AF) == (uint8_t)0x0FU)) 1136 /*------------------------------------------------------------------------------------------*/ 1137 #endif /* STM32F303x8 */ 1138 1139 #if defined (STM32F334x8) || defined (STM32F328xx) 1140 /*---------------------------------- STM32F334x8/STM32F328xx -------------------------------*/ 1141 /** 1142 * @brief AF 0 selection 1143 */ 1144 #define GPIO_AF0_MCO ((uint8_t)0x00U) /* MCO (MCO1 and MCO2) Alternate Function mapping */ 1145 #define GPIO_AF0_TAMPER ((uint8_t)0x00U) /* TAMPER (TAMPER_1 and TAMPER_2) Alternate Function mapping */ 1146 #define GPIO_AF0_SWJ ((uint8_t)0x00U) /* SWJ (SWD and JTAG) Alternate Function mapping */ 1147 #define GPIO_AF0_TRACE ((uint8_t)0x00U) /* TRACE Alternate Function mapping */ 1148 1149 /** 1150 * @brief AF 1 selection 1151 */ 1152 #define GPIO_AF1_TIM2 ((uint8_t)0x01U) /* TIM2 Alternate Function mapping */ 1153 #define GPIO_AF1_TIM15 ((uint8_t)0x01U) /* TIM15 Alternate Function mapping */ 1154 #define GPIO_AF1_TIM16 ((uint8_t)0x01U) /* TIM16 Alternate Function mapping */ 1155 #define GPIO_AF1_TIM17 ((uint8_t)0x01U) /* TIM17 Alternate Function mapping */ 1156 #define GPIO_AF1_EVENTOUT ((uint8_t)0x01U) /* EVENTOUT Alternate Function mapping */ 1157 /** 1158 * @brief AF 2 selection 1159 */ 1160 #define GPIO_AF2_TIM3 ((uint8_t)0x02U) /* TIM3 Alternate Function mapping */ 1161 #define GPIO_AF2_TIM1 ((uint8_t)0x02U) /* TIM1 Alternate Function mapping */ 1162 #define GPIO_AF2_TIM15 ((uint8_t)0x02U) /* TIM15 Alternate Function mapping */ 1163 #define GPIO_AF2_TIM16 ((uint8_t)0x02U) /* TIM16 Alternate Function mapping */ 1164 1165 /** 1166 * @brief AF 3 selection 1167 */ 1168 #define GPIO_AF3_TSC ((uint8_t)0x03U) /* TSC Alternate Function mapping */ 1169 #define GPIO_AF3_HRTIM1 ((uint8_t)0x03U) /* HRTIM1 Alternate Function mapping */ 1170 1171 /** 1172 * @brief AF 4 selection 1173 */ 1174 #define GPIO_AF4_I2C1 ((uint8_t)0x04U) /* I2C1 Alternate Function mapping */ 1175 #define GPIO_AF4_TIM1 ((uint8_t)0x04U) /* TIM1 Alternate Function mapping */ 1176 1177 /** 1178 * @brief AF 5 selection 1179 */ 1180 #define GPIO_AF5_SPI1 ((uint8_t)0x05U) /* SPI1 Alternate Function mapping */ 1181 #define GPIO_AF5_IR ((uint8_t)0x05U) /* IR Alternate Function mapping */ 1182 /** 1183 * @brief AF 6 selection 1184 */ 1185 #define GPIO_AF6_TIM1 ((uint8_t)0x06U) /* TIM1 Alternate Function mapping */ 1186 #define GPIO_AF6_IR ((uint8_t)0x06U) /* IR Alternate Function mapping */ 1187 1188 /** 1189 * @brief AF 7 selection 1190 */ 1191 #define GPIO_AF7_USART1 ((uint8_t)0x07U) /* USART1 Alternate Function mapping */ 1192 #define GPIO_AF7_USART2 ((uint8_t)0x07U) /* USART2 Alternate Function mapping */ 1193 #define GPIO_AF7_USART3 ((uint8_t)0x07U) /* USART3 Alternate Function mapping */ 1194 #define GPIO_AF7_GPCOMP6 ((uint8_t)0x07U) /* GPCOMP6 Alternate Function mapping */ 1195 1196 /** 1197 * @brief AF 8 selection 1198 */ 1199 #define GPIO_AF8_GPCOMP2 ((uint8_t)0x08U) /* GPCOMP2 Alternate Function mapping */ 1200 #define GPIO_AF8_GPCOMP4 ((uint8_t)0x08U) /* GPCOMP4 Alternate Function mapping */ 1201 #define GPIO_AF8_GPCOMP6 ((uint8_t)0x08U) /* GPCOMP6 Alternate Function mapping */ 1202 1203 /** 1204 * @brief AF 9 selection 1205 */ 1206 #define GPIO_AF9_CAN ((uint8_t)0x09U) /* CAN Alternate Function mapping */ 1207 #define GPIO_AF9_TIM1 ((uint8_t)0x09U) /* TIM1 Alternate Function mapping */ 1208 #define GPIO_AF9_TIM15 ((uint8_t)0x09U) /* TIM15 Alternate Function mapping */ 1209 /** 1210 * @brief AF 10 selection 1211 */ 1212 #define GPIO_AF10_TIM2 ((uint8_t)0xAU) /* TIM2 Alternate Function mapping */ 1213 #define GPIO_AF10_TIM3 ((uint8_t)0xAU) /* TIM3 Alternate Function mapping */ 1214 #define GPIO_AF10_TIM17 ((uint8_t)0xAU) /* TIM17 Alternate Function mapping */ 1215 1216 /** 1217 * @brief AF 11 selection 1218 */ 1219 #define GPIO_AF11_TIM1 ((uint8_t)0x0BU) /* TIM1 Alternate Function mapping */ 1220 1221 /** 1222 * @brief AF 12 selection 1223 */ 1224 #define GPIO_AF12_TIM1 ((uint8_t)0x0CU) /* TIM1 Alternate Function mapping */ 1225 #define GPIO_AF12_HRTIM1 ((uint8_t)0x0CU) /* HRTIM1 Alternate Function mapping */ 1226 1227 /** 1228 * @brief AF 13 selection 1229 */ 1230 #define GPIO_AF13_OPAMP2 ((uint8_t)0x0DU) /* OPAMP2 Alternate Function mapping */ 1231 #define GPIO_AF13_HRTIM1 ((uint8_t)0x0DU) /* HRTIM1 Alternate Function mapping */ 1232 1233 /** 1234 * @brief AF 15 selection 1235 */ 1236 #define GPIO_AF15_EVENTOUT ((uint8_t)0x0FU) /* EVENTOUT Alternate Function mapping */ 1237 1238 #define IS_GPIO_AF(AF) (((AF) <= (uint8_t)0x0DU) || ((AF) == (uint8_t)0x0FU)) 1239 /*------------------------------------------------------------------------------------------*/ 1240 #endif /* STM32F334x8 || STM32F328xx */ 1241 1242 #if defined (STM32F301x8) || defined (STM32F318xx) 1243 /*---------------------------------- STM32F301x8 / STM32F318xx ------------------------------------------*/ 1244 /** 1245 * @brief AF 0 selection 1246 */ 1247 #define GPIO_AF0_MCO ((uint8_t)0x00U) /* MCO (MCO1 and MCO2) Alternate Function mapping */ 1248 #define GPIO_AF0_RTC_50Hz ((uint8_t)0x00U) /* RTC Alternate Function mapping */ 1249 #define GPIO_AF0_TAMPER ((uint8_t)0x00U) /* TAMPER (TAMPER_1 and TAMPER_2) Alternate Function mapping */ 1250 #define GPIO_AF0_SWJ ((uint8_t)0x00U) /* SWJ (SWD and JTAG) Alternate Function mapping */ 1251 #define GPIO_AF0_TRACE ((uint8_t)0x00U) /* TRACE Alternate Function mapping */ 1252 1253 /** 1254 * @brief AF 1 selection 1255 */ 1256 #define GPIO_AF1_TIM2 ((uint8_t)0x01U) /* TIM2 Alternate Function mapping */ 1257 #define GPIO_AF1_TIM15 ((uint8_t)0x01U) /* TIM15 Alternate Function mapping */ 1258 #define GPIO_AF1_TIM16 ((uint8_t)0x01U) /* TIM16 Alternate Function mapping */ 1259 #define GPIO_AF1_TIM17 ((uint8_t)0x01U) /* TIM17 Alternate Function mapping */ 1260 #define GPIO_AF1_EVENTOUT ((uint8_t)0x01U) /* EVENTOUT Alternate Function mapping */ 1261 /** 1262 * @brief AF 2 selection 1263 */ 1264 #define GPIO_AF2_I2C3 ((uint8_t)0x02U) /* I2C3 Alternate Function mapping */ 1265 #define GPIO_AF2_TIM1 ((uint8_t)0x02U) /* TIM1 Alternate Function mapping */ 1266 #define GPIO_AF2_TIM15 ((uint8_t)0x02U) /* TIM15 Alternate Function mapping */ 1267 #define GPIO_AF2_TIM2 ((uint8_t)0x02U) /* TIM2 Alternate Function mapping */ 1268 1269 /** 1270 * @brief AF 3 selection 1271 */ 1272 #define GPIO_AF3_TSC ((uint8_t)0x03U) /* TSC Alternate Function mapping */ 1273 #define GPIO_AF3_I2C3 ((uint8_t)0x03U) /* I2C3 Alternate Function mapping */ 1274 #define GPIO_AF3_TIM15 ((uint8_t)0x03U) /* TIM15 Alternate Function mapping */ 1275 1276 /** 1277 * @brief AF 4 selection 1278 */ 1279 #define GPIO_AF4_I2C1 ((uint8_t)0x04U) /* I2C1 Alternate Function mapping */ 1280 #define GPIO_AF4_I2C2 ((uint8_t)0x04U) /* I2C2 Alternate Function mapping */ 1281 #define GPIO_AF4_TIM1 ((uint8_t)0x04U) /* TIM1 Alternate Function mapping */ 1282 #define GPIO_AF4_TIM16 ((uint8_t)0x04U) /* TIM16 Alternate Function mapping */ 1283 #define GPIO_AF4_TIM17 ((uint8_t)0x04U) /* TIM17 Alternate Function mapping */ 1284 1285 /** 1286 * @brief AF 5 selection 1287 */ 1288 #define GPIO_AF5_SPI1 ((uint8_t)0x05U) /* SPI1 Alternate Function mapping */ 1289 #define GPIO_AF5_SPI2 ((uint8_t)0x05U) /* SPI2/I2S2 Alternate Function mapping */ 1290 #define GPIO_AF5_SPI3 ((uint8_t)0x05U) /* SPI3/I2S3 Alternate Function mapping */ 1291 #define GPIO_AF5_IR ((uint8_t)0x05U) /* IR Alternate Function mapping */ 1292 /** 1293 * @brief AF 6 selection 1294 */ 1295 #define GPIO_AF6_TIM1 ((uint8_t)0x06U) /* TIM1 Alternate Function mapping */ 1296 #define GPIO_AF6_IR ((uint8_t)0x06U) /* IR Alternate Function mapping */ 1297 #define GPIO_AF6_SPI2 ((uint8_t)0x06U) /* SPI2/I2S2 Alternate Function mapping */ 1298 #define GPIO_AF6_SPI3 ((uint8_t)0x06U) /* SPI3/I2S3 Alternate Function mapping */ 1299 1300 /** 1301 * @brief AF 7 selection 1302 */ 1303 #define GPIO_AF7_USART1 ((uint8_t)0x07U) /* USART1 Alternate Function mapping */ 1304 #define GPIO_AF7_USART2 ((uint8_t)0x07U) /* USART2 Alternate Function mapping */ 1305 #define GPIO_AF7_USART3 ((uint8_t)0x07U) /* USART3 Alternate Function mapping */ 1306 #define GPIO_AF7_GPCOMP6 ((uint8_t)0x07U) /* GPCOMP6 Alternate Function mapping */ 1307 1308 /** 1309 * @brief AF 8 selection 1310 */ 1311 #define GPIO_AF8_I2C3 ((uint8_t)0x08U) /* I2C3 Alternate Function mapping */ 1312 #define GPIO_AF8_GPCOMP2 ((uint8_t)0x08U) /* GPCOMP2 Alternate Function mapping */ 1313 #define GPIO_AF8_GPCOMP4 ((uint8_t)0x08U) /* GPCOMP4 Alternate Function mapping */ 1314 #define GPIO_AF8_GPCOMP6 ((uint8_t)0x08U) /* GPCOMP6 Alternate Function mapping */ 1315 1316 /** 1317 * @brief AF 9 selection 1318 */ 1319 #define GPIO_AF9_TIM1 ((uint8_t)0x09U) /* TIM1 Alternate Function mapping */ 1320 #define GPIO_AF9_TIM15 ((uint8_t)0x09U) /* TIM15 Alternate Function mapping */ 1321 1322 /** 1323 * @brief AF 10 selection 1324 */ 1325 #define GPIO_AF10_TIM2 ((uint8_t)0xAU) /* TIM2 Alternate Function mapping */ 1326 #define GPIO_AF10_TIM17 ((uint8_t)0xAU) /* TIM17 Alternate Function mapping */ 1327 1328 /** 1329 * @brief AF 11 selection 1330 */ 1331 #define GPIO_AF11_TIM1 ((uint8_t)0x0BU) /* TIM1 Alternate Function mapping */ 1332 1333 /** 1334 * @brief AF 12 selection 1335 */ 1336 #define GPIO_AF12_TIM1 ((uint8_t)0x0CU) /* TIM1 Alternate Function mapping */ 1337 1338 /** 1339 * @brief AF 15 selection 1340 */ 1341 #define GPIO_AF15_EVENTOUT ((uint8_t)0x0FU) /* EVENTOUT Alternate Function mapping */ 1342 1343 #define IS_GPIO_AF(AF) (((AF) <= (uint8_t)0x0CU) || ((AF) == (uint8_t)0x0FU)) 1344 /*------------------------------------------------------------------------------------------*/ 1345 #endif /* STM32F301x8 || STM32F318xx */ 1346 1347 #if defined (STM32F302x8) 1348 /*---------------------------------- STM32F302x8------------------------------------------*/ 1349 /** 1350 * @brief AF 0 selection 1351 */ 1352 #define GPIO_AF0_MCO ((uint8_t)0x00U) /* MCO (MCO1 and MCO2) Alternate Function mapping */ 1353 #define GPIO_AF0_RTC_50Hz ((uint8_t)0x00U) /* RTC Alternate Function mapping */ 1354 #define GPIO_AF0_TAMPER ((uint8_t)0x00U) /* TAMPER (TAMPER_1 and TAMPER_2) Alternate Function mapping */ 1355 #define GPIO_AF0_SWJ ((uint8_t)0x00U) /* SWJ (SWD and JTAG) Alternate Function mapping */ 1356 #define GPIO_AF0_TRACE ((uint8_t)0x00U) /* TRACE Alternate Function mapping */ 1357 1358 /** 1359 * @brief AF 1 selection 1360 */ 1361 #define GPIO_AF1_TIM2 ((uint8_t)0x01U) /* TIM2 Alternate Function mapping */ 1362 #define GPIO_AF1_TIM15 ((uint8_t)0x01U) /* TIM15 Alternate Function mapping */ 1363 #define GPIO_AF1_TIM16 ((uint8_t)0x01U) /* TIM16 Alternate Function mapping */ 1364 #define GPIO_AF1_TIM17 ((uint8_t)0x01U) /* TIM17 Alternate Function mapping */ 1365 #define GPIO_AF1_EVENTOUT ((uint8_t)0x01U) /* EVENTOUT Alternate Function mapping */ 1366 /** 1367 * @brief AF 2 selection 1368 */ 1369 #define GPIO_AF2_I2C3 ((uint8_t)0x02U) /* I2C3 Alternate Function mapping */ 1370 #define GPIO_AF2_TIM1 ((uint8_t)0x02U) /* TIM1 Alternate Function mapping */ 1371 #define GPIO_AF2_TIM15 ((uint8_t)0x02U) /* TIM15 Alternate Function mapping */ 1372 #define GPIO_AF2_TIM2 ((uint8_t)0x02U) /* TIM2 Alternate Function mapping */ 1373 1374 /** 1375 * @brief AF 3 selection 1376 */ 1377 #define GPIO_AF3_TSC ((uint8_t)0x03U) /* TSC Alternate Function mapping */ 1378 #define GPIO_AF3_I2C3 ((uint8_t)0x03U) /* I2C3 Alternate Function mapping */ 1379 #define GPIO_AF3_TIM15 ((uint8_t)0x03U) /* TIM15 Alternate Function mapping */ 1380 1381 /** 1382 * @brief AF 4 selection 1383 */ 1384 #define GPIO_AF4_I2C1 ((uint8_t)0x04U) /* I2C1 Alternate Function mapping */ 1385 #define GPIO_AF4_I2C2 ((uint8_t)0x04U) /* I2C2 Alternate Function mapping */ 1386 #define GPIO_AF4_TIM1 ((uint8_t)0x04U) /* TIM1 Alternate Function mapping */ 1387 #define GPIO_AF4_TIM16 ((uint8_t)0x04U) /* TIM16 Alternate Function mapping */ 1388 #define GPIO_AF4_TIM17 ((uint8_t)0x04U) /* TIM17 Alternate Function mapping */ 1389 1390 /** 1391 * @brief AF 5 selection 1392 */ 1393 #define GPIO_AF5_SPI1 ((uint8_t)0x05U) /* SPI1 Alternate Function mapping */ 1394 #define GPIO_AF5_SPI2 ((uint8_t)0x05U) /* SPI2/I2S2 Alternate Function mapping */ 1395 #define GPIO_AF5_SPI3 ((uint8_t)0x05U) /* SPI3/I2S3 Alternate Function mapping */ 1396 #define GPIO_AF5_IR ((uint8_t)0x05U) /* IR Alternate Function mapping */ 1397 /** 1398 * @brief AF 6 selection 1399 */ 1400 #define GPIO_AF6_TIM1 ((uint8_t)0x06U) /* TIM1 Alternate Function mapping */ 1401 #define GPIO_AF6_IR ((uint8_t)0x06U) /* IR Alternate Function mapping */ 1402 #define GPIO_AF6_SPI2 ((uint8_t)0x06U) /* SPI2/I2S2 Alternate Function mapping */ 1403 #define GPIO_AF6_SPI3 ((uint8_t)0x06U) /* SPI3/I2S3 Alternate Function mapping */ 1404 1405 /** 1406 * @brief AF 7 selection 1407 */ 1408 #define GPIO_AF7_USART1 ((uint8_t)0x07U) /* USART1 Alternate Function mapping */ 1409 #define GPIO_AF7_USART2 ((uint8_t)0x07U) /* USART2 Alternate Function mapping */ 1410 #define GPIO_AF7_USART3 ((uint8_t)0x07U) /* USART3 Alternate Function mapping */ 1411 #define GPIO_AF7_GPCOMP6 ((uint8_t)0x07U) /* GPCOMP6 Alternate Function mapping */ 1412 #define GPIO_AF7_CAN ((uint8_t)0x07U) /* CAN Alternate Function mapping */ 1413 1414 /** 1415 * @brief AF 8 selection 1416 */ 1417 #define GPIO_AF8_I2C3 ((uint8_t)0x08U) /* I2C3 Alternate Function mapping */ 1418 #define GPIO_AF8_GPCOMP2 ((uint8_t)0x08U) /* GPCOMP2 Alternate Function mapping */ 1419 #define GPIO_AF8_GPCOMP4 ((uint8_t)0x08U) /* GPCOMP4 Alternate Function mapping */ 1420 #define GPIO_AF8_GPCOMP6 ((uint8_t)0x08U) /* GPCOMP6 Alternate Function mapping */ 1421 1422 /** 1423 * @brief AF 9 selection 1424 */ 1425 #define GPIO_AF9_TIM1 ((uint8_t)0x09U) /* TIM1 Alternate Function mapping */ 1426 #define GPIO_AF9_TIM15 ((uint8_t)0x09U) /* TIM15 Alternate Function mapping */ 1427 #define GPIO_AF9_CAN ((uint8_t)0x09U) /* CAN Alternate Function mapping */ 1428 1429 /** 1430 * @brief AF 10 selection 1431 */ 1432 #define GPIO_AF10_TIM2 ((uint8_t)0xAU) /* TIM2 Alternate Function mapping */ 1433 #define GPIO_AF10_TIM17 ((uint8_t)0xAU) /* TIM17 Alternate Function mapping */ 1434 1435 /** 1436 * @brief AF 11 selection 1437 */ 1438 #define GPIO_AF11_TIM1 ((uint8_t)0x0BU) /* TIM1 Alternate Function mapping */ 1439 1440 /** 1441 * @brief AF 12 selection 1442 */ 1443 #define GPIO_AF12_TIM1 ((uint8_t)0x0CU) /* TIM1 Alternate Function mapping */ 1444 1445 /** 1446 * @brief AF 15 selection 1447 */ 1448 #define GPIO_AF15_EVENTOUT ((uint8_t)0x0FU) /* EVENTOUT Alternate Function mapping */ 1449 1450 #define IS_GPIO_AF(AF) (((AF) <= (uint8_t)0x0CU) || ((AF) == (uint8_t)0x0FU)) 1451 /*------------------------------------------------------------------------------------------*/ 1452 #endif /* STM32F302x8 */ 1453 /** 1454 * @} 1455 */ 1456 1457 /** 1458 * @} 1459 */ 1460 1461 /* Exported macro ------------------------------------------------------------*/ 1462 /** @defgroup GPIOEx_Exported_Macros GPIOEx Exported Macros 1463 * @{ 1464 */ 1465 1466 /** @defgroup GPIOEx_Get_Port_Index GPIOEx_Get Port Index 1467 * @{ 1468 */ 1469 #if defined(STM32F303x8) || defined(STM32F334x8) || defined(STM32F328xx) || \ 1470 defined(STM32F301x8) || defined(STM32F302x8) || defined(STM32F318xx) 1471 #define GPIO_GET_INDEX(__GPIOx__) (((__GPIOx__) == (GPIOA))? 0U :\ 1472 ((__GPIOx__) == (GPIOB))? 1U :\ 1473 ((__GPIOx__) == (GPIOC))? 2U :\ 1474 ((__GPIOx__) == (GPIOD))? 3U : 5U) 1475 #endif /* STM32F303x8 || STM32F334x8 || STM32F328xx || */ 1476 /* STM32F301x8 || STM32F302x8 || STM32F318xx */ 1477 1478 #if defined(STM32F302xC) || defined(STM32F303xC) || defined(STM32F358xx) || \ 1479 defined(STM32F373xC) || defined(STM32F378xx) 1480 #define GPIO_GET_INDEX(__GPIOx__) (((__GPIOx__) == (GPIOA))? 0U :\ 1481 ((__GPIOx__) == (GPIOB))? 1U :\ 1482 ((__GPIOx__) == (GPIOC))? 2U :\ 1483 ((__GPIOx__) == (GPIOD))? 3U :\ 1484 ((__GPIOx__) == (GPIOE))? 4U : 5U) 1485 #endif /* STM32F302xC || STM32F303xC || STM32F358xx || */ 1486 /* STM32F373xC || STM32F378xx */ 1487 1488 #if defined(STM32F302xE) || defined(STM32F303xE) || defined(STM32F398xx) 1489 #define GPIO_GET_INDEX(__GPIOx__) (((__GPIOx__) == (GPIOA))? 0U :\ 1490 ((__GPIOx__) == (GPIOB))? 1U :\ 1491 ((__GPIOx__) == (GPIOC))? 2U :\ 1492 ((__GPIOx__) == (GPIOD))? 3U :\ 1493 ((__GPIOx__) == (GPIOE))? 4U :\ 1494 ((__GPIOx__) == (GPIOF))? 5U :\ 1495 ((__GPIOx__) == (GPIOG))? 6U : 7U) 1496 #endif /* STM32F302xE || STM32F303xE || STM32F398xx */ 1497 1498 /** 1499 * @} 1500 */ 1501 1502 /** 1503 * @} 1504 */ 1505 1506 /* Exported functions --------------------------------------------------------*/ 1507 /** 1508 * @} 1509 */ 1510 1511 /** 1512 * @} 1513 */ 1514 1515 #ifdef __cplusplus 1516 } 1517 #endif 1518 1519 #endif /* __STM32F3xx_HAL_GPIO_EX_H */ 1520 1521