STM CMSIS
stm32f4xx_hal_gpio_ex.h
Go to the documentation of this file.
1
38
/* Define to prevent recursive inclusion -------------------------------------*/
39
#ifndef __STM32F4xx_HAL_GPIO_EX_H
40
#define __STM32F4xx_HAL_GPIO_EX_H
41
42
#ifdef __cplusplus
43
extern
"C"
{
44
#endif
45
46
/* Includes ------------------------------------------------------------------*/
47
#include "
stm32f4xx_hal_def.h
"
48
57
/* Exported types ------------------------------------------------------------*/
58
/* Exported constants --------------------------------------------------------*/
67
/*------------------------------------------ STM32F429xx/STM32F439xx ---------*/
68
#if defined(STM32F429xx) || defined(STM32F439xx)
69
72
#define GPIO_AF0_RTC_50Hz ((uint8_t)0x00U)
/* RTC_50Hz Alternate Function mapping */
73
#define GPIO_AF0_MCO ((uint8_t)0x00U)
/* MCO (MCO1 and MCO2) Alternate Function mapping */
74
#define GPIO_AF0_TAMPER ((uint8_t)0x00U)
/* TAMPER (TAMPER_1 and TAMPER_2) Alternate Function mapping */
75
#define GPIO_AF0_SWJ ((uint8_t)0x00U)
/* SWJ (SWD and JTAG) Alternate Function mapping */
76
#define GPIO_AF0_TRACE ((uint8_t)0x00U)
/* TRACE Alternate Function mapping */
77
81
#define GPIO_AF1_TIM1 ((uint8_t)0x01U)
/* TIM1 Alternate Function mapping */
82
#define GPIO_AF1_TIM2 ((uint8_t)0x01U)
/* TIM2 Alternate Function mapping */
83
87
#define GPIO_AF2_TIM3 ((uint8_t)0x02U)
/* TIM3 Alternate Function mapping */
88
#define GPIO_AF2_TIM4 ((uint8_t)0x02U)
/* TIM4 Alternate Function mapping */
89
#define GPIO_AF2_TIM5 ((uint8_t)0x02U)
/* TIM5 Alternate Function mapping */
90
94
#define GPIO_AF3_TIM8 ((uint8_t)0x03U)
/* TIM8 Alternate Function mapping */
95
#define GPIO_AF3_TIM9 ((uint8_t)0x03U)
/* TIM9 Alternate Function mapping */
96
#define GPIO_AF3_TIM10 ((uint8_t)0x03U)
/* TIM10 Alternate Function mapping */
97
#define GPIO_AF3_TIM11 ((uint8_t)0x03U)
/* TIM11 Alternate Function mapping */
98
102
#define GPIO_AF4_I2C1 ((uint8_t)0x04U)
/* I2C1 Alternate Function mapping */
103
#define GPIO_AF4_I2C2 ((uint8_t)0x04U)
/* I2C2 Alternate Function mapping */
104
#define GPIO_AF4_I2C3 ((uint8_t)0x04U)
/* I2C3 Alternate Function mapping */
105
109
#define GPIO_AF5_SPI1 ((uint8_t)0x05U)
/* SPI1 Alternate Function mapping */
110
#define GPIO_AF5_SPI2 ((uint8_t)0x05U)
/* SPI2/I2S2 Alternate Function mapping */
111
#define GPIO_AF5_SPI3 ((uint8_t)0x05U)
/* SPI3/I2S3 Alternate Function mapping */
112
#define GPIO_AF5_SPI4 ((uint8_t)0x05U)
/* SPI4 Alternate Function mapping */
113
#define GPIO_AF5_SPI5 ((uint8_t)0x05U)
/* SPI5 Alternate Function mapping */
114
#define GPIO_AF5_SPI6 ((uint8_t)0x05U)
/* SPI6 Alternate Function mapping */
115
#define GPIO_AF5_I2S3ext ((uint8_t)0x05U)
/* I2S3ext_SD Alternate Function mapping */
116
120
#define GPIO_AF6_SPI3 ((uint8_t)0x06U)
/* SPI3/I2S3 Alternate Function mapping */
121
#define GPIO_AF6_I2S2ext ((uint8_t)0x06U)
/* I2S2ext_SD Alternate Function mapping */
122
#define GPIO_AF6_SAI1 ((uint8_t)0x06U)
/* SAI1 Alternate Function mapping */
123
127
#define GPIO_AF7_USART1 ((uint8_t)0x07U)
/* USART1 Alternate Function mapping */
128
#define GPIO_AF7_USART2 ((uint8_t)0x07U)
/* USART2 Alternate Function mapping */
129
#define GPIO_AF7_USART3 ((uint8_t)0x07U)
/* USART3 Alternate Function mapping */
130
#define GPIO_AF7_I2S3ext ((uint8_t)0x07U)
/* I2S3ext_SD Alternate Function mapping */
131
135
#define GPIO_AF8_UART4 ((uint8_t)0x08U)
/* UART4 Alternate Function mapping */
136
#define GPIO_AF8_UART5 ((uint8_t)0x08U)
/* UART5 Alternate Function mapping */
137
#define GPIO_AF8_USART6 ((uint8_t)0x08U)
/* USART6 Alternate Function mapping */
138
#define GPIO_AF8_UART7 ((uint8_t)0x08U)
/* UART7 Alternate Function mapping */
139
#define GPIO_AF8_UART8 ((uint8_t)0x08U)
/* UART8 Alternate Function mapping */
140
144
#define GPIO_AF9_CAN1 ((uint8_t)0x09U)
/* CAN1 Alternate Function mapping */
145
#define GPIO_AF9_CAN2 ((uint8_t)0x09U)
/* CAN2 Alternate Function mapping */
146
#define GPIO_AF9_TIM12 ((uint8_t)0x09U)
/* TIM12 Alternate Function mapping */
147
#define GPIO_AF9_TIM13 ((uint8_t)0x09U)
/* TIM13 Alternate Function mapping */
148
#define GPIO_AF9_TIM14 ((uint8_t)0x09U)
/* TIM14 Alternate Function mapping */
149
#define GPIO_AF9_LTDC ((uint8_t)0x09U)
/* LCD-TFT Alternate Function mapping */
150
154
#define GPIO_AF10_OTG_FS ((uint8_t)0x0AU)
/* OTG_FS Alternate Function mapping */
155
#define GPIO_AF10_OTG_HS ((uint8_t)0x0AU)
/* OTG_HS Alternate Function mapping */
156
160
#define GPIO_AF11_ETH ((uint8_t)0x0BU)
/* ETHERNET Alternate Function mapping */
161
165
#define GPIO_AF12_FMC ((uint8_t)0x0CU)
/* FMC Alternate Function mapping */
166
#define GPIO_AF12_OTG_HS_FS ((uint8_t)0x0CU)
/* OTG HS configured in FS, Alternate Function mapping */
167
#define GPIO_AF12_SDIO ((uint8_t)0x0CU)
/* SDIO Alternate Function mapping */
168
172
#define GPIO_AF13_DCMI ((uint8_t)0x0DU)
/* DCMI Alternate Function mapping */
173
177
#define GPIO_AF14_LTDC ((uint8_t)0x0EU)
/* LCD-TFT Alternate Function mapping */
178
182
#define GPIO_AF15_EVENTOUT ((uint8_t)0x0FU)
/* EVENTOUT Alternate Function mapping */
183
#endif
/* STM32F429xx || STM32F439xx */
184
/*----------------------------------------------------------------------------*/
185
186
/*---------------------------------- STM32F427xx/STM32F437xx------------------*/
187
#if defined(STM32F427xx) || defined(STM32F437xx)
188
191
#define GPIO_AF0_RTC_50Hz ((uint8_t)0x00U)
/* RTC_50Hz Alternate Function mapping */
192
#define GPIO_AF0_MCO ((uint8_t)0x00U)
/* MCO (MCO1 and MCO2) Alternate Function mapping */
193
#define GPIO_AF0_TAMPER ((uint8_t)0x00U)
/* TAMPER (TAMPER_1 and TAMPER_2) Alternate Function mapping */
194
#define GPIO_AF0_SWJ ((uint8_t)0x00U)
/* SWJ (SWD and JTAG) Alternate Function mapping */
195
#define GPIO_AF0_TRACE ((uint8_t)0x00U)
/* TRACE Alternate Function mapping */
196
200
#define GPIO_AF1_TIM1 ((uint8_t)0x01U)
/* TIM1 Alternate Function mapping */
201
#define GPIO_AF1_TIM2 ((uint8_t)0x01U)
/* TIM2 Alternate Function mapping */
202
206
#define GPIO_AF2_TIM3 ((uint8_t)0x02U)
/* TIM3 Alternate Function mapping */
207
#define GPIO_AF2_TIM4 ((uint8_t)0x02U)
/* TIM4 Alternate Function mapping */
208
#define GPIO_AF2_TIM5 ((uint8_t)0x02U)
/* TIM5 Alternate Function mapping */
209
213
#define GPIO_AF3_TIM8 ((uint8_t)0x03U)
/* TIM8 Alternate Function mapping */
214
#define GPIO_AF3_TIM9 ((uint8_t)0x03U)
/* TIM9 Alternate Function mapping */
215
#define GPIO_AF3_TIM10 ((uint8_t)0x03U)
/* TIM10 Alternate Function mapping */
216
#define GPIO_AF3_TIM11 ((uint8_t)0x03U)
/* TIM11 Alternate Function mapping */
217
221
#define GPIO_AF4_I2C1 ((uint8_t)0x04U)
/* I2C1 Alternate Function mapping */
222
#define GPIO_AF4_I2C2 ((uint8_t)0x04U)
/* I2C2 Alternate Function mapping */
223
#define GPIO_AF4_I2C3 ((uint8_t)0x04U)
/* I2C3 Alternate Function mapping */
224
228
#define GPIO_AF5_SPI1 ((uint8_t)0x05U)
/* SPI1 Alternate Function mapping */
229
#define GPIO_AF5_SPI2 ((uint8_t)0x05U)
/* SPI2/I2S2 Alternate Function mapping */
230
#define GPIO_AF5_SPI3 ((uint8_t)0x05U)
/* SPI3/I2S3 Alternate Function mapping */
231
#define GPIO_AF5_SPI4 ((uint8_t)0x05U)
/* SPI4 Alternate Function mapping */
232
#define GPIO_AF5_SPI5 ((uint8_t)0x05U)
/* SPI5 Alternate Function mapping */
233
#define GPIO_AF5_SPI6 ((uint8_t)0x05U)
/* SPI6 Alternate Function mapping */
234
236
#define GPIO_AF5_I2S3ext GPIO_AF5_SPI3
/* I2S3ext_SD Alternate Function mapping */
237
241
#define GPIO_AF6_SPI3 ((uint8_t)0x06U)
/* SPI3/I2S3 Alternate Function mapping */
242
#define GPIO_AF6_I2S2ext ((uint8_t)0x06U)
/* I2S2ext_SD Alternate Function mapping */
243
#define GPIO_AF6_SAI1 ((uint8_t)0x06U)
/* SAI1 Alternate Function mapping */
244
248
#define GPIO_AF7_USART1 ((uint8_t)0x07U)
/* USART1 Alternate Function mapping */
249
#define GPIO_AF7_USART2 ((uint8_t)0x07U)
/* USART2 Alternate Function mapping */
250
#define GPIO_AF7_USART3 ((uint8_t)0x07U)
/* USART3 Alternate Function mapping */
251
#define GPIO_AF7_I2S3ext ((uint8_t)0x07U)
/* I2S3ext_SD Alternate Function mapping */
252
256
#define GPIO_AF8_UART4 ((uint8_t)0x08U)
/* UART4 Alternate Function mapping */
257
#define GPIO_AF8_UART5 ((uint8_t)0x08U)
/* UART5 Alternate Function mapping */
258
#define GPIO_AF8_USART6 ((uint8_t)0x08U)
/* USART6 Alternate Function mapping */
259
#define GPIO_AF8_UART7 ((uint8_t)0x08U)
/* UART7 Alternate Function mapping */
260
#define GPIO_AF8_UART8 ((uint8_t)0x08U)
/* UART8 Alternate Function mapping */
261
265
#define GPIO_AF9_CAN1 ((uint8_t)0x09U)
/* CAN1 Alternate Function mapping */
266
#define GPIO_AF9_CAN2 ((uint8_t)0x09U)
/* CAN2 Alternate Function mapping */
267
#define GPIO_AF9_TIM12 ((uint8_t)0x09U)
/* TIM12 Alternate Function mapping */
268
#define GPIO_AF9_TIM13 ((uint8_t)0x09U)
/* TIM13 Alternate Function mapping */
269
#define GPIO_AF9_TIM14 ((uint8_t)0x09U)
/* TIM14 Alternate Function mapping */
270
274
#define GPIO_AF10_OTG_FS ((uint8_t)0x0AU)
/* OTG_FS Alternate Function mapping */
275
#define GPIO_AF10_OTG_HS ((uint8_t)0x0AU)
/* OTG_HS Alternate Function mapping */
276
280
#define GPIO_AF11_ETH ((uint8_t)0x0BU)
/* ETHERNET Alternate Function mapping */
281
285
#define GPIO_AF12_FMC ((uint8_t)0x0CU)
/* FMC Alternate Function mapping */
286
#define GPIO_AF12_OTG_HS_FS ((uint8_t)0x0CU)
/* OTG HS configured in FS, Alternate Function mapping */
287
#define GPIO_AF12_SDIO ((uint8_t)0x0CU)
/* SDIO Alternate Function mapping */
288
292
#define GPIO_AF13_DCMI ((uint8_t)0x0DU)
/* DCMI Alternate Function mapping */
293
297
#define GPIO_AF15_EVENTOUT ((uint8_t)0x0FU)
/* EVENTOUT Alternate Function mapping */
298
#endif
/* STM32F427xx || STM32F437xx */
299
/*----------------------------------------------------------------------------*/
300
301
/*---------------------------------- STM32F407xx/STM32F417xx------------------*/
302
#if defined(STM32F407xx) || defined(STM32F417xx)
303
306
#define GPIO_AF0_RTC_50Hz ((uint8_t)0x00U)
/* RTC_50Hz Alternate Function mapping */
307
#define GPIO_AF0_MCO ((uint8_t)0x00U)
/* MCO (MCO1 and MCO2) Alternate Function mapping */
308
#define GPIO_AF0_TAMPER ((uint8_t)0x00U)
/* TAMPER (TAMPER_1 and TAMPER_2) Alternate Function mapping */
309
#define GPIO_AF0_SWJ ((uint8_t)0x00U)
/* SWJ (SWD and JTAG) Alternate Function mapping */
310
#define GPIO_AF0_TRACE ((uint8_t)0x00U)
/* TRACE Alternate Function mapping */
311
315
#define GPIO_AF1_TIM1 ((uint8_t)0x01U)
/* TIM1 Alternate Function mapping */
316
#define GPIO_AF1_TIM2 ((uint8_t)0x01U)
/* TIM2 Alternate Function mapping */
317
321
#define GPIO_AF2_TIM3 ((uint8_t)0x02U)
/* TIM3 Alternate Function mapping */
322
#define GPIO_AF2_TIM4 ((uint8_t)0x02U)
/* TIM4 Alternate Function mapping */
323
#define GPIO_AF2_TIM5 ((uint8_t)0x02U)
/* TIM5 Alternate Function mapping */
324
328
#define GPIO_AF3_TIM8 ((uint8_t)0x03U)
/* TIM8 Alternate Function mapping */
329
#define GPIO_AF3_TIM9 ((uint8_t)0x03U)
/* TIM9 Alternate Function mapping */
330
#define GPIO_AF3_TIM10 ((uint8_t)0x03U)
/* TIM10 Alternate Function mapping */
331
#define GPIO_AF3_TIM11 ((uint8_t)0x03U)
/* TIM11 Alternate Function mapping */
332
336
#define GPIO_AF4_I2C1 ((uint8_t)0x04U)
/* I2C1 Alternate Function mapping */
337
#define GPIO_AF4_I2C2 ((uint8_t)0x04U)
/* I2C2 Alternate Function mapping */
338
#define GPIO_AF4_I2C3 ((uint8_t)0x04U)
/* I2C3 Alternate Function mapping */
339
343
#define GPIO_AF5_SPI1 ((uint8_t)0x05U)
/* SPI1 Alternate Function mapping */
344
#define GPIO_AF5_SPI2 ((uint8_t)0x05U)
/* SPI2/I2S2 Alternate Function mapping */
345
#define GPIO_AF5_I2S3ext ((uint8_t)0x05U)
/* I2S3ext_SD Alternate Function mapping */
346
350
#define GPIO_AF6_SPI3 ((uint8_t)0x06U)
/* SPI3/I2S3 Alternate Function mapping */
351
#define GPIO_AF6_I2S2ext ((uint8_t)0x06U)
/* I2S2ext_SD Alternate Function mapping */
352
356
#define GPIO_AF7_USART1 ((uint8_t)0x07U)
/* USART1 Alternate Function mapping */
357
#define GPIO_AF7_USART2 ((uint8_t)0x07U)
/* USART2 Alternate Function mapping */
358
#define GPIO_AF7_USART3 ((uint8_t)0x07U)
/* USART3 Alternate Function mapping */
359
#define GPIO_AF7_I2S3ext ((uint8_t)0x07U)
/* I2S3ext_SD Alternate Function mapping */
360
364
#define GPIO_AF8_UART4 ((uint8_t)0x08U)
/* UART4 Alternate Function mapping */
365
#define GPIO_AF8_UART5 ((uint8_t)0x08U)
/* UART5 Alternate Function mapping */
366
#define GPIO_AF8_USART6 ((uint8_t)0x08U)
/* USART6 Alternate Function mapping */
367
371
#define GPIO_AF9_CAN1 ((uint8_t)0x09U)
/* CAN1 Alternate Function mapping */
372
#define GPIO_AF9_CAN2 ((uint8_t)0x09U)
/* CAN2 Alternate Function mapping */
373
#define GPIO_AF9_TIM12 ((uint8_t)0x09U)
/* TIM12 Alternate Function mapping */
374
#define GPIO_AF9_TIM13 ((uint8_t)0x09U)
/* TIM13 Alternate Function mapping */
375
#define GPIO_AF9_TIM14 ((uint8_t)0x09U)
/* TIM14 Alternate Function mapping */
376
380
#define GPIO_AF10_OTG_FS ((uint8_t)0x0AU)
/* OTG_FS Alternate Function mapping */
381
#define GPIO_AF10_OTG_HS ((uint8_t)0x0AU)
/* OTG_HS Alternate Function mapping */
382
386
#define GPIO_AF11_ETH ((uint8_t)0x0BU)
/* ETHERNET Alternate Function mapping */
387
391
#define GPIO_AF12_FSMC ((uint8_t)0x0CU)
/* FSMC Alternate Function mapping */
392
#define GPIO_AF12_OTG_HS_FS ((uint8_t)0x0CU)
/* OTG HS configured in FS, Alternate Function mapping */
393
#define GPIO_AF12_SDIO ((uint8_t)0x0CU)
/* SDIO Alternate Function mapping */
394
398
#define GPIO_AF13_DCMI ((uint8_t)0x0DU)
/* DCMI Alternate Function mapping */
399
403
#define GPIO_AF15_EVENTOUT ((uint8_t)0x0FU)
/* EVENTOUT Alternate Function mapping */
404
#endif
/* STM32F407xx || STM32F417xx */
405
/*----------------------------------------------------------------------------*/
406
407
/*---------------------------------- STM32F405xx/STM32F415xx------------------*/
408
#if defined(STM32F405xx) || defined(STM32F415xx)
409
412
#define GPIO_AF0_RTC_50Hz ((uint8_t)0x00U)
/* RTC_50Hz Alternate Function mapping */
413
#define GPIO_AF0_MCO ((uint8_t)0x00U)
/* MCO (MCO1 and MCO2) Alternate Function mapping */
414
#define GPIO_AF0_TAMPER ((uint8_t)0x00U)
/* TAMPER (TAMPER_1 and TAMPER_2) Alternate Function mapping */
415
#define GPIO_AF0_SWJ ((uint8_t)0x00U)
/* SWJ (SWD and JTAG) Alternate Function mapping */
416
#define GPIO_AF0_TRACE ((uint8_t)0x00U)
/* TRACE Alternate Function mapping */
417
421
#define GPIO_AF1_TIM1 ((uint8_t)0x01U)
/* TIM1 Alternate Function mapping */
422
#define GPIO_AF1_TIM2 ((uint8_t)0x01U)
/* TIM2 Alternate Function mapping */
423
427
#define GPIO_AF2_TIM3 ((uint8_t)0x02U)
/* TIM3 Alternate Function mapping */
428
#define GPIO_AF2_TIM4 ((uint8_t)0x02U)
/* TIM4 Alternate Function mapping */
429
#define GPIO_AF2_TIM5 ((uint8_t)0x02U)
/* TIM5 Alternate Function mapping */
430
434
#define GPIO_AF3_TIM8 ((uint8_t)0x03U)
/* TIM8 Alternate Function mapping */
435
#define GPIO_AF3_TIM9 ((uint8_t)0x03U)
/* TIM9 Alternate Function mapping */
436
#define GPIO_AF3_TIM10 ((uint8_t)0x03U)
/* TIM10 Alternate Function mapping */
437
#define GPIO_AF3_TIM11 ((uint8_t)0x03U)
/* TIM11 Alternate Function mapping */
438
442
#define GPIO_AF4_I2C1 ((uint8_t)0x04U)
/* I2C1 Alternate Function mapping */
443
#define GPIO_AF4_I2C2 ((uint8_t)0x04U)
/* I2C2 Alternate Function mapping */
444
#define GPIO_AF4_I2C3 ((uint8_t)0x04U)
/* I2C3 Alternate Function mapping */
445
449
#define GPIO_AF5_SPI1 ((uint8_t)0x05U)
/* SPI1 Alternate Function mapping */
450
#define GPIO_AF5_SPI2 ((uint8_t)0x05U)
/* SPI2/I2S2 Alternate Function mapping */
451
#define GPIO_AF5_I2S3ext ((uint8_t)0x05U)
/* I2S3ext_SD Alternate Function mapping */
452
456
#define GPIO_AF6_SPI3 ((uint8_t)0x06U)
/* SPI3/I2S3 Alternate Function mapping */
457
#define GPIO_AF6_I2S2ext ((uint8_t)0x06U)
/* I2S2ext_SD Alternate Function mapping */
458
462
#define GPIO_AF7_USART1 ((uint8_t)0x07U)
/* USART1 Alternate Function mapping */
463
#define GPIO_AF7_USART2 ((uint8_t)0x07U)
/* USART2 Alternate Function mapping */
464
#define GPIO_AF7_USART3 ((uint8_t)0x07U)
/* USART3 Alternate Function mapping */
465
#define GPIO_AF7_I2S3ext ((uint8_t)0x07U)
/* I2S3ext_SD Alternate Function mapping */
466
470
#define GPIO_AF8_UART4 ((uint8_t)0x08U)
/* UART4 Alternate Function mapping */
471
#define GPIO_AF8_UART5 ((uint8_t)0x08U)
/* UART5 Alternate Function mapping */
472
#define GPIO_AF8_USART6 ((uint8_t)0x08U)
/* USART6 Alternate Function mapping */
473
477
#define GPIO_AF9_CAN1 ((uint8_t)0x09U)
/* CAN1 Alternate Function mapping */
478
#define GPIO_AF9_CAN2 ((uint8_t)0x09U)
/* CAN2 Alternate Function mapping */
479
#define GPIO_AF9_TIM12 ((uint8_t)0x09U)
/* TIM12 Alternate Function mapping */
480
#define GPIO_AF9_TIM13 ((uint8_t)0x09U)
/* TIM13 Alternate Function mapping */
481
#define GPIO_AF9_TIM14 ((uint8_t)0x09U)
/* TIM14 Alternate Function mapping */
482
486
#define GPIO_AF10_OTG_FS ((uint8_t)0x0AU)
/* OTG_FS Alternate Function mapping */
487
#define GPIO_AF10_OTG_HS ((uint8_t)0x0AU)
/* OTG_HS Alternate Function mapping */
488
492
#define GPIO_AF12_FSMC ((uint8_t)0x0CU)
/* FSMC Alternate Function mapping */
493
#define GPIO_AF12_OTG_HS_FS ((uint8_t)0x0CU)
/* OTG HS configured in FS, Alternate Function mapping */
494
#define GPIO_AF12_SDIO ((uint8_t)0x0CU)
/* SDIO Alternate Function mapping */
495
499
#define GPIO_AF15_EVENTOUT ((uint8_t)0x0FU)
/* EVENTOUT Alternate Function mapping */
500
#endif
/* STM32F405xx || STM32F415xx */
501
502
/*----------------------------------------------------------------------------*/
503
504
/*---------------------------------------- STM32F401xx------------------------*/
505
#if defined(STM32F401xC) || defined(STM32F401xE)
506
509
#define GPIO_AF0_RTC_50Hz ((uint8_t)0x00U)
/* RTC_50Hz Alternate Function mapping */
510
#define GPIO_AF0_MCO ((uint8_t)0x00U)
/* MCO (MCO1 and MCO2) Alternate Function mapping */
511
#define GPIO_AF0_TAMPER ((uint8_t)0x00U)
/* TAMPER (TAMPER_1 and TAMPER_2) Alternate Function mapping */
512
#define GPIO_AF0_SWJ ((uint8_t)0x00U)
/* SWJ (SWD and JTAG) Alternate Function mapping */
513
#define GPIO_AF0_TRACE ((uint8_t)0x00U)
/* TRACE Alternate Function mapping */
514
518
#define GPIO_AF1_TIM1 ((uint8_t)0x01U)
/* TIM1 Alternate Function mapping */
519
#define GPIO_AF1_TIM2 ((uint8_t)0x01U)
/* TIM2 Alternate Function mapping */
520
524
#define GPIO_AF2_TIM3 ((uint8_t)0x02U)
/* TIM3 Alternate Function mapping */
525
#define GPIO_AF2_TIM4 ((uint8_t)0x02U)
/* TIM4 Alternate Function mapping */
526
#define GPIO_AF2_TIM5 ((uint8_t)0x02U)
/* TIM5 Alternate Function mapping */
527
531
#define GPIO_AF3_TIM9 ((uint8_t)0x03U)
/* TIM9 Alternate Function mapping */
532
#define GPIO_AF3_TIM10 ((uint8_t)0x03U)
/* TIM10 Alternate Function mapping */
533
#define GPIO_AF3_TIM11 ((uint8_t)0x03U)
/* TIM11 Alternate Function mapping */
534
538
#define GPIO_AF4_I2C1 ((uint8_t)0x04U)
/* I2C1 Alternate Function mapping */
539
#define GPIO_AF4_I2C2 ((uint8_t)0x04U)
/* I2C2 Alternate Function mapping */
540
#define GPIO_AF4_I2C3 ((uint8_t)0x04U)
/* I2C3 Alternate Function mapping */
541
545
#define GPIO_AF5_SPI1 ((uint8_t)0x05U)
/* SPI1 Alternate Function mapping */
546
#define GPIO_AF5_SPI2 ((uint8_t)0x05U)
/* SPI2/I2S2 Alternate Function mapping */
547
#define GPIO_AF5_SPI4 ((uint8_t)0x05U)
/* SPI4 Alternate Function mapping */
548
#define GPIO_AF5_I2S3ext ((uint8_t)0x05U)
/* I2S3ext_SD Alternate Function mapping */
549
553
#define GPIO_AF6_SPI3 ((uint8_t)0x06U)
/* SPI3/I2S3 Alternate Function mapping */
554
#define GPIO_AF6_I2S2ext ((uint8_t)0x06U)
/* I2S2ext_SD Alternate Function mapping */
555
559
#define GPIO_AF7_USART1 ((uint8_t)0x07U)
/* USART1 Alternate Function mapping */
560
#define GPIO_AF7_USART2 ((uint8_t)0x07U)
/* USART2 Alternate Function mapping */
561
#define GPIO_AF7_I2S3ext ((uint8_t)0x07U)
/* I2S3ext_SD Alternate Function mapping */
562
566
#define GPIO_AF8_USART6 ((uint8_t)0x08U)
/* USART6 Alternate Function mapping */
567
571
#define GPIO_AF9_TIM14 ((uint8_t)0x09U)
/* TIM14 Alternate Function mapping */
572
#define GPIO_AF9_I2C2 ((uint8_t)0x09U)
/* I2C2 Alternate Function mapping */
573
#define GPIO_AF9_I2C3 ((uint8_t)0x09U)
/* I2C3 Alternate Function mapping */
574
575
579
#define GPIO_AF10_OTG_FS ((uint8_t)0x0AU)
/* OTG_FS Alternate Function mapping */
580
584
#define GPIO_AF12_SDIO ((uint8_t)0x0CU)
/* SDIO Alternate Function mapping */
585
589
#define GPIO_AF15_EVENTOUT ((uint8_t)0x0FU)
/* EVENTOUT Alternate Function mapping */
590
#endif
/* STM32F401xC || STM32F401xE */
591
/*----------------------------------------------------------------------------*/
592
593
/*--------------- STM32F412Zx/STM32F412Vx/STM32F412Rx/STM32F412Cx-------------*/
594
#if defined(STM32F412Zx) || defined(STM32F412Vx) || defined(STM32F412Rx) || defined(STM32F412Cx)
595
598
#define GPIO_AF0_RTC_50Hz ((uint8_t)0x00U)
/* RTC_50Hz Alternate Function mapping */
599
#define GPIO_AF0_MCO ((uint8_t)0x00U)
/* MCO (MCO1 and MCO2) Alternate Function mapping */
600
#define GPIO_AF0_TAMPER ((uint8_t)0x00U)
/* TAMPER (TAMPER_1 and TAMPER_2) Alternate Function mapping */
601
#define GPIO_AF0_SWJ ((uint8_t)0x00U)
/* SWJ (SWD and JTAG) Alternate Function mapping */
602
#define GPIO_AF0_TRACE ((uint8_t)0x00U)
/* TRACE Alternate Function mapping */
603
607
#define GPIO_AF1_TIM1 ((uint8_t)0x01U)
/* TIM1 Alternate Function mapping */
608
#define GPIO_AF1_TIM2 ((uint8_t)0x01U)
/* TIM2 Alternate Function mapping */
609
613
#define GPIO_AF2_TIM3 ((uint8_t)0x02U)
/* TIM3 Alternate Function mapping */
614
#define GPIO_AF2_TIM4 ((uint8_t)0x02U)
/* TIM4 Alternate Function mapping */
615
#define GPIO_AF2_TIM5 ((uint8_t)0x02U)
/* TIM5 Alternate Function mapping */
616
620
#define GPIO_AF3_TIM8 ((uint8_t)0x03U)
/* TIM8 Alternate Function mapping */
621
#define GPIO_AF3_TIM9 ((uint8_t)0x03U)
/* TIM9 Alternate Function mapping */
622
#define GPIO_AF3_TIM10 ((uint8_t)0x03U)
/* TIM10 Alternate Function mapping */
623
#define GPIO_AF3_TIM11 ((uint8_t)0x03U)
/* TIM11 Alternate Function mapping */
624
628
#define GPIO_AF4_I2C1 ((uint8_t)0x04U)
/* I2C1 Alternate Function mapping */
629
#define GPIO_AF4_I2C2 ((uint8_t)0x04U)
/* I2C2 Alternate Function mapping */
630
#define GPIO_AF4_I2C3 ((uint8_t)0x04U)
/* I2C3 Alternate Function mapping */
631
#define GPIO_AF4_FMPI2C1 ((uint8_t)0x04U)
/* FMPI2C1 Alternate Function mapping */
632
636
#define GPIO_AF5_SPI1 ((uint8_t)0x05U)
/* SPI1/I2S1 Alternate Function mapping */
637
#define GPIO_AF5_SPI2 ((uint8_t)0x05U)
/* SPI2/I2S2 Alternate Function mapping */
638
#define GPIO_AF5_SPI3 ((uint8_t)0x05U)
/* SPI3/I2S3 Alternate Function mapping */
639
#define GPIO_AF5_SPI4 ((uint8_t)0x05U)
/* SPI4/I2S4 Alternate Function mapping */
640
#define GPIO_AF5_I2S3ext ((uint8_t)0x05U)
/* I2S3ext_SD Alternate Function mapping */
641
645
#define GPIO_AF6_SPI2 ((uint8_t)0x06U)
/* I2S2 Alternate Function mapping */
646
#define GPIO_AF6_SPI3 ((uint8_t)0x06U)
/* SPI3/I2S3 Alternate Function mapping */
647
#define GPIO_AF6_SPI4 ((uint8_t)0x06U)
/* SPI4/I2S4 Alternate Function mapping */
648
#define GPIO_AF6_SPI5 ((uint8_t)0x06U)
/* SPI5/I2S5 Alternate Function mapping */
649
#define GPIO_AF6_I2S2ext ((uint8_t)0x06U)
/* I2S2ext_SD Alternate Function mapping */
650
#define GPIO_AF6_DFSDM1 ((uint8_t)0x06U)
/* DFSDM1 Alternate Function mapping */
651
654
#define GPIO_AF7_SPI3 ((uint8_t)0x07U)
/* SPI3/I2S3 Alternate Function mapping */
655
#define GPIO_AF7_USART1 ((uint8_t)0x07U)
/* USART1 Alternate Function mapping */
656
#define GPIO_AF7_USART2 ((uint8_t)0x07U)
/* USART2 Alternate Function mapping */
657
#define GPIO_AF7_USART3 ((uint8_t)0x07U)
/* USART3 Alternate Function mapping */
658
#define GPIO_AF7_I2S3ext ((uint8_t)0x07U)
/* I2S3ext_SD Alternate Function mapping */
659
663
#define GPIO_AF8_USART6 ((uint8_t)0x08U)
/* USART6 Alternate Function mapping */
664
#define GPIO_AF8_USART3 ((uint8_t)0x08U)
/* USART3 Alternate Function mapping */
665
#define GPIO_AF8_DFSDM1 ((uint8_t)0x08U)
/* DFSDM1 Alternate Function mapping */
666
#define GPIO_AF8_CAN1 ((uint8_t)0x08U)
/* CAN1 Alternate Function mapping */
667
671
#define GPIO_AF9_TIM13 ((uint8_t)0x09U)
/* TIM13 Alternate Function mapping */
672
#define GPIO_AF9_TIM14 ((uint8_t)0x09U)
/* TIM14 Alternate Function mapping */
673
#define GPIO_AF9_I2C2 ((uint8_t)0x09U)
/* I2C2 Alternate Function mapping */
674
#define GPIO_AF9_I2C3 ((uint8_t)0x09U)
/* I2C3 Alternate Function mapping */
675
#define GPIO_AF9_FMPI2C1 ((uint8_t)0x09U)
/* FMPI2C1 Alternate Function mapping */
676
#define GPIO_AF9_CAN1 ((uint8_t)0x09U)
/* CAN1 Alternate Function mapping */
677
#define GPIO_AF9_CAN2 ((uint8_t)0x09U)
/* CAN1 Alternate Function mapping */
678
#define GPIO_AF9_QSPI ((uint8_t)0x09U)
/* QSPI Alternate Function mapping */
679
683
#define GPIO_AF10_OTG_FS ((uint8_t)0x0AU)
/* OTG_FS Alternate Function mapping */
684
#define GPIO_AF10_DFSDM1 ((uint8_t)0x0AU)
/* DFSDM1 Alternate Function mapping */
685
#define GPIO_AF10_QSPI ((uint8_t)0x0AU)
/* QSPI Alternate Function mapping */
686
#define GPIO_AF10_FMC ((uint8_t)0x0AU)
/* FMC Alternate Function mapping */
687
691
#define GPIO_AF12_SDIO ((uint8_t)0x0CU)
/* SDIO Alternate Function mapping */
692
#define GPIO_AF12_FSMC ((uint8_t)0x0CU)
/* FMC Alternate Function mapping */
693
697
#define GPIO_AF15_EVENTOUT ((uint8_t)0x0FU)
/* EVENTOUT Alternate Function mapping */
698
#endif
/* STM32F412Zx || STM32F412Vx || STM32F412Rx || STM32F412Cx */
699
/*---------------------------------------- STM32F411xx------------------------*/
700
#if defined(STM32F411xE)
701
704
#define GPIO_AF0_RTC_50Hz ((uint8_t)0x00U)
/* RTC_50Hz Alternate Function mapping */
705
#define GPIO_AF0_MCO ((uint8_t)0x00U)
/* MCO (MCO1 and MCO2) Alternate Function mapping */
706
#define GPIO_AF0_TAMPER ((uint8_t)0x00U)
/* TAMPER (TAMPER_1 and TAMPER_2) Alternate Function mapping */
707
#define GPIO_AF0_SWJ ((uint8_t)0x00U)
/* SWJ (SWD and JTAG) Alternate Function mapping */
708
#define GPIO_AF0_TRACE ((uint8_t)0x00U)
/* TRACE Alternate Function mapping */
709
713
#define GPIO_AF1_TIM1 ((uint8_t)0x01U)
/* TIM1 Alternate Function mapping */
714
#define GPIO_AF1_TIM2 ((uint8_t)0x01U)
/* TIM2 Alternate Function mapping */
715
719
#define GPIO_AF2_TIM3 ((uint8_t)0x02U)
/* TIM3 Alternate Function mapping */
720
#define GPIO_AF2_TIM4 ((uint8_t)0x02U)
/* TIM4 Alternate Function mapping */
721
#define GPIO_AF2_TIM5 ((uint8_t)0x02U)
/* TIM5 Alternate Function mapping */
722
726
#define GPIO_AF3_TIM9 ((uint8_t)0x03U)
/* TIM9 Alternate Function mapping */
727
#define GPIO_AF3_TIM10 ((uint8_t)0x03U)
/* TIM10 Alternate Function mapping */
728
#define GPIO_AF3_TIM11 ((uint8_t)0x03U)
/* TIM11 Alternate Function mapping */
729
733
#define GPIO_AF4_I2C1 ((uint8_t)0x04U)
/* I2C1 Alternate Function mapping */
734
#define GPIO_AF4_I2C2 ((uint8_t)0x04U)
/* I2C2 Alternate Function mapping */
735
#define GPIO_AF4_I2C3 ((uint8_t)0x04U)
/* I2C3 Alternate Function mapping */
736
740
#define GPIO_AF5_SPI1 ((uint8_t)0x05U)
/* SPI1/I2S1 Alternate Function mapping */
741
#define GPIO_AF5_SPI2 ((uint8_t)0x05U)
/* SPI2/I2S2 Alternate Function mapping */
742
#define GPIO_AF5_SPI3 ((uint8_t)0x05U)
/* SPI3/I2S3 Alternate Function mapping */
743
#define GPIO_AF5_SPI4 ((uint8_t)0x05U)
/* SPI4 Alternate Function mapping */
744
#define GPIO_AF5_I2S3ext ((uint8_t)0x05U)
/* I2S3ext_SD Alternate Function mapping */
745
749
#define GPIO_AF6_SPI2 ((uint8_t)0x06U)
/* I2S2 Alternate Function mapping */
750
#define GPIO_AF6_SPI3 ((uint8_t)0x06U)
/* SPI3/I2S3 Alternate Function mapping */
751
#define GPIO_AF6_SPI4 ((uint8_t)0x06U)
/* SPI4/I2S4 Alternate Function mapping */
752
#define GPIO_AF6_SPI5 ((uint8_t)0x06U)
/* SPI5/I2S5 Alternate Function mapping */
753
#define GPIO_AF6_I2S2ext ((uint8_t)0x06U)
/* I2S2ext_SD Alternate Function mapping */
754
758
#define GPIO_AF7_SPI3 ((uint8_t)0x07U)
/* SPI3/I2S3 Alternate Function mapping */
759
#define GPIO_AF7_USART1 ((uint8_t)0x07U)
/* USART1 Alternate Function mapping */
760
#define GPIO_AF7_USART2 ((uint8_t)0x07U)
/* USART2 Alternate Function mapping */
761
#define GPIO_AF7_I2S3ext ((uint8_t)0x07U)
/* I2S3ext_SD Alternate Function mapping */
762
766
#define GPIO_AF8_USART6 ((uint8_t)0x08U)
/* USART6 Alternate Function mapping */
767
771
#define GPIO_AF9_TIM14 ((uint8_t)0x09U)
/* TIM14 Alternate Function mapping */
772
#define GPIO_AF9_I2C2 ((uint8_t)0x09U)
/* I2C2 Alternate Function mapping */
773
#define GPIO_AF9_I2C3 ((uint8_t)0x09U)
/* I2C3 Alternate Function mapping */
774
778
#define GPIO_AF10_OTG_FS ((uint8_t)0x0AU)
/* OTG_FS Alternate Function mapping */
779
783
#define GPIO_AF12_SDIO ((uint8_t)0x0CU)
/* SDIO Alternate Function mapping */
784
788
#define GPIO_AF15_EVENTOUT ((uint8_t)0x0FU)
/* EVENTOUT Alternate Function mapping */
789
#endif
/* STM32F411xE */
790
791
/*---------------------------------------- STM32F410xx------------------------*/
792
#if defined(STM32F410Tx) || defined(STM32F410Cx) || defined(STM32F410Rx)
793
796
#define GPIO_AF0_RTC_50Hz ((uint8_t)0x00U)
/* RTC_50Hz Alternate Function mapping */
797
#define GPIO_AF0_MCO ((uint8_t)0x00U)
/* MCO (MCO1 and MCO2) Alternate Function mapping */
798
#define GPIO_AF0_TAMPER ((uint8_t)0x00U)
/* TAMPER (TAMPER_1 and TAMPER_2) Alternate Function mapping */
799
#define GPIO_AF0_SWJ ((uint8_t)0x00U)
/* SWJ (SWD and JTAG) Alternate Function mapping */
800
#define GPIO_AF0_TRACE ((uint8_t)0x00U)
/* TRACE Alternate Function mapping */
801
805
#define GPIO_AF1_TIM1 ((uint8_t)0x01U)
/* TIM1 Alternate Function mapping */
806
#define GPIO_AF1_LPTIM1 ((uint8_t)0x01U)
/* LPTIM1 Alternate Function mapping */
807
811
#define GPIO_AF2_TIM5 ((uint8_t)0x02U)
/* TIM5 Alternate Function mapping */
812
816
#define GPIO_AF3_TIM9 ((uint8_t)0x03U)
/* TIM9 Alternate Function mapping */
817
#define GPIO_AF3_TIM11 ((uint8_t)0x03U)
/* TIM11 Alternate Function mapping */
818
822
#define GPIO_AF4_I2C1 ((uint8_t)0x04U)
/* I2C1 Alternate Function mapping */
823
#define GPIO_AF4_I2C2 ((uint8_t)0x04U)
/* I2C2 Alternate Function mapping */
824
#define GPIO_AF4_FMPI2C1 ((uint8_t)0x04U)
/* FMPI2C1 Alternate Function mapping */
825
829
#define GPIO_AF5_SPI1 ((uint8_t)0x05U)
/* SPI1/I2S1 Alternate Function mapping */
830
#if defined(STM32F410Cx) || defined(STM32F410Rx)
831
#define GPIO_AF5_SPI2 ((uint8_t)0x05U)
/* SPI2/I2S2 Alternate Function mapping */
832
#endif
/* STM32F410Cx || STM32F410Rx */
833
837
#define GPIO_AF6_SPI1 ((uint8_t)0x06U)
/* SPI1 Alternate Function mapping */
838
#if defined(STM32F410Cx) || defined(STM32F410Rx)
839
#define GPIO_AF6_SPI2 ((uint8_t)0x06U)
/* I2S2 Alternate Function mapping */
840
#endif
/* STM32F410Cx || STM32F410Rx */
841
#define GPIO_AF6_SPI5 ((uint8_t)0x06U)
/* SPI5/I2S5 Alternate Function mapping */
842
845
#define GPIO_AF7_USART1 ((uint8_t)0x07U)
/* USART1 Alternate Function mapping */
846
#define GPIO_AF7_USART2 ((uint8_t)0x07U)
/* USART2 Alternate Function mapping */
847
851
#define GPIO_AF8_USART6 ((uint8_t)0x08U)
/* USART6 Alternate Function mapping */
852
856
#define GPIO_AF9_I2C2 ((uint8_t)0x09U)
/* I2C2 Alternate Function mapping */
857
#define GPIO_AF9_FMPI2C1 ((uint8_t)0x09U)
/* FMPI2C1 Alternate Function mapping */
858
862
#define GPIO_AF15_EVENTOUT ((uint8_t)0x0FU)
/* EVENTOUT Alternate Function mapping */
863
#endif
/* STM32F410Tx || STM32F410Cx || STM32F410Rx */
864
865
/*---------------------------------------- STM32F446xx -----------------------*/
866
#if defined(STM32F446xx)
867
870
#define GPIO_AF0_RTC_50Hz ((uint8_t)0x00U)
/* RTC_50Hz Alternate Function mapping */
871
#define GPIO_AF0_MCO ((uint8_t)0x00U)
/* MCO (MCO1 and MCO2) Alternate Function mapping */
872
#define GPIO_AF0_TAMPER ((uint8_t)0x00U)
/* TAMPER (TAMPER_1 and TAMPER_2) Alternate Function mapping */
873
#define GPIO_AF0_SWJ ((uint8_t)0x00U)
/* SWJ (SWD and JTAG) Alternate Function mapping */
874
#define GPIO_AF0_TRACE ((uint8_t)0x00U)
/* TRACE Alternate Function mapping */
875
879
#define GPIO_AF1_TIM1 ((uint8_t)0x01U)
/* TIM1 Alternate Function mapping */
880
#define GPIO_AF1_TIM2 ((uint8_t)0x01U)
/* TIM2 Alternate Function mapping */
881
885
#define GPIO_AF2_TIM3 ((uint8_t)0x02U)
/* TIM3 Alternate Function mapping */
886
#define GPIO_AF2_TIM4 ((uint8_t)0x02U)
/* TIM4 Alternate Function mapping */
887
#define GPIO_AF2_TIM5 ((uint8_t)0x02U)
/* TIM5 Alternate Function mapping */
888
892
#define GPIO_AF3_TIM8 ((uint8_t)0x03U)
/* TIM8 Alternate Function mapping */
893
#define GPIO_AF3_TIM9 ((uint8_t)0x03U)
/* TIM9 Alternate Function mapping */
894
#define GPIO_AF3_TIM10 ((uint8_t)0x03U)
/* TIM10 Alternate Function mapping */
895
#define GPIO_AF3_TIM11 ((uint8_t)0x03U)
/* TIM11 Alternate Function mapping */
896
#define GPIO_AF3_CEC ((uint8_t)0x03U)
/* CEC Alternate Function mapping */
897
901
#define GPIO_AF4_I2C1 ((uint8_t)0x04U)
/* I2C1 Alternate Function mapping */
902
#define GPIO_AF4_I2C2 ((uint8_t)0x04U)
/* I2C2 Alternate Function mapping */
903
#define GPIO_AF4_I2C3 ((uint8_t)0x04U)
/* I2C3 Alternate Function mapping */
904
#define GPIO_AF4_FMPI2C1 ((uint8_t)0x04U)
/* FMPI2C1 Alternate Function mapping */
905
#define GPIO_AF4_CEC ((uint8_t)0x04U)
/* CEC Alternate Function mapping */
906
910
#define GPIO_AF5_SPI1 ((uint8_t)0x05U)
/* SPI1/I2S1 Alternate Function mapping */
911
#define GPIO_AF5_SPI2 ((uint8_t)0x05U)
/* SPI2/I2S2 Alternate Function mapping */
912
#define GPIO_AF5_SPI3 ((uint8_t)0x05U)
/* SPI3/I2S3 Alternate Function mapping */
913
#define GPIO_AF5_SPI4 ((uint8_t)0x05U)
/* SPI4 Alternate Function mapping */
914
918
#define GPIO_AF6_SPI2 ((uint8_t)0x06U)
/* SPI2/I2S2 Alternate Function mapping */
919
#define GPIO_AF6_SPI3 ((uint8_t)0x06U)
/* SPI3/I2S3 Alternate Function mapping */
920
#define GPIO_AF6_SPI4 ((uint8_t)0x06U)
/* SPI4 Alternate Function mapping */
921
#define GPIO_AF6_SAI1 ((uint8_t)0x06U)
/* SAI1 Alternate Function mapping */
922
926
#define GPIO_AF7_USART1 ((uint8_t)0x07U)
/* USART1 Alternate Function mapping */
927
#define GPIO_AF7_USART2 ((uint8_t)0x07U)
/* USART2 Alternate Function mapping */
928
#define GPIO_AF7_USART3 ((uint8_t)0x07U)
/* USART3 Alternate Function mapping */
929
#define GPIO_AF7_UART5 ((uint8_t)0x07U)
/* UART5 Alternate Function mapping */
930
#define GPIO_AF7_SPI2 ((uint8_t)0x07U)
/* SPI2/I2S2 Alternate Function mapping */
931
#define GPIO_AF7_SPI3 ((uint8_t)0x07U)
/* SPI3/I2S3 Alternate Function mapping */
932
#define GPIO_AF7_SPDIFRX ((uint8_t)0x07U)
/* SPDIFRX Alternate Function mapping */
933
937
#define GPIO_AF8_UART4 ((uint8_t)0x08U)
/* UART4 Alternate Function mapping */
938
#define GPIO_AF8_UART5 ((uint8_t)0x08U)
/* UART5 Alternate Function mapping */
939
#define GPIO_AF8_USART6 ((uint8_t)0x08U)
/* USART6 Alternate Function mapping */
940
#define GPIO_AF8_SPDIFRX ((uint8_t)0x08U)
/* SPDIFRX Alternate Function mapping */
941
#define GPIO_AF8_SAI2 ((uint8_t)0x08U)
/* SAI2 Alternate Function mapping */
942
946
#define GPIO_AF9_CAN1 ((uint8_t)0x09U)
/* CAN1 Alternate Function mapping */
947
#define GPIO_AF9_CAN2 ((uint8_t)0x09U)
/* CAN2 Alternate Function mapping */
948
#define GPIO_AF9_TIM12 ((uint8_t)0x09U)
/* TIM12 Alternate Function mapping */
949
#define GPIO_AF9_TIM13 ((uint8_t)0x09U)
/* TIM13 Alternate Function mapping */
950
#define GPIO_AF9_TIM14 ((uint8_t)0x09U)
/* TIM14 Alternate Function mapping */
951
#define GPIO_AF9_QSPI ((uint8_t)0x09U)
/* QSPI Alternate Function mapping */
952
956
#define GPIO_AF10_OTG_FS ((uint8_t)0x0AU)
/* OTG_FS Alternate Function mapping */
957
#define GPIO_AF10_OTG_HS ((uint8_t)0x0AU)
/* OTG_HS Alternate Function mapping */
958
#define GPIO_AF10_SAI2 ((uint8_t)0x0AU)
/* SAI2 Alternate Function mapping */
959
#define GPIO_AF10_QSPI ((uint8_t)0x0AU)
/* QSPI Alternate Function mapping */
960
964
#define GPIO_AF11_ETH ((uint8_t)0x0BU)
/* ETHERNET Alternate Function mapping */
965
969
#define GPIO_AF12_FMC ((uint8_t)0x0CU)
/* FMC Alternate Function mapping */
970
#define GPIO_AF12_OTG_HS_FS ((uint8_t)0x0CU)
/* OTG HS configured in FS, Alternate Function mapping */
971
#define GPIO_AF12_SDIO ((uint8_t)0x0CU)
/* SDIO Alternate Function mapping */
972
976
#define GPIO_AF13_DCMI ((uint8_t)0x0DU)
/* DCMI Alternate Function mapping */
977
981
#define GPIO_AF15_EVENTOUT ((uint8_t)0x0FU)
/* EVENTOUT Alternate Function mapping */
982
983
#endif
/* STM32F446xx */
984
/*----------------------------------------------------------------------------*/
985
986
/*-------------------------------- STM32F469xx/STM32F479xx--------------------*/
987
#if defined(STM32F469xx) || defined(STM32F479xx)
988
991
#define GPIO_AF0_RTC_50Hz ((uint8_t)0x00U)
/* RTC_50Hz Alternate Function mapping */
992
#define GPIO_AF0_MCO ((uint8_t)0x00U)
/* MCO (MCO1 and MCO2) Alternate Function mapping */
993
#define GPIO_AF0_TAMPER ((uint8_t)0x00U)
/* TAMPER (TAMPER_1 and TAMPER_2) Alternate Function mapping */
994
#define GPIO_AF0_SWJ ((uint8_t)0x00U)
/* SWJ (SWD and JTAG) Alternate Function mapping */
995
#define GPIO_AF0_TRACE ((uint8_t)0x00U)
/* TRACE Alternate Function mapping */
996
1000
#define GPIO_AF1_TIM1 ((uint8_t)0x01U)
/* TIM1 Alternate Function mapping */
1001
#define GPIO_AF1_TIM2 ((uint8_t)0x01U)
/* TIM2 Alternate Function mapping */
1002
1006
#define GPIO_AF2_TIM3 ((uint8_t)0x02U)
/* TIM3 Alternate Function mapping */
1007
#define GPIO_AF2_TIM4 ((uint8_t)0x02U)
/* TIM4 Alternate Function mapping */
1008
#define GPIO_AF2_TIM5 ((uint8_t)0x02U)
/* TIM5 Alternate Function mapping */
1009
1013
#define GPIO_AF3_TIM8 ((uint8_t)0x03U)
/* TIM8 Alternate Function mapping */
1014
#define GPIO_AF3_TIM9 ((uint8_t)0x03U)
/* TIM9 Alternate Function mapping */
1015
#define GPIO_AF3_TIM10 ((uint8_t)0x03U)
/* TIM10 Alternate Function mapping */
1016
#define GPIO_AF3_TIM11 ((uint8_t)0x03U)
/* TIM11 Alternate Function mapping */
1017
1021
#define GPIO_AF4_I2C1 ((uint8_t)0x04U)
/* I2C1 Alternate Function mapping */
1022
#define GPIO_AF4_I2C2 ((uint8_t)0x04U)
/* I2C2 Alternate Function mapping */
1023
#define GPIO_AF4_I2C3 ((uint8_t)0x04U)
/* I2C3 Alternate Function mapping */
1024
1028
#define GPIO_AF5_SPI1 ((uint8_t)0x05U)
/* SPI1 Alternate Function mapping */
1029
#define GPIO_AF5_SPI2 ((uint8_t)0x05U)
/* SPI2/I2S2 Alternate Function mapping */
1030
#define GPIO_AF5_SPI3 ((uint8_t)0x05U)
/* SPI3/I2S3 Alternate Function mapping */
1031
#define GPIO_AF5_SPI4 ((uint8_t)0x05U)
/* SPI4 Alternate Function mapping */
1032
#define GPIO_AF5_SPI5 ((uint8_t)0x05U)
/* SPI5 Alternate Function mapping */
1033
#define GPIO_AF5_SPI6 ((uint8_t)0x05U)
/* SPI6 Alternate Function mapping */
1034
#define GPIO_AF5_I2S3ext ((uint8_t)0x05U)
/* I2S3ext_SD Alternate Function mapping */
1035
1039
#define GPIO_AF6_SPI3 ((uint8_t)0x06U)
/* SPI3/I2S3 Alternate Function mapping */
1040
#define GPIO_AF6_I2S2ext ((uint8_t)0x06U)
/* I2S2ext_SD Alternate Function mapping */
1041
#define GPIO_AF6_SAI1 ((uint8_t)0x06U)
/* SAI1 Alternate Function mapping */
1042
1046
#define GPIO_AF7_USART1 ((uint8_t)0x07U)
/* USART1 Alternate Function mapping */
1047
#define GPIO_AF7_USART2 ((uint8_t)0x07U)
/* USART2 Alternate Function mapping */
1048
#define GPIO_AF7_USART3 ((uint8_t)0x07U)
/* USART3 Alternate Function mapping */
1049
#define GPIO_AF7_I2S3ext ((uint8_t)0x07U)
/* I2S3ext_SD Alternate Function mapping */
1050
1054
#define GPIO_AF8_UART4 ((uint8_t)0x08U)
/* UART4 Alternate Function mapping */
1055
#define GPIO_AF8_UART5 ((uint8_t)0x08U)
/* UART5 Alternate Function mapping */
1056
#define GPIO_AF8_USART6 ((uint8_t)0x08U)
/* USART6 Alternate Function mapping */
1057
#define GPIO_AF8_UART7 ((uint8_t)0x08U)
/* UART7 Alternate Function mapping */
1058
#define GPIO_AF8_UART8 ((uint8_t)0x08U)
/* UART8 Alternate Function mapping */
1059
1063
#define GPIO_AF9_CAN1 ((uint8_t)0x09U)
/* CAN1 Alternate Function mapping */
1064
#define GPIO_AF9_CAN2 ((uint8_t)0x09U)
/* CAN2 Alternate Function mapping */
1065
#define GPIO_AF9_TIM12 ((uint8_t)0x09U)
/* TIM12 Alternate Function mapping */
1066
#define GPIO_AF9_TIM13 ((uint8_t)0x09U)
/* TIM13 Alternate Function mapping */
1067
#define GPIO_AF9_TIM14 ((uint8_t)0x09U)
/* TIM14 Alternate Function mapping */
1068
#define GPIO_AF9_LTDC ((uint8_t)0x09U)
/* LCD-TFT Alternate Function mapping */
1069
#define GPIO_AF9_QSPI ((uint8_t)0x09U)
/* QSPI Alternate Function mapping */
1070
1074
#define GPIO_AF10_OTG_FS ((uint8_t)0x0AU)
/* OTG_FS Alternate Function mapping */
1075
#define GPIO_AF10_OTG_HS ((uint8_t)0x0AU)
/* OTG_HS Alternate Function mapping */
1076
#define GPIO_AF10_QSPI ((uint8_t)0x0AU)
/* QSPI Alternate Function mapping */
1077
1081
#define GPIO_AF11_ETH ((uint8_t)0x0BU)
/* ETHERNET Alternate Function mapping */
1082
1086
#define GPIO_AF12_FMC ((uint8_t)0x0CU)
/* FMC Alternate Function mapping */
1087
#define GPIO_AF12_OTG_HS_FS ((uint8_t)0x0CU)
/* OTG HS configured in FS, Alternate Function mapping */
1088
#define GPIO_AF12_SDIO ((uint8_t)0x0CU)
/* SDIO Alternate Function mapping */
1089
1093
#define GPIO_AF13_DCMI ((uint8_t)0x0DU)
/* DCMI Alternate Function mapping */
1094
#define GPIO_AF13_DSI ((uint8_t)0x0DU)
/* DSI Alternate Function mapping */
1095
1099
#define GPIO_AF14_LTDC ((uint8_t)0x0EU)
/* LCD-TFT Alternate Function mapping */
1100
1104
#define GPIO_AF15_EVENTOUT ((uint8_t)0x0FU)
/* EVENTOUT Alternate Function mapping */
1105
1106
#endif
/* STM32F469xx || STM32F479xx */
1107
/*----------------------------------------------------------------------------*/
1116
/* Exported macro ------------------------------------------------------------*/
1124
/* Exported functions --------------------------------------------------------*/
1132
/* Private types -------------------------------------------------------------*/
1133
/* Private variables ---------------------------------------------------------*/
1134
/* Private constants ---------------------------------------------------------*/
1142
/* Private macros ------------------------------------------------------------*/
1149
#if defined(STM32F405xx) || defined(STM32F415xx) || defined(STM32F407xx) || defined(STM32F417xx)
1150
#define GPIO_GET_INDEX(__GPIOx__) (uint8_t)(((__GPIOx__) == (GPIOA))? 0U :\
1151
((__GPIOx__) == (GPIOB))? 1U :\
1152
((__GPIOx__) == (GPIOC))? 2U :\
1153
((__GPIOx__) == (GPIOD))? 3U :\
1154
((__GPIOx__) == (GPIOE))? 4U :\
1155
((__GPIOx__) == (GPIOF))? 5U :\
1156
((__GPIOx__) == (GPIOG))? 6U :\
1157
((__GPIOx__) == (GPIOH))? 7U :\
1158
((__GPIOx__) == (GPIOI))? 8U : 9U)
1159
#endif
/* STM32F405xx || STM32F415xx || STM32F407xx || STM32F417xx */
1160
1161
#if defined(STM32F427xx) || defined(STM32F437xx) || defined(STM32F429xx) || defined(STM32F439xx) ||\
1162
defined(STM32F469xx) || defined(STM32F479xx)
1163
#define GPIO_GET_INDEX(__GPIOx__) (uint8_t)(((__GPIOx__) == (GPIOA))? 0U :\
1164
((__GPIOx__) == (GPIOB))? 1U :\
1165
((__GPIOx__) == (GPIOC))? 2U :\
1166
((__GPIOx__) == (GPIOD))? 3U :\
1167
((__GPIOx__) == (GPIOE))? 4U :\
1168
((__GPIOx__) == (GPIOF))? 5U :\
1169
((__GPIOx__) == (GPIOG))? 6U :\
1170
((__GPIOx__) == (GPIOH))? 7U :\
1171
((__GPIOx__) == (GPIOI))? 8U :\
1172
((__GPIOx__) == (GPIOJ))? 9U : 10U)
1173
#endif
/* STM32F427xx || STM32F437xx || STM32F429xx || STM32F439xx || STM32F469xx || STM32F479xx */
1174
1175
#if defined(STM32F410Tx) || defined(STM32F410Cx) || defined(STM32F410Rx)
1176
#define GPIO_GET_INDEX(__GPIOx__) (uint8_t)(((__GPIOx__) == (GPIOA))? 0U :\
1177
((__GPIOx__) == (GPIOB))? 1U :\
1178
((__GPIOx__) == (GPIOC))? 2U :\
1179
((__GPIOx__) == (GPIOH))? 7U : 8U)
1180
#endif
/* STM32F410Tx || STM32F410Cx || STM32F410Rx */
1181
1182
#if defined(STM32F401xC) || defined(STM32F401xE) || defined(STM32F411xE)
1183
#define GPIO_GET_INDEX(__GPIOx__) (uint8_t)(((__GPIOx__) == (GPIOA))? 0U :\
1184
((__GPIOx__) == (GPIOB))? 1U :\
1185
((__GPIOx__) == (GPIOC))? 2U :\
1186
((__GPIOx__) == (GPIOD))? 3U :\
1187
((__GPIOx__) == (GPIOE))? 4U : 5U)
1188
#endif
/* STM32F401xC || STM32F401xE || STM32F411xE */
1189
1190
#if defined(STM32F446xx) || defined(STM32F412Zx) ||defined(STM32F412Vx) || defined(STM32F412Rx) || defined(STM32F412Cx)
1191
#define GPIO_GET_INDEX(__GPIOx__) (uint8_t)(((__GPIOx__) == (GPIOA))? 0U :\
1192
((__GPIOx__) == (GPIOB))? 1U :\
1193
((__GPIOx__) == (GPIOC))? 2U :\
1194
((__GPIOx__) == (GPIOD))? 3U :\
1195
((__GPIOx__) == (GPIOE))? 4U :\
1196
((__GPIOx__) == (GPIOF))? 5U :\
1197
((__GPIOx__) == (GPIOG))? 6U : 8U)
1198
#endif
/* STM32F446xx || STM32F412Zx || STM32F412Vx || STM32F412Rx || STM32F412Cx */
1199
1207
/*------------------------- STM32F429xx/STM32F439xx---------------------------*/
1208
#if defined(STM32F429xx) || defined(STM32F439xx)
1209
#define IS_GPIO_AF(AF) (((AF) == GPIO_AF0_RTC_50Hz) || ((AF) == GPIO_AF9_TIM14) || \
1210
((AF) == GPIO_AF0_MCO) || ((AF) == GPIO_AF0_TAMPER) || \
1211
((AF) == GPIO_AF0_SWJ) || ((AF) == GPIO_AF0_TRACE) || \
1212
((AF) == GPIO_AF1_TIM1) || ((AF) == GPIO_AF1_TIM2) || \
1213
((AF) == GPIO_AF2_TIM3) || ((AF) == GPIO_AF2_TIM4) || \
1214
((AF) == GPIO_AF2_TIM5) || ((AF) == GPIO_AF3_TIM8) || \
1215
((AF) == GPIO_AF4_I2C1) || ((AF) == GPIO_AF4_I2C2) || \
1216
((AF) == GPIO_AF4_I2C3) || ((AF) == GPIO_AF5_SPI1) || \
1217
((AF) == GPIO_AF5_SPI2) || ((AF) == GPIO_AF9_TIM13) || \
1218
((AF) == GPIO_AF6_SPI3) || ((AF) == GPIO_AF9_TIM12) || \
1219
((AF) == GPIO_AF7_USART1) || ((AF) == GPIO_AF7_USART2) || \
1220
((AF) == GPIO_AF7_USART3) || ((AF) == GPIO_AF8_UART4) || \
1221
((AF) == GPIO_AF8_UART5) || ((AF) == GPIO_AF8_USART6) || \
1222
((AF) == GPIO_AF9_CAN1) || ((AF) == GPIO_AF9_CAN2) || \
1223
((AF) == GPIO_AF10_OTG_FS) || ((AF) == GPIO_AF10_OTG_HS) || \
1224
((AF) == GPIO_AF11_ETH) || ((AF) == GPIO_AF12_OTG_HS_FS) || \
1225
((AF) == GPIO_AF12_SDIO) || ((AF) == GPIO_AF13_DCMI) || \
1226
((AF) == GPIO_AF15_EVENTOUT) || ((AF) == GPIO_AF5_SPI4) || \
1227
((AF) == GPIO_AF5_SPI5) || ((AF) == GPIO_AF5_SPI6) || \
1228
((AF) == GPIO_AF8_UART7) || ((AF) == GPIO_AF8_UART8) || \
1229
((AF) == GPIO_AF12_FMC) || ((AF) == GPIO_AF6_SAI1) || \
1230
((AF) == GPIO_AF14_LTDC))
1231
1232
#endif
/* STM32F429xx || STM32F439xx */
1233
/*----------------------------------------------------------------------------*/
1234
1235
/*---------------------------------- STM32F427xx/STM32F437xx------------------*/
1236
#if defined(STM32F427xx) || defined(STM32F437xx)
1237
#define IS_GPIO_AF(AF) (((AF) == GPIO_AF0_RTC_50Hz) || ((AF) == GPIO_AF9_TIM14) || \
1238
((AF) == GPIO_AF0_MCO) || ((AF) == GPIO_AF0_TAMPER) || \
1239
((AF) == GPIO_AF0_SWJ) || ((AF) == GPIO_AF0_TRACE) || \
1240
((AF) == GPIO_AF1_TIM1) || ((AF) == GPIO_AF1_TIM2) || \
1241
((AF) == GPIO_AF2_TIM3) || ((AF) == GPIO_AF2_TIM4) || \
1242
((AF) == GPIO_AF2_TIM5) || ((AF) == GPIO_AF3_TIM8) || \
1243
((AF) == GPIO_AF4_I2C1) || ((AF) == GPIO_AF4_I2C2) || \
1244
((AF) == GPIO_AF4_I2C3) || ((AF) == GPIO_AF5_SPI1) || \
1245
((AF) == GPIO_AF5_SPI2) || ((AF) == GPIO_AF9_TIM13) || \
1246
((AF) == GPIO_AF6_SPI3) || ((AF) == GPIO_AF9_TIM12) || \
1247
((AF) == GPIO_AF7_USART1) || ((AF) == GPIO_AF7_USART2) || \
1248
((AF) == GPIO_AF7_USART3) || ((AF) == GPIO_AF8_UART4) || \
1249
((AF) == GPIO_AF8_UART5) || ((AF) == GPIO_AF8_USART6) || \
1250
((AF) == GPIO_AF9_CAN1) || ((AF) == GPIO_AF9_CAN2) || \
1251
((AF) == GPIO_AF10_OTG_FS) || ((AF) == GPIO_AF10_OTG_HS) || \
1252
((AF) == GPIO_AF11_ETH) || ((AF) == GPIO_AF12_OTG_HS_FS) || \
1253
((AF) == GPIO_AF12_SDIO) || ((AF) == GPIO_AF13_DCMI) || \
1254
((AF) == GPIO_AF15_EVENTOUT) || ((AF) == GPIO_AF5_SPI4) || \
1255
((AF) == GPIO_AF5_SPI5) || ((AF) == GPIO_AF5_SPI6) || \
1256
((AF) == GPIO_AF8_UART7) || ((AF) == GPIO_AF8_UART8) || \
1257
((AF) == GPIO_AF12_FMC) || ((AF) == GPIO_AF6_SAI1))
1258
1259
#endif
/* STM32F427xx || STM32F437xx */
1260
/*----------------------------------------------------------------------------*/
1261
1262
/*---------------------------------- STM32F407xx/STM32F417xx------------------*/
1263
#if defined(STM32F407xx) || defined(STM32F417xx)
1264
#define IS_GPIO_AF(AF) (((AF) == GPIO_AF0_RTC_50Hz) || ((AF) == GPIO_AF9_TIM14) || \
1265
((AF) == GPIO_AF0_MCO) || ((AF) == GPIO_AF0_TAMPER) || \
1266
((AF) == GPIO_AF0_SWJ) || ((AF) == GPIO_AF0_TRACE) || \
1267
((AF) == GPIO_AF1_TIM1) || ((AF) == GPIO_AF1_TIM2) || \
1268
((AF) == GPIO_AF2_TIM3) || ((AF) == GPIO_AF2_TIM4) || \
1269
((AF) == GPIO_AF2_TIM5) || ((AF) == GPIO_AF3_TIM8) || \
1270
((AF) == GPIO_AF4_I2C1) || ((AF) == GPIO_AF4_I2C2) || \
1271
((AF) == GPIO_AF4_I2C3) || ((AF) == GPIO_AF5_SPI1) || \
1272
((AF) == GPIO_AF5_SPI2) || ((AF) == GPIO_AF9_TIM13) || \
1273
((AF) == GPIO_AF6_SPI3) || ((AF) == GPIO_AF9_TIM12) || \
1274
((AF) == GPIO_AF7_USART1) || ((AF) == GPIO_AF7_USART2) || \
1275
((AF) == GPIO_AF7_USART3) || ((AF) == GPIO_AF8_UART4) || \
1276
((AF) == GPIO_AF8_UART5) || ((AF) == GPIO_AF8_USART6) || \
1277
((AF) == GPIO_AF9_CAN1) || ((AF) == GPIO_AF9_CAN2) || \
1278
((AF) == GPIO_AF10_OTG_FS) || ((AF) == GPIO_AF10_OTG_HS) || \
1279
((AF) == GPIO_AF11_ETH) || ((AF) == GPIO_AF12_OTG_HS_FS) || \
1280
((AF) == GPIO_AF12_SDIO) || ((AF) == GPIO_AF13_DCMI) || \
1281
((AF) == GPIO_AF12_FSMC) || ((AF) == GPIO_AF15_EVENTOUT))
1282
1283
#endif
/* STM32F407xx || STM32F417xx */
1284
/*----------------------------------------------------------------------------*/
1285
1286
/*---------------------------------- STM32F405xx/STM32F415xx------------------*/
1287
#if defined(STM32F405xx) || defined(STM32F415xx)
1288
#define IS_GPIO_AF(AF) (((AF) == GPIO_AF0_RTC_50Hz) || ((AF) == GPIO_AF9_TIM14) || \
1289
((AF) == GPIO_AF0_MCO) || ((AF) == GPIO_AF0_TAMPER) || \
1290
((AF) == GPIO_AF0_SWJ) || ((AF) == GPIO_AF0_TRACE) || \
1291
((AF) == GPIO_AF1_TIM1) || ((AF) == GPIO_AF1_TIM2) || \
1292
((AF) == GPIO_AF2_TIM3) || ((AF) == GPIO_AF2_TIM4) || \
1293
((AF) == GPIO_AF2_TIM5) || ((AF) == GPIO_AF3_TIM8) || \
1294
((AF) == GPIO_AF4_I2C1) || ((AF) == GPIO_AF4_I2C2) || \
1295
((AF) == GPIO_AF4_I2C3) || ((AF) == GPIO_AF5_SPI1) || \
1296
((AF) == GPIO_AF5_SPI2) || ((AF) == GPIO_AF9_TIM13) || \
1297
((AF) == GPIO_AF6_SPI3) || ((AF) == GPIO_AF9_TIM12) || \
1298
((AF) == GPIO_AF7_USART1) || ((AF) == GPIO_AF7_USART2) || \
1299
((AF) == GPIO_AF7_USART3) || ((AF) == GPIO_AF8_UART4) || \
1300
((AF) == GPIO_AF8_UART5) || ((AF) == GPIO_AF8_USART6) || \
1301
((AF) == GPIO_AF9_CAN1) || ((AF) == GPIO_AF9_CAN2) || \
1302
((AF) == GPIO_AF10_OTG_FS) || ((AF) == GPIO_AF10_OTG_HS) || \
1303
((AF) == GPIO_AF12_OTG_HS_FS) || ((AF) == GPIO_AF12_SDIO) || \
1304
((AF) == GPIO_AF12_FSMC) || ((AF) == GPIO_AF15_EVENTOUT))
1305
1306
#endif
/* STM32F405xx || STM32F415xx */
1307
1308
/*----------------------------------------------------------------------------*/
1309
1310
/*---------------------------------------- STM32F401xx------------------------*/
1311
#if defined(STM32F401xC) || defined(STM32F401xE)
1312
#define IS_GPIO_AF(AF) (((AF) == GPIO_AF0_RTC_50Hz) || ((AF) == GPIO_AF9_TIM14) || \
1313
((AF) == GPIO_AF0_MCO) || ((AF) == GPIO_AF0_TAMPER) || \
1314
((AF) == GPIO_AF0_SWJ) || ((AF) == GPIO_AF0_TRACE) || \
1315
((AF) == GPIO_AF1_TIM1) || ((AF) == GPIO_AF1_TIM2) || \
1316
((AF) == GPIO_AF2_TIM3) || ((AF) == GPIO_AF2_TIM4) || \
1317
((AF) == GPIO_AF2_TIM5) || ((AF) == GPIO_AF4_I2C1) || \
1318
((AF) == GPIO_AF4_I2C2) || ((AF) == GPIO_AF4_I2C3) || \
1319
((AF) == GPIO_AF5_SPI1) || ((AF) == GPIO_AF5_SPI2) || \
1320
((AF) == GPIO_AF6_SPI3) || ((AF) == GPIO_AF5_SPI4) || \
1321
((AF) == GPIO_AF7_USART1) || ((AF) == GPIO_AF7_USART2) || \
1322
((AF) == GPIO_AF8_USART6) || ((AF) == GPIO_AF10_OTG_FS) || \
1323
((AF) == GPIO_AF9_I2C2) || ((AF) == GPIO_AF9_I2C3) || \
1324
((AF) == GPIO_AF12_SDIO) || ((AF) == GPIO_AF15_EVENTOUT))
1325
1326
#endif
/* STM32F401xC || STM32F401xE */
1327
/*----------------------------------------------------------------------------*/
1328
/*---------------------------------------- STM32F410xx------------------------*/
1329
#if defined(STM32F410Tx) || defined(STM32F410Cx) || defined(STM32F410Rx)
1330
#define IS_GPIO_AF(AF) (((AF) < 10U) || ((AF) == 15U))
1331
#endif
/* STM32F410Tx || STM32F410Cx || STM32F410Rx */
1332
1333
/*---------------------------------------- STM32F411xx------------------------*/
1334
#if defined(STM32F411xE)
1335
#define IS_GPIO_AF(AF) (((AF) == GPIO_AF0_RTC_50Hz) || ((AF) == GPIO_AF9_TIM14) || \
1336
((AF) == GPIO_AF0_MCO) || ((AF) == GPIO_AF0_TAMPER) || \
1337
((AF) == GPIO_AF0_SWJ) || ((AF) == GPIO_AF0_TRACE) || \
1338
((AF) == GPIO_AF1_TIM1) || ((AF) == GPIO_AF1_TIM2) || \
1339
((AF) == GPIO_AF2_TIM3) || ((AF) == GPIO_AF2_TIM4) || \
1340
((AF) == GPIO_AF2_TIM5) || ((AF) == GPIO_AF4_I2C1) || \
1341
((AF) == GPIO_AF4_I2C2) || ((AF) == GPIO_AF4_I2C3) || \
1342
((AF) == GPIO_AF5_SPI1) || ((AF) == GPIO_AF5_SPI2) || \
1343
((AF) == GPIO_AF5_SPI3) || ((AF) == GPIO_AF6_SPI4) || \
1344
((AF) == GPIO_AF6_SPI3) || ((AF) == GPIO_AF5_SPI4) || \
1345
((AF) == GPIO_AF6_SPI5) || ((AF) == GPIO_AF7_SPI3) || \
1346
((AF) == GPIO_AF7_USART1) || ((AF) == GPIO_AF7_USART2) || \
1347
((AF) == GPIO_AF8_USART6) || ((AF) == GPIO_AF10_OTG_FS) || \
1348
((AF) == GPIO_AF9_I2C2) || ((AF) == GPIO_AF9_I2C3) || \
1349
((AF) == GPIO_AF12_SDIO) || ((AF) == GPIO_AF15_EVENTOUT))
1350
1351
#endif
/* STM32F411xE */
1352
/*----------------------------------------------------------------------------*/
1353
1354
/*----------------------------------------------- STM32F446xx ----------------*/
1355
#if defined(STM32F446xx)
1356
#define IS_GPIO_AF(AF) (((AF) == GPIO_AF0_RTC_50Hz) || ((AF) == GPIO_AF9_TIM14) || \
1357
((AF) == GPIO_AF0_MCO) || ((AF) == GPIO_AF0_TAMPER) || \
1358
((AF) == GPIO_AF0_SWJ) || ((AF) == GPIO_AF0_TRACE) || \
1359
((AF) == GPIO_AF1_TIM1) || ((AF) == GPIO_AF1_TIM2) || \
1360
((AF) == GPIO_AF2_TIM3) || ((AF) == GPIO_AF2_TIM4) || \
1361
((AF) == GPIO_AF2_TIM5) || ((AF) == GPIO_AF3_TIM8) || \
1362
((AF) == GPIO_AF4_I2C1) || ((AF) == GPIO_AF4_I2C2) || \
1363
((AF) == GPIO_AF4_I2C3) || ((AF) == GPIO_AF5_SPI1) || \
1364
((AF) == GPIO_AF5_SPI2) || ((AF) == GPIO_AF9_TIM13) || \
1365
((AF) == GPIO_AF6_SPI3) || ((AF) == GPIO_AF9_TIM12) || \
1366
((AF) == GPIO_AF7_USART1) || ((AF) == GPIO_AF7_USART2) || \
1367
((AF) == GPIO_AF7_USART3) || ((AF) == GPIO_AF8_UART4) || \
1368
((AF) == GPIO_AF8_UART5) || ((AF) == GPIO_AF8_USART6) || \
1369
((AF) == GPIO_AF9_CAN1) || ((AF) == GPIO_AF9_CAN2) || \
1370
((AF) == GPIO_AF10_OTG_FS) || ((AF) == GPIO_AF10_OTG_HS) || \
1371
((AF) == GPIO_AF11_ETH) || ((AF) == GPIO_AF12_OTG_HS_FS) || \
1372
((AF) == GPIO_AF12_SDIO) || ((AF) == GPIO_AF13_DCMI) || \
1373
((AF) == GPIO_AF15_EVENTOUT) || ((AF) == GPIO_AF5_SPI4) || \
1374
((AF) == GPIO_AF12_FMC) || ((AF) == GPIO_AF6_SAI1) || \
1375
((AF) == GPIO_AF3_CEC) || ((AF) == GPIO_AF4_CEC) || \
1376
((AF) == GPIO_AF5_SPI3) || ((AF) == GPIO_AF6_SPI2) || \
1377
((AF) == GPIO_AF6_SPI4) || ((AF) == GPIO_AF7_UART5) || \
1378
((AF) == GPIO_AF7_SPI2) || ((AF) == GPIO_AF7_SPI3) || \
1379
((AF) == GPIO_AF7_SPDIFRX) || ((AF) == GPIO_AF8_SPDIFRX) || \
1380
((AF) == GPIO_AF8_SAI2) || ((AF) == GPIO_AF9_QSPI) || \
1381
((AF) == GPIO_AF10_SAI2) || ((AF) == GPIO_AF10_QSPI))
1382
1383
#endif
/* STM32F446xx */
1384
/*----------------------------------------------------------------------------*/
1385
1386
/*------------------------------------------- STM32F469xx/STM32F479xx --------*/
1387
#if defined(STM32F469xx) || defined(STM32F479xx)
1388
#define IS_GPIO_AF(AF) (((AF) == GPIO_AF0_RTC_50Hz) || ((AF) == GPIO_AF9_TIM14) || \
1389
((AF) == GPIO_AF0_MCO) || ((AF) == GPIO_AF0_TAMPER) || \
1390
((AF) == GPIO_AF0_SWJ) || ((AF) == GPIO_AF0_TRACE) || \
1391
((AF) == GPIO_AF1_TIM1) || ((AF) == GPIO_AF1_TIM2) || \
1392
((AF) == GPIO_AF2_TIM3) || ((AF) == GPIO_AF2_TIM4) || \
1393
((AF) == GPIO_AF2_TIM5) || ((AF) == GPIO_AF3_TIM8) || \
1394
((AF) == GPIO_AF4_I2C1) || ((AF) == GPIO_AF4_I2C2) || \
1395
((AF) == GPIO_AF4_I2C3) || ((AF) == GPIO_AF5_SPI1) || \
1396
((AF) == GPIO_AF5_SPI2) || ((AF) == GPIO_AF9_TIM13) || \
1397
((AF) == GPIO_AF6_SPI3) || ((AF) == GPIO_AF9_TIM12) || \
1398
((AF) == GPIO_AF7_USART1) || ((AF) == GPIO_AF7_USART2) || \
1399
((AF) == GPIO_AF7_USART3) || ((AF) == GPIO_AF8_UART4) || \
1400
((AF) == GPIO_AF8_UART5) || ((AF) == GPIO_AF8_USART6) || \
1401
((AF) == GPIO_AF9_CAN1) || ((AF) == GPIO_AF9_CAN2) || \
1402
((AF) == GPIO_AF10_OTG_FS) || ((AF) == GPIO_AF10_OTG_HS) || \
1403
((AF) == GPIO_AF11_ETH) || ((AF) == GPIO_AF12_OTG_HS_FS) || \
1404
((AF) == GPIO_AF12_SDIO) || ((AF) == GPIO_AF13_DCMI) || \
1405
((AF) == GPIO_AF15_EVENTOUT) || ((AF) == GPIO_AF5_SPI4) || \
1406
((AF) == GPIO_AF5_SPI5) || ((AF) == GPIO_AF5_SPI6) || \
1407
((AF) == GPIO_AF8_UART7) || ((AF) == GPIO_AF8_UART8) || \
1408
((AF) == GPIO_AF12_FMC) || ((AF) == GPIO_AF6_SAI1) || \
1409
((AF) == GPIO_AF14_LTDC) || ((AF) == GPIO_AF13_DSI) || \
1410
((AF) == GPIO_AF9_QSPI) || ((AF) == GPIO_AF10_QSPI))
1411
1412
#endif
/* STM32F469xx || STM32F479xx */
1413
/*----------------------------------------------------------------------------*/
1414
1415
/*------------------STM32F412Zx/STM32F412Vx/STM32F412Rx/STM32F412Cx-----------*/
1416
#if defined(STM32F412Zx) || defined(STM32F412Vx) || defined(STM32F412Rx) || defined(STM32F412Cx)
1417
#define IS_GPIO_AF(AF) (((AF) < 16U) && ((AF) != 11U) && ((AF) != 14U) && ((AF) != 13U))
1418
#endif
/* STM32F412Zx || STM32F412Vx || STM32F412Rx || STM32F412Cx */
1419
/*----------------------------------------------------------------------------*/
1420
1429
/* Private functions ---------------------------------------------------------*/
1446
#ifdef __cplusplus
1447
}
1448
#endif
1449
1450
#endif
/* __STM32F4xx_HAL_GPIO_EX_H */
1451
1452
/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
stm32f4xx_hal_def.h
This file contains HAL common defines, enumeration, macros and structures definitions.
STM32F4xx_HAL_Driver
Inc
stm32f4xx_hal_gpio_ex.h
Generated by
1.8.13