mikroSDK Reference Manual
stm32f4xx_hal_gpio_ex.h
Go to the documentation of this file.
1
19
/* Define to prevent recursive inclusion -------------------------------------*/
20
#ifndef __STM32F4xx_HAL_GPIO_EX_H
21
#define __STM32F4xx_HAL_GPIO_EX_H
22
23
#ifdef __cplusplus
24
extern
"C"
{
25
#endif
26
27
/* Includes ------------------------------------------------------------------*/
28
#include "
stm32f4xx_hal_def.h
"
29
38
/* Exported types ------------------------------------------------------------*/
39
/* Exported constants --------------------------------------------------------*/
48
/*------------------------------------------ STM32F429xx/STM32F439xx ---------*/
49
#if defined(STM32F429xx) || defined(STM32F439xx)
53
#define GPIO_AF0_RTC_50Hz ((uint8_t)0x00)
/* RTC_50Hz Alternate Function mapping */
54
#define GPIO_AF0_MCO ((uint8_t)0x00)
/* MCO (MCO1 and MCO2) Alternate Function mapping */
55
#define GPIO_AF0_TAMPER ((uint8_t)0x00)
/* TAMPER (TAMPER_1 and TAMPER_2) Alternate Function mapping */
56
#define GPIO_AF0_SWJ ((uint8_t)0x00)
/* SWJ (SWD and JTAG) Alternate Function mapping */
57
#define GPIO_AF0_TRACE ((uint8_t)0x00)
/* TRACE Alternate Function mapping */
58
62
#define GPIO_AF1_TIM1 ((uint8_t)0x01)
/* TIM1 Alternate Function mapping */
63
#define GPIO_AF1_TIM2 ((uint8_t)0x01)
/* TIM2 Alternate Function mapping */
64
68
#define GPIO_AF2_TIM3 ((uint8_t)0x02)
/* TIM3 Alternate Function mapping */
69
#define GPIO_AF2_TIM4 ((uint8_t)0x02)
/* TIM4 Alternate Function mapping */
70
#define GPIO_AF2_TIM5 ((uint8_t)0x02)
/* TIM5 Alternate Function mapping */
71
75
#define GPIO_AF3_TIM8 ((uint8_t)0x03)
/* TIM8 Alternate Function mapping */
76
#define GPIO_AF3_TIM9 ((uint8_t)0x03)
/* TIM9 Alternate Function mapping */
77
#define GPIO_AF3_TIM10 ((uint8_t)0x03)
/* TIM10 Alternate Function mapping */
78
#define GPIO_AF3_TIM11 ((uint8_t)0x03)
/* TIM11 Alternate Function mapping */
79
83
#define GPIO_AF4_I2C1 ((uint8_t)0x04)
/* I2C1 Alternate Function mapping */
84
#define GPIO_AF4_I2C2 ((uint8_t)0x04)
/* I2C2 Alternate Function mapping */
85
#define GPIO_AF4_I2C3 ((uint8_t)0x04)
/* I2C3 Alternate Function mapping */
86
90
#define GPIO_AF5_SPI1 ((uint8_t)0x05)
/* SPI1 Alternate Function mapping */
91
#define GPIO_AF5_SPI2 ((uint8_t)0x05)
/* SPI2/I2S2 Alternate Function mapping */
92
#define GPIO_AF5_SPI3 ((uint8_t)0x05)
/* SPI3/I2S3 Alternate Function mapping */
93
#define GPIO_AF5_SPI4 ((uint8_t)0x05)
/* SPI4 Alternate Function mapping */
94
#define GPIO_AF5_SPI5 ((uint8_t)0x05)
/* SPI5 Alternate Function mapping */
95
#define GPIO_AF5_SPI6 ((uint8_t)0x05)
/* SPI6 Alternate Function mapping */
96
#define GPIO_AF5_I2S3ext ((uint8_t)0x05)
/* I2S3ext_SD Alternate Function mapping */
97
101
#define GPIO_AF6_SPI3 ((uint8_t)0x06)
/* SPI3/I2S3 Alternate Function mapping */
102
#define GPIO_AF6_I2S2ext ((uint8_t)0x06)
/* I2S2ext_SD Alternate Function mapping */
103
#define GPIO_AF6_SAI1 ((uint8_t)0x06)
/* SAI1 Alternate Function mapping */
104
108
#define GPIO_AF7_USART1 ((uint8_t)0x07)
/* USART1 Alternate Function mapping */
109
#define GPIO_AF7_USART2 ((uint8_t)0x07)
/* USART2 Alternate Function mapping */
110
#define GPIO_AF7_USART3 ((uint8_t)0x07)
/* USART3 Alternate Function mapping */
111
#define GPIO_AF7_I2S3ext ((uint8_t)0x07)
/* I2S3ext_SD Alternate Function mapping */
112
116
#define GPIO_AF8_UART4 ((uint8_t)0x08)
/* UART4 Alternate Function mapping */
117
#define GPIO_AF8_UART5 ((uint8_t)0x08)
/* UART5 Alternate Function mapping */
118
#define GPIO_AF8_USART6 ((uint8_t)0x08)
/* USART6 Alternate Function mapping */
119
#define GPIO_AF8_UART7 ((uint8_t)0x08)
/* UART7 Alternate Function mapping */
120
#define GPIO_AF8_UART8 ((uint8_t)0x08)
/* UART8 Alternate Function mapping */
121
125
#define GPIO_AF9_CAN1 ((uint8_t)0x09)
/* CAN1 Alternate Function mapping */
126
#define GPIO_AF9_CAN2 ((uint8_t)0x09)
/* CAN2 Alternate Function mapping */
127
#define GPIO_AF9_TIM12 ((uint8_t)0x09)
/* TIM12 Alternate Function mapping */
128
#define GPIO_AF9_TIM13 ((uint8_t)0x09)
/* TIM13 Alternate Function mapping */
129
#define GPIO_AF9_TIM14 ((uint8_t)0x09)
/* TIM14 Alternate Function mapping */
130
#define GPIO_AF9_LTDC ((uint8_t)0x09)
/* LCD-TFT Alternate Function mapping */
131
135
#define GPIO_AF10_OTG_FS ((uint8_t)0x0A)
/* OTG_FS Alternate Function mapping */
136
#define GPIO_AF10_OTG_HS ((uint8_t)0x0A)
/* OTG_HS Alternate Function mapping */
137
141
#define GPIO_AF11_ETH ((uint8_t)0x0B)
/* ETHERNET Alternate Function mapping */
142
146
#define GPIO_AF12_FMC ((uint8_t)0x0C)
/* FMC Alternate Function mapping */
147
#define GPIO_AF12_OTG_HS_FS ((uint8_t)0x0C)
/* OTG HS configured in FS, Alternate Function mapping */
148
#define GPIO_AF12_SDIO ((uint8_t)0x0C)
/* SDIO Alternate Function mapping */
149
153
#define GPIO_AF13_DCMI ((uint8_t)0x0D)
/* DCMI Alternate Function mapping */
154
158
#define GPIO_AF14_LTDC ((uint8_t)0x0E)
/* LCD-TFT Alternate Function mapping */
159
163
#define GPIO_AF15_EVENTOUT ((uint8_t)0x0F)
/* EVENTOUT Alternate Function mapping */
164
#endif
/* STM32F429xx || STM32F439xx */
165
/*----------------------------------------------------------------------------*/
166
167
/*---------------------------------- STM32F427xx/STM32F437xx------------------*/
168
#if defined(STM32F427xx) || defined(STM32F437xx)
172
#define GPIO_AF0_RTC_50Hz ((uint8_t)0x00)
/* RTC_50Hz Alternate Function mapping */
173
#define GPIO_AF0_MCO ((uint8_t)0x00)
/* MCO (MCO1 and MCO2) Alternate Function mapping */
174
#define GPIO_AF0_TAMPER ((uint8_t)0x00)
/* TAMPER (TAMPER_1 and TAMPER_2) Alternate Function mapping */
175
#define GPIO_AF0_SWJ ((uint8_t)0x00)
/* SWJ (SWD and JTAG) Alternate Function mapping */
176
#define GPIO_AF0_TRACE ((uint8_t)0x00)
/* TRACE Alternate Function mapping */
177
181
#define GPIO_AF1_TIM1 ((uint8_t)0x01)
/* TIM1 Alternate Function mapping */
182
#define GPIO_AF1_TIM2 ((uint8_t)0x01)
/* TIM2 Alternate Function mapping */
183
187
#define GPIO_AF2_TIM3 ((uint8_t)0x02)
/* TIM3 Alternate Function mapping */
188
#define GPIO_AF2_TIM4 ((uint8_t)0x02)
/* TIM4 Alternate Function mapping */
189
#define GPIO_AF2_TIM5 ((uint8_t)0x02)
/* TIM5 Alternate Function mapping */
190
194
#define GPIO_AF3_TIM8 ((uint8_t)0x03)
/* TIM8 Alternate Function mapping */
195
#define GPIO_AF3_TIM9 ((uint8_t)0x03)
/* TIM9 Alternate Function mapping */
196
#define GPIO_AF3_TIM10 ((uint8_t)0x03)
/* TIM10 Alternate Function mapping */
197
#define GPIO_AF3_TIM11 ((uint8_t)0x03)
/* TIM11 Alternate Function mapping */
198
202
#define GPIO_AF4_I2C1 ((uint8_t)0x04)
/* I2C1 Alternate Function mapping */
203
#define GPIO_AF4_I2C2 ((uint8_t)0x04)
/* I2C2 Alternate Function mapping */
204
#define GPIO_AF4_I2C3 ((uint8_t)0x04)
/* I2C3 Alternate Function mapping */
205
209
#define GPIO_AF5_SPI1 ((uint8_t)0x05)
/* SPI1 Alternate Function mapping */
210
#define GPIO_AF5_SPI2 ((uint8_t)0x05)
/* SPI2/I2S2 Alternate Function mapping */
211
#define GPIO_AF5_SPI3 ((uint8_t)0x05)
/* SPI3/I2S3 Alternate Function mapping */
212
#define GPIO_AF5_SPI4 ((uint8_t)0x05)
/* SPI4 Alternate Function mapping */
213
#define GPIO_AF5_SPI5 ((uint8_t)0x05)
/* SPI5 Alternate Function mapping */
214
#define GPIO_AF5_SPI6 ((uint8_t)0x05)
/* SPI6 Alternate Function mapping */
217
#define GPIO_AF5_I2S3ext GPIO_AF5_SPI3
/* I2S3ext_SD Alternate Function mapping */
218
222
#define GPIO_AF6_SPI3 ((uint8_t)0x06)
/* SPI3/I2S3 Alternate Function mapping */
223
#define GPIO_AF6_I2S2ext ((uint8_t)0x06)
/* I2S2ext_SD Alternate Function mapping */
224
#define GPIO_AF6_SAI1 ((uint8_t)0x06)
/* SAI1 Alternate Function mapping */
225
229
#define GPIO_AF7_USART1 ((uint8_t)0x07)
/* USART1 Alternate Function mapping */
230
#define GPIO_AF7_USART2 ((uint8_t)0x07)
/* USART2 Alternate Function mapping */
231
#define GPIO_AF7_USART3 ((uint8_t)0x07)
/* USART3 Alternate Function mapping */
232
#define GPIO_AF7_I2S3ext ((uint8_t)0x07)
/* I2S3ext_SD Alternate Function mapping */
233
237
#define GPIO_AF8_UART4 ((uint8_t)0x08)
/* UART4 Alternate Function mapping */
238
#define GPIO_AF8_UART5 ((uint8_t)0x08)
/* UART5 Alternate Function mapping */
239
#define GPIO_AF8_USART6 ((uint8_t)0x08)
/* USART6 Alternate Function mapping */
240
#define GPIO_AF8_UART7 ((uint8_t)0x08)
/* UART7 Alternate Function mapping */
241
#define GPIO_AF8_UART8 ((uint8_t)0x08)
/* UART8 Alternate Function mapping */
242
246
#define GPIO_AF9_CAN1 ((uint8_t)0x09)
/* CAN1 Alternate Function mapping */
247
#define GPIO_AF9_CAN2 ((uint8_t)0x09)
/* CAN2 Alternate Function mapping */
248
#define GPIO_AF9_TIM12 ((uint8_t)0x09)
/* TIM12 Alternate Function mapping */
249
#define GPIO_AF9_TIM13 ((uint8_t)0x09)
/* TIM13 Alternate Function mapping */
250
#define GPIO_AF9_TIM14 ((uint8_t)0x09)
/* TIM14 Alternate Function mapping */
251
255
#define GPIO_AF10_OTG_FS ((uint8_t)0x0A)
/* OTG_FS Alternate Function mapping */
256
#define GPIO_AF10_OTG_HS ((uint8_t)0x0A)
/* OTG_HS Alternate Function mapping */
257
261
#define GPIO_AF11_ETH ((uint8_t)0x0B)
/* ETHERNET Alternate Function mapping */
262
266
#define GPIO_AF12_FMC ((uint8_t)0x0C)
/* FMC Alternate Function mapping */
267
#define GPIO_AF12_OTG_HS_FS ((uint8_t)0x0C)
/* OTG HS configured in FS, Alternate Function mapping */
268
#define GPIO_AF12_SDIO ((uint8_t)0x0C)
/* SDIO Alternate Function mapping */
269
273
#define GPIO_AF13_DCMI ((uint8_t)0x0D)
/* DCMI Alternate Function mapping */
274
278
#define GPIO_AF15_EVENTOUT ((uint8_t)0x0F)
/* EVENTOUT Alternate Function mapping */
279
#endif
/* STM32F427xx || STM32F437xx */
280
/*----------------------------------------------------------------------------*/
281
282
/*---------------------------------- STM32F407xx/STM32F417xx------------------*/
283
#if defined(STM32F407xx) || defined(STM32F417xx)
287
#define GPIO_AF0_RTC_50Hz ((uint8_t)0x00)
/* RTC_50Hz Alternate Function mapping */
288
#define GPIO_AF0_MCO ((uint8_t)0x00)
/* MCO (MCO1 and MCO2) Alternate Function mapping */
289
#define GPIO_AF0_TAMPER ((uint8_t)0x00)
/* TAMPER (TAMPER_1 and TAMPER_2) Alternate Function mapping */
290
#define GPIO_AF0_SWJ ((uint8_t)0x00)
/* SWJ (SWD and JTAG) Alternate Function mapping */
291
#define GPIO_AF0_TRACE ((uint8_t)0x00)
/* TRACE Alternate Function mapping */
292
296
#define GPIO_AF1_TIM1 ((uint8_t)0x01)
/* TIM1 Alternate Function mapping */
297
#define GPIO_AF1_TIM2 ((uint8_t)0x01)
/* TIM2 Alternate Function mapping */
298
302
#define GPIO_AF2_TIM3 ((uint8_t)0x02)
/* TIM3 Alternate Function mapping */
303
#define GPIO_AF2_TIM4 ((uint8_t)0x02)
/* TIM4 Alternate Function mapping */
304
#define GPIO_AF2_TIM5 ((uint8_t)0x02)
/* TIM5 Alternate Function mapping */
305
309
#define GPIO_AF3_TIM8 ((uint8_t)0x03)
/* TIM8 Alternate Function mapping */
310
#define GPIO_AF3_TIM9 ((uint8_t)0x03)
/* TIM9 Alternate Function mapping */
311
#define GPIO_AF3_TIM10 ((uint8_t)0x03)
/* TIM10 Alternate Function mapping */
312
#define GPIO_AF3_TIM11 ((uint8_t)0x03)
/* TIM11 Alternate Function mapping */
313
317
#define GPIO_AF4_I2C1 ((uint8_t)0x04)
/* I2C1 Alternate Function mapping */
318
#define GPIO_AF4_I2C2 ((uint8_t)0x04)
/* I2C2 Alternate Function mapping */
319
#define GPIO_AF4_I2C3 ((uint8_t)0x04)
/* I2C3 Alternate Function mapping */
320
324
#define GPIO_AF5_SPI1 ((uint8_t)0x05)
/* SPI1 Alternate Function mapping */
325
#define GPIO_AF5_SPI2 ((uint8_t)0x05)
/* SPI2/I2S2 Alternate Function mapping */
326
#define GPIO_AF5_I2S3ext ((uint8_t)0x05)
/* I2S3ext_SD Alternate Function mapping */
327
331
#define GPIO_AF6_SPI3 ((uint8_t)0x06)
/* SPI3/I2S3 Alternate Function mapping */
332
#define GPIO_AF6_I2S2ext ((uint8_t)0x06)
/* I2S2ext_SD Alternate Function mapping */
333
337
#define GPIO_AF7_USART1 ((uint8_t)0x07)
/* USART1 Alternate Function mapping */
338
#define GPIO_AF7_USART2 ((uint8_t)0x07)
/* USART2 Alternate Function mapping */
339
#define GPIO_AF7_USART3 ((uint8_t)0x07)
/* USART3 Alternate Function mapping */
340
#define GPIO_AF7_I2S3ext ((uint8_t)0x07)
/* I2S3ext_SD Alternate Function mapping */
341
345
#define GPIO_AF8_UART4 ((uint8_t)0x08)
/* UART4 Alternate Function mapping */
346
#define GPIO_AF8_UART5 ((uint8_t)0x08)
/* UART5 Alternate Function mapping */
347
#define GPIO_AF8_USART6 ((uint8_t)0x08)
/* USART6 Alternate Function mapping */
348
352
#define GPIO_AF9_CAN1 ((uint8_t)0x09)
/* CAN1 Alternate Function mapping */
353
#define GPIO_AF9_CAN2 ((uint8_t)0x09)
/* CAN2 Alternate Function mapping */
354
#define GPIO_AF9_TIM12 ((uint8_t)0x09)
/* TIM12 Alternate Function mapping */
355
#define GPIO_AF9_TIM13 ((uint8_t)0x09)
/* TIM13 Alternate Function mapping */
356
#define GPIO_AF9_TIM14 ((uint8_t)0x09)
/* TIM14 Alternate Function mapping */
357
361
#define GPIO_AF10_OTG_FS ((uint8_t)0x0A)
/* OTG_FS Alternate Function mapping */
362
#define GPIO_AF10_OTG_HS ((uint8_t)0x0A)
/* OTG_HS Alternate Function mapping */
363
367
#define GPIO_AF11_ETH ((uint8_t)0x0B)
/* ETHERNET Alternate Function mapping */
368
372
#define GPIO_AF12_FSMC ((uint8_t)0x0C)
/* FSMC Alternate Function mapping */
373
#define GPIO_AF12_OTG_HS_FS ((uint8_t)0x0C)
/* OTG HS configured in FS, Alternate Function mapping */
374
#define GPIO_AF12_SDIO ((uint8_t)0x0C)
/* SDIO Alternate Function mapping */
375
379
#define GPIO_AF13_DCMI ((uint8_t)0x0D)
/* DCMI Alternate Function mapping */
380
384
#define GPIO_AF15_EVENTOUT ((uint8_t)0x0F)
/* EVENTOUT Alternate Function mapping */
385
#endif
/* STM32F407xx || STM32F417xx */
386
/*----------------------------------------------------------------------------*/
387
388
/*---------------------------------- STM32F405xx/STM32F415xx------------------*/
389
#if defined(STM32F405xx) || defined(STM32F415xx)
393
#define GPIO_AF0_RTC_50Hz ((uint8_t)0x00)
/* RTC_50Hz Alternate Function mapping */
394
#define GPIO_AF0_MCO ((uint8_t)0x00)
/* MCO (MCO1 and MCO2) Alternate Function mapping */
395
#define GPIO_AF0_TAMPER ((uint8_t)0x00)
/* TAMPER (TAMPER_1 and TAMPER_2) Alternate Function mapping */
396
#define GPIO_AF0_SWJ ((uint8_t)0x00)
/* SWJ (SWD and JTAG) Alternate Function mapping */
397
#define GPIO_AF0_TRACE ((uint8_t)0x00)
/* TRACE Alternate Function mapping */
398
402
#define GPIO_AF1_TIM1 ((uint8_t)0x01)
/* TIM1 Alternate Function mapping */
403
#define GPIO_AF1_TIM2 ((uint8_t)0x01)
/* TIM2 Alternate Function mapping */
404
408
#define GPIO_AF2_TIM3 ((uint8_t)0x02)
/* TIM3 Alternate Function mapping */
409
#define GPIO_AF2_TIM4 ((uint8_t)0x02)
/* TIM4 Alternate Function mapping */
410
#define GPIO_AF2_TIM5 ((uint8_t)0x02)
/* TIM5 Alternate Function mapping */
411
415
#define GPIO_AF3_TIM8 ((uint8_t)0x03)
/* TIM8 Alternate Function mapping */
416
#define GPIO_AF3_TIM9 ((uint8_t)0x03)
/* TIM9 Alternate Function mapping */
417
#define GPIO_AF3_TIM10 ((uint8_t)0x03)
/* TIM10 Alternate Function mapping */
418
#define GPIO_AF3_TIM11 ((uint8_t)0x03)
/* TIM11 Alternate Function mapping */
419
423
#define GPIO_AF4_I2C1 ((uint8_t)0x04)
/* I2C1 Alternate Function mapping */
424
#define GPIO_AF4_I2C2 ((uint8_t)0x04)
/* I2C2 Alternate Function mapping */
425
#define GPIO_AF4_I2C3 ((uint8_t)0x04)
/* I2C3 Alternate Function mapping */
426
430
#define GPIO_AF5_SPI1 ((uint8_t)0x05)
/* SPI1 Alternate Function mapping */
431
#define GPIO_AF5_SPI2 ((uint8_t)0x05)
/* SPI2/I2S2 Alternate Function mapping */
432
#define GPIO_AF5_I2S3ext ((uint8_t)0x05)
/* I2S3ext_SD Alternate Function mapping */
433
437
#define GPIO_AF6_SPI3 ((uint8_t)0x06)
/* SPI3/I2S3 Alternate Function mapping */
438
#define GPIO_AF6_I2S2ext ((uint8_t)0x06)
/* I2S2ext_SD Alternate Function mapping */
439
443
#define GPIO_AF7_USART1 ((uint8_t)0x07)
/* USART1 Alternate Function mapping */
444
#define GPIO_AF7_USART2 ((uint8_t)0x07)
/* USART2 Alternate Function mapping */
445
#define GPIO_AF7_USART3 ((uint8_t)0x07)
/* USART3 Alternate Function mapping */
446
#define GPIO_AF7_I2S3ext ((uint8_t)0x07)
/* I2S3ext_SD Alternate Function mapping */
447
451
#define GPIO_AF8_UART4 ((uint8_t)0x08)
/* UART4 Alternate Function mapping */
452
#define GPIO_AF8_UART5 ((uint8_t)0x08)
/* UART5 Alternate Function mapping */
453
#define GPIO_AF8_USART6 ((uint8_t)0x08)
/* USART6 Alternate Function mapping */
454
458
#define GPIO_AF9_CAN1 ((uint8_t)0x09)
/* CAN1 Alternate Function mapping */
459
#define GPIO_AF9_CAN2 ((uint8_t)0x09)
/* CAN2 Alternate Function mapping */
460
#define GPIO_AF9_TIM12 ((uint8_t)0x09)
/* TIM12 Alternate Function mapping */
461
#define GPIO_AF9_TIM13 ((uint8_t)0x09)
/* TIM13 Alternate Function mapping */
462
#define GPIO_AF9_TIM14 ((uint8_t)0x09)
/* TIM14 Alternate Function mapping */
463
467
#define GPIO_AF10_OTG_FS ((uint8_t)0x0A)
/* OTG_FS Alternate Function mapping */
468
#define GPIO_AF10_OTG_HS ((uint8_t)0x0A)
/* OTG_HS Alternate Function mapping */
469
473
#define GPIO_AF12_FSMC ((uint8_t)0x0C)
/* FSMC Alternate Function mapping */
474
#define GPIO_AF12_OTG_HS_FS ((uint8_t)0x0C)
/* OTG HS configured in FS, Alternate Function mapping */
475
#define GPIO_AF12_SDIO ((uint8_t)0x0C)
/* SDIO Alternate Function mapping */
476
480
#define GPIO_AF15_EVENTOUT ((uint8_t)0x0F)
/* EVENTOUT Alternate Function mapping */
481
#endif
/* STM32F405xx || STM32F415xx */
482
483
/*----------------------------------------------------------------------------*/
484
485
/*---------------------------------------- STM32F401xx------------------------*/
486
#if defined(STM32F401xC) || defined(STM32F401xE)
490
#define GPIO_AF0_RTC_50Hz ((uint8_t)0x00)
/* RTC_50Hz Alternate Function mapping */
491
#define GPIO_AF0_MCO ((uint8_t)0x00)
/* MCO (MCO1 and MCO2) Alternate Function mapping */
492
#define GPIO_AF0_TAMPER ((uint8_t)0x00)
/* TAMPER (TAMPER_1 and TAMPER_2) Alternate Function mapping */
493
#define GPIO_AF0_SWJ ((uint8_t)0x00)
/* SWJ (SWD and JTAG) Alternate Function mapping */
494
#define GPIO_AF0_TRACE ((uint8_t)0x00)
/* TRACE Alternate Function mapping */
495
499
#define GPIO_AF1_TIM1 ((uint8_t)0x01)
/* TIM1 Alternate Function mapping */
500
#define GPIO_AF1_TIM2 ((uint8_t)0x01)
/* TIM2 Alternate Function mapping */
501
505
#define GPIO_AF2_TIM3 ((uint8_t)0x02)
/* TIM3 Alternate Function mapping */
506
#define GPIO_AF2_TIM4 ((uint8_t)0x02)
/* TIM4 Alternate Function mapping */
507
#define GPIO_AF2_TIM5 ((uint8_t)0x02)
/* TIM5 Alternate Function mapping */
508
512
#define GPIO_AF3_TIM9 ((uint8_t)0x03)
/* TIM9 Alternate Function mapping */
513
#define GPIO_AF3_TIM10 ((uint8_t)0x03)
/* TIM10 Alternate Function mapping */
514
#define GPIO_AF3_TIM11 ((uint8_t)0x03)
/* TIM11 Alternate Function mapping */
515
519
#define GPIO_AF4_I2C1 ((uint8_t)0x04)
/* I2C1 Alternate Function mapping */
520
#define GPIO_AF4_I2C2 ((uint8_t)0x04)
/* I2C2 Alternate Function mapping */
521
#define GPIO_AF4_I2C3 ((uint8_t)0x04)
/* I2C3 Alternate Function mapping */
522
526
#define GPIO_AF5_SPI1 ((uint8_t)0x05)
/* SPI1 Alternate Function mapping */
527
#define GPIO_AF5_SPI2 ((uint8_t)0x05)
/* SPI2/I2S2 Alternate Function mapping */
528
#define GPIO_AF5_SPI3 ((uint8_t)0x05)
/* SPI3 Alternate Function mapping */
529
#define GPIO_AF5_SPI4 ((uint8_t)0x05)
/* SPI4 Alternate Function mapping */
530
#define GPIO_AF5_I2S3ext ((uint8_t)0x05)
/* I2S3ext_SD Alternate Function mapping */
531
535
#define GPIO_AF6_SPI3 ((uint8_t)0x06)
/* SPI3/I2S3 Alternate Function mapping */
536
#define GPIO_AF6_I2S2ext ((uint8_t)0x06)
/* I2S2ext_SD Alternate Function mapping */
537
541
#define GPIO_AF7_USART1 ((uint8_t)0x07)
/* USART1 Alternate Function mapping */
542
#define GPIO_AF7_USART2 ((uint8_t)0x07)
/* USART2 Alternate Function mapping */
543
#define GPIO_AF7_I2S3ext ((uint8_t)0x07)
/* I2S3ext_SD Alternate Function mapping */
544
548
#define GPIO_AF8_USART6 ((uint8_t)0x08)
/* USART6 Alternate Function mapping */
549
553
#define GPIO_AF9_I2C2 ((uint8_t)0x09)
/* I2C2 Alternate Function mapping */
554
#define GPIO_AF9_I2C3 ((uint8_t)0x09)
/* I2C3 Alternate Function mapping */
555
556
560
#define GPIO_AF10_OTG_FS ((uint8_t)0x0A)
/* OTG_FS Alternate Function mapping */
561
565
#define GPIO_AF12_SDIO ((uint8_t)0x0C)
/* SDIO Alternate Function mapping */
566
570
#define GPIO_AF15_EVENTOUT ((uint8_t)0x0F)
/* EVENTOUT Alternate Function mapping */
571
#endif
/* STM32F401xC || STM32F401xE */
572
/*----------------------------------------------------------------------------*/
573
574
/*--------------- STM32F412Zx/STM32F412Vx/STM32F412Rx/STM32F412Cx-------------*/
575
#if defined(STM32F412Zx) || defined(STM32F412Vx) || defined(STM32F412Rx) || defined(STM32F412Cx)
579
#define GPIO_AF0_RTC_50Hz ((uint8_t)0x00)
/* RTC_50Hz Alternate Function mapping */
580
#define GPIO_AF0_MCO ((uint8_t)0x00)
/* MCO (MCO1 and MCO2) Alternate Function mapping */
581
#define GPIO_AF0_TAMPER ((uint8_t)0x00)
/* TAMPER (TAMPER_1 and TAMPER_2) Alternate Function mapping */
582
#define GPIO_AF0_SWJ ((uint8_t)0x00)
/* SWJ (SWD and JTAG) Alternate Function mapping */
583
#define GPIO_AF0_TRACE ((uint8_t)0x00)
/* TRACE Alternate Function mapping */
584
588
#define GPIO_AF1_TIM1 ((uint8_t)0x01)
/* TIM1 Alternate Function mapping */
589
#define GPIO_AF1_TIM2 ((uint8_t)0x01)
/* TIM2 Alternate Function mapping */
590
594
#define GPIO_AF2_TIM3 ((uint8_t)0x02)
/* TIM3 Alternate Function mapping */
595
#define GPIO_AF2_TIM4 ((uint8_t)0x02)
/* TIM4 Alternate Function mapping */
596
#define GPIO_AF2_TIM5 ((uint8_t)0x02)
/* TIM5 Alternate Function mapping */
597
601
#define GPIO_AF3_TIM8 ((uint8_t)0x03)
/* TIM8 Alternate Function mapping */
602
#define GPIO_AF3_TIM9 ((uint8_t)0x03)
/* TIM9 Alternate Function mapping */
603
#define GPIO_AF3_TIM10 ((uint8_t)0x03)
/* TIM10 Alternate Function mapping */
604
#define GPIO_AF3_TIM11 ((uint8_t)0x03)
/* TIM11 Alternate Function mapping */
605
609
#define GPIO_AF4_I2C1 ((uint8_t)0x04)
/* I2C1 Alternate Function mapping */
610
#define GPIO_AF4_I2C2 ((uint8_t)0x04)
/* I2C2 Alternate Function mapping */
611
#define GPIO_AF4_I2C3 ((uint8_t)0x04)
/* I2C3 Alternate Function mapping */
612
#define GPIO_AF4_FMPI2C1 ((uint8_t)0x04)
/* FMPI2C1 Alternate Function mapping */
613
617
#define GPIO_AF5_SPI1 ((uint8_t)0x05)
/* SPI1/I2S1 Alternate Function mapping */
618
#define GPIO_AF5_SPI2 ((uint8_t)0x05)
/* SPI2/I2S2 Alternate Function mapping */
619
#define GPIO_AF5_SPI3 ((uint8_t)0x05)
/* SPI3/I2S3 Alternate Function mapping */
620
#define GPIO_AF5_SPI4 ((uint8_t)0x05)
/* SPI4/I2S4 Alternate Function mapping */
621
#define GPIO_AF5_I2S3ext ((uint8_t)0x05)
/* I2S3ext_SD Alternate Function mapping */
622
626
#define GPIO_AF6_SPI2 ((uint8_t)0x06)
/* I2S2 Alternate Function mapping */
627
#define GPIO_AF6_SPI3 ((uint8_t)0x06)
/* SPI3/I2S3 Alternate Function mapping */
628
#define GPIO_AF6_SPI4 ((uint8_t)0x06)
/* SPI4/I2S4 Alternate Function mapping */
629
#define GPIO_AF6_SPI5 ((uint8_t)0x06)
/* SPI5/I2S5 Alternate Function mapping */
630
#define GPIO_AF6_I2S2ext ((uint8_t)0x06)
/* I2S2ext_SD Alternate Function mapping */
631
#define GPIO_AF6_DFSDM1 ((uint8_t)0x06)
/* DFSDM1 Alternate Function mapping */
635
#define GPIO_AF7_SPI3 ((uint8_t)0x07)
/* SPI3/I2S3 Alternate Function mapping */
636
#define GPIO_AF7_USART1 ((uint8_t)0x07)
/* USART1 Alternate Function mapping */
637
#define GPIO_AF7_USART2 ((uint8_t)0x07)
/* USART2 Alternate Function mapping */
638
#define GPIO_AF7_USART3 ((uint8_t)0x07)
/* USART3 Alternate Function mapping */
639
#define GPIO_AF7_I2S3ext ((uint8_t)0x07)
/* I2S3ext_SD Alternate Function mapping */
640
644
#define GPIO_AF8_USART6 ((uint8_t)0x08)
/* USART6 Alternate Function mapping */
645
#define GPIO_AF8_USART3 ((uint8_t)0x08)
/* USART3 Alternate Function mapping */
646
#define GPIO_AF8_DFSDM1 ((uint8_t)0x08)
/* DFSDM1 Alternate Function mapping */
647
#define GPIO_AF8_CAN1 ((uint8_t)0x08)
/* CAN1 Alternate Function mapping */
648
652
#define GPIO_AF9_TIM12 ((uint8_t)0x09)
/* TIM12 Alternate Function mapping */
653
#define GPIO_AF9_TIM13 ((uint8_t)0x09)
/* TIM13 Alternate Function mapping */
654
#define GPIO_AF9_TIM14 ((uint8_t)0x09)
/* TIM14 Alternate Function mapping */
655
#define GPIO_AF9_I2C2 ((uint8_t)0x09)
/* I2C2 Alternate Function mapping */
656
#define GPIO_AF9_I2C3 ((uint8_t)0x09)
/* I2C3 Alternate Function mapping */
657
#define GPIO_AF9_FMPI2C1 ((uint8_t)0x09)
/* FMPI2C1 Alternate Function mapping */
658
#define GPIO_AF9_CAN1 ((uint8_t)0x09)
/* CAN1 Alternate Function mapping */
659
#define GPIO_AF9_CAN2 ((uint8_t)0x09)
/* CAN1 Alternate Function mapping */
660
#define GPIO_AF9_QSPI ((uint8_t)0x09)
/* QSPI Alternate Function mapping */
661
665
#define GPIO_AF10_OTG_FS ((uint8_t)0x0A)
/* OTG_FS Alternate Function mapping */
666
#define GPIO_AF10_DFSDM1 ((uint8_t)0x0A)
/* DFSDM1 Alternate Function mapping */
667
#define GPIO_AF10_QSPI ((uint8_t)0x0A)
/* QSPI Alternate Function mapping */
668
#define GPIO_AF10_FMC ((uint8_t)0x0A)
/* FMC Alternate Function mapping */
669
673
#define GPIO_AF12_SDIO ((uint8_t)0x0C)
/* SDIO Alternate Function mapping */
674
#define GPIO_AF12_FSMC ((uint8_t)0x0C)
/* FMC Alternate Function mapping */
675
679
#define GPIO_AF15_EVENTOUT ((uint8_t)0x0F)
/* EVENTOUT Alternate Function mapping */
680
#endif
/* STM32F412Zx || STM32F412Vx || STM32F412Rx || STM32F412Cx */
681
682
/*----------------------------------------------------------------------------*/
683
684
/*--------------- STM32F413xx/STM32F423xx-------------------------------------*/
685
#if defined(STM32F413xx) || defined(STM32F423xx)
689
#define GPIO_AF0_RTC_50Hz ((uint8_t)0x00)
/* RTC_50Hz Alternate Function mapping */
690
#define GPIO_AF0_MCO ((uint8_t)0x00)
/* MCO (MCO1 and MCO2) Alternate Function mapping */
691
#define GPIO_AF0_SWJ ((uint8_t)0x00)
/* SWJ (SWD and JTAG) Alternate Function mapping */
692
#define GPIO_AF0_TRACE ((uint8_t)0x00)
/* TRACE Alternate Function mapping */
693
697
#define GPIO_AF1_TIM1 ((uint8_t)0x01)
/* TIM1 Alternate Function mapping */
698
#define GPIO_AF1_TIM2 ((uint8_t)0x01)
/* TIM2 Alternate Function mapping */
699
#define GPIO_AF1_LPTIM1 ((uint8_t)0x01)
/* LPTIM1 Alternate Function mapping */
700
704
#define GPIO_AF2_TIM3 ((uint8_t)0x02)
/* TIM3 Alternate Function mapping */
705
#define GPIO_AF2_TIM4 ((uint8_t)0x02)
/* TIM4 Alternate Function mapping */
706
#define GPIO_AF2_TIM5 ((uint8_t)0x02)
/* TIM5 Alternate Function mapping */
707
711
#define GPIO_AF3_TIM8 ((uint8_t)0x03)
/* TIM8 Alternate Function mapping */
712
#define GPIO_AF3_TIM9 ((uint8_t)0x03)
/* TIM9 Alternate Function mapping */
713
#define GPIO_AF3_TIM10 ((uint8_t)0x03)
/* TIM10 Alternate Function mapping */
714
#define GPIO_AF3_TIM11 ((uint8_t)0x03)
/* TIM11 Alternate Function mapping */
715
#define GPIO_AF3_DFSDM2 ((uint8_t)0x03)
/* DFSDM2 Alternate Function mapping */
716
720
#define GPIO_AF4_I2C1 ((uint8_t)0x04)
/* I2C1 Alternate Function mapping */
721
#define GPIO_AF4_I2C2 ((uint8_t)0x04)
/* I2C2 Alternate Function mapping */
722
#define GPIO_AF4_I2C3 ((uint8_t)0x04)
/* I2C3 Alternate Function mapping */
723
#define GPIO_AF4_FMPI2C1 ((uint8_t)0x04)
/* FMPI2C1 Alternate Function mapping */
724
728
#define GPIO_AF5_SPI1 ((uint8_t)0x05)
/* SPI1/I2S1 Alternate Function mapping */
729
#define GPIO_AF5_SPI2 ((uint8_t)0x05)
/* SPI2/I2S2 Alternate Function mapping */
730
#define GPIO_AF5_SPI3 ((uint8_t)0x05)
/* SPI3/I2S3 Alternate Function mapping */
731
#define GPIO_AF5_SPI4 ((uint8_t)0x05)
/* SPI4/I2S4 Alternate Function mapping */
732
#define GPIO_AF5_I2S3ext ((uint8_t)0x05)
/* I2S3ext_SD Alternate Function mapping */
733
737
#define GPIO_AF6_SPI2 ((uint8_t)0x06)
/* I2S2 Alternate Function mapping */
738
#define GPIO_AF6_SPI3 ((uint8_t)0x06)
/* SPI3/I2S3 Alternate Function mapping */
739
#define GPIO_AF6_SPI4 ((uint8_t)0x06)
/* SPI4/I2S4 Alternate Function mapping */
740
#define GPIO_AF6_SPI5 ((uint8_t)0x06)
/* SPI5/I2S5 Alternate Function mapping */
741
#define GPIO_AF6_I2S2ext ((uint8_t)0x06)
/* I2S2ext_SD Alternate Function mapping */
742
#define GPIO_AF6_DFSDM1 ((uint8_t)0x06)
/* DFSDM1 Alternate Function mapping */
743
#define GPIO_AF6_DFSDM2 ((uint8_t)0x06)
/* DFSDM2 Alternate Function mapping */
747
#define GPIO_AF7_SPI3 ((uint8_t)0x07)
/* SPI3/I2S3 Alternate Function mapping */
748
#define GPIO_AF7_SAI1 ((uint8_t)0x07)
/* SAI1 Alternate Function mapping */
749
#define GPIO_AF7_USART1 ((uint8_t)0x07)
/* USART1 Alternate Function mapping */
750
#define GPIO_AF7_USART2 ((uint8_t)0x07)
/* USART2 Alternate Function mapping */
751
#define GPIO_AF7_USART3 ((uint8_t)0x07)
/* USART3 Alternate Function mapping */
752
#define GPIO_AF7_I2S3ext ((uint8_t)0x07)
/* I2S3ext_SD Alternate Function mapping */
753
#define GPIO_AF7_DFSDM2 ((uint8_t)0x07)
/* DFSDM2 Alternate Function mapping */
754
758
#define GPIO_AF8_USART6 ((uint8_t)0x08)
/* USART6 Alternate Function mapping */
759
#define GPIO_AF8_USART3 ((uint8_t)0x08)
/* USART3 Alternate Function mapping */
760
#define GPIO_AF8_UART4 ((uint8_t)0x08)
/* UART4 Alternate Function mapping */
761
#define GPIO_AF8_UART5 ((uint8_t)0x08)
/* UART5 Alternate Function mapping */
762
#define GPIO_AF8_UART7 ((uint8_t)0x08)
/* UART8 Alternate Function mapping */
763
#define GPIO_AF8_UART8 ((uint8_t)0x08)
/* UART8 Alternate Function mapping */
764
#define GPIO_AF8_DFSDM1 ((uint8_t)0x08)
/* DFSDM1 Alternate Function mapping */
765
#define GPIO_AF8_CAN1 ((uint8_t)0x08)
/* CAN1 Alternate Function mapping */
766
770
#define GPIO_AF9_TIM12 ((uint8_t)0x09)
/* TIM12 Alternate Function mapping */
771
#define GPIO_AF9_TIM13 ((uint8_t)0x09)
/* TIM13 Alternate Function mapping */
772
#define GPIO_AF9_TIM14 ((uint8_t)0x09)
/* TIM14 Alternate Function mapping */
773
#define GPIO_AF9_I2C2 ((uint8_t)0x09)
/* I2C2 Alternate Function mapping */
774
#define GPIO_AF9_I2C3 ((uint8_t)0x09)
/* I2C3 Alternate Function mapping */
775
#define GPIO_AF9_FMPI2C1 ((uint8_t)0x09)
/* FMPI2C1 Alternate Function mapping */
776
#define GPIO_AF9_CAN1 ((uint8_t)0x09)
/* CAN1 Alternate Function mapping */
777
#define GPIO_AF9_CAN2 ((uint8_t)0x09)
/* CAN1 Alternate Function mapping */
778
#define GPIO_AF9_QSPI ((uint8_t)0x09)
/* QSPI Alternate Function mapping */
779
783
#define GPIO_AF10_SAI1 ((uint8_t)0x0A)
/* SAI1 Alternate Function mapping */
784
#define GPIO_AF10_OTG_FS ((uint8_t)0x0A)
/* OTG_FS Alternate Function mapping */
785
#define GPIO_AF10_DFSDM1 ((uint8_t)0x0A)
/* DFSDM1 Alternate Function mapping */
786
#define GPIO_AF10_DFSDM2 ((uint8_t)0x0A)
/* DFSDM2 Alternate Function mapping */
787
#define GPIO_AF10_QSPI ((uint8_t)0x0A)
/* QSPI Alternate Function mapping */
788
#define GPIO_AF10_FSMC ((uint8_t)0x0A)
/* FSMC Alternate Function mapping */
789
793
#define GPIO_AF11_UART4 ((uint8_t)0x0B)
/* UART4 Alternate Function mapping */
794
#define GPIO_AF11_UART5 ((uint8_t)0x0B)
/* UART5 Alternate Function mapping */
795
#define GPIO_AF11_UART9 ((uint8_t)0x0B)
/* UART9 Alternate Function mapping */
796
#define GPIO_AF11_UART10 ((uint8_t)0x0B)
/* UART10 Alternate Function mapping */
797
#define GPIO_AF11_CAN3 ((uint8_t)0x0B)
/* CAN3 Alternate Function mapping */
798
802
#define GPIO_AF12_SDIO ((uint8_t)0x0C)
/* SDIO Alternate Function mapping */
803
#define GPIO_AF12_FSMC ((uint8_t)0x0C)
/* FMC Alternate Function mapping */
804
808
#define GPIO_AF14_RNG ((uint8_t)0x0E)
/* RNG Alternate Function mapping */
809
813
#define GPIO_AF15_EVENTOUT ((uint8_t)0x0F)
/* EVENTOUT Alternate Function mapping */
814
#endif
/* STM32F413xx || STM32F423xx */
815
816
/*---------------------------------------- STM32F411xx------------------------*/
817
#if defined(STM32F411xE)
821
#define GPIO_AF0_RTC_50Hz ((uint8_t)0x00)
/* RTC_50Hz Alternate Function mapping */
822
#define GPIO_AF0_MCO ((uint8_t)0x00)
/* MCO (MCO1 and MCO2) Alternate Function mapping */
823
#define GPIO_AF0_TAMPER ((uint8_t)0x00)
/* TAMPER (TAMPER_1 and TAMPER_2) Alternate Function mapping */
824
#define GPIO_AF0_SWJ ((uint8_t)0x00)
/* SWJ (SWD and JTAG) Alternate Function mapping */
825
#define GPIO_AF0_TRACE ((uint8_t)0x00)
/* TRACE Alternate Function mapping */
826
830
#define GPIO_AF1_TIM1 ((uint8_t)0x01)
/* TIM1 Alternate Function mapping */
831
#define GPIO_AF1_TIM2 ((uint8_t)0x01)
/* TIM2 Alternate Function mapping */
832
836
#define GPIO_AF2_TIM3 ((uint8_t)0x02)
/* TIM3 Alternate Function mapping */
837
#define GPIO_AF2_TIM4 ((uint8_t)0x02)
/* TIM4 Alternate Function mapping */
838
#define GPIO_AF2_TIM5 ((uint8_t)0x02)
/* TIM5 Alternate Function mapping */
839
843
#define GPIO_AF3_TIM9 ((uint8_t)0x03)
/* TIM9 Alternate Function mapping */
844
#define GPIO_AF3_TIM10 ((uint8_t)0x03)
/* TIM10 Alternate Function mapping */
845
#define GPIO_AF3_TIM11 ((uint8_t)0x03)
/* TIM11 Alternate Function mapping */
846
850
#define GPIO_AF4_I2C1 ((uint8_t)0x04)
/* I2C1 Alternate Function mapping */
851
#define GPIO_AF4_I2C2 ((uint8_t)0x04)
/* I2C2 Alternate Function mapping */
852
#define GPIO_AF4_I2C3 ((uint8_t)0x04)
/* I2C3 Alternate Function mapping */
853
857
#define GPIO_AF5_SPI1 ((uint8_t)0x05)
/* SPI1/I2S1 Alternate Function mapping */
858
#define GPIO_AF5_SPI2 ((uint8_t)0x05)
/* SPI2/I2S2 Alternate Function mapping */
859
#define GPIO_AF5_SPI3 ((uint8_t)0x05)
/* SPI3/I2S3 Alternate Function mapping */
860
#define GPIO_AF5_SPI4 ((uint8_t)0x05)
/* SPI4 Alternate Function mapping */
861
#define GPIO_AF5_I2S3ext ((uint8_t)0x05)
/* I2S3ext_SD Alternate Function mapping */
862
866
#define GPIO_AF6_SPI2 ((uint8_t)0x06)
/* I2S2 Alternate Function mapping */
867
#define GPIO_AF6_SPI3 ((uint8_t)0x06)
/* SPI3/I2S3 Alternate Function mapping */
868
#define GPIO_AF6_SPI4 ((uint8_t)0x06)
/* SPI4/I2S4 Alternate Function mapping */
869
#define GPIO_AF6_SPI5 ((uint8_t)0x06)
/* SPI5/I2S5 Alternate Function mapping */
870
#define GPIO_AF6_I2S2ext ((uint8_t)0x06)
/* I2S2ext_SD Alternate Function mapping */
871
875
#define GPIO_AF7_SPI3 ((uint8_t)0x07)
/* SPI3/I2S3 Alternate Function mapping */
876
#define GPIO_AF7_USART1 ((uint8_t)0x07)
/* USART1 Alternate Function mapping */
877
#define GPIO_AF7_USART2 ((uint8_t)0x07)
/* USART2 Alternate Function mapping */
878
#define GPIO_AF7_I2S3ext ((uint8_t)0x07)
/* I2S3ext_SD Alternate Function mapping */
879
883
#define GPIO_AF8_USART6 ((uint8_t)0x08)
/* USART6 Alternate Function mapping */
884
888
#define GPIO_AF9_TIM14 ((uint8_t)0x09)
/* TIM14 Alternate Function mapping */
889
#define GPIO_AF9_I2C2 ((uint8_t)0x09)
/* I2C2 Alternate Function mapping */
890
#define GPIO_AF9_I2C3 ((uint8_t)0x09)
/* I2C3 Alternate Function mapping */
891
895
#define GPIO_AF10_OTG_FS ((uint8_t)0x0A)
/* OTG_FS Alternate Function mapping */
896
900
#define GPIO_AF12_SDIO ((uint8_t)0x0C)
/* SDIO Alternate Function mapping */
901
905
#define GPIO_AF15_EVENTOUT ((uint8_t)0x0F)
/* EVENTOUT Alternate Function mapping */
906
#endif
/* STM32F411xE */
907
908
/*---------------------------------------- STM32F410xx------------------------*/
909
#if defined(STM32F410Tx) || defined(STM32F410Cx) || defined(STM32F410Rx)
913
#define GPIO_AF0_RTC_50Hz ((uint8_t)0x00)
/* RTC_50Hz Alternate Function mapping */
914
#define GPIO_AF0_MCO ((uint8_t)0x00)
/* MCO (MCO1 and MCO2) Alternate Function mapping */
915
#define GPIO_AF0_TAMPER ((uint8_t)0x00)
/* TAMPER (TAMPER_1 and TAMPER_2) Alternate Function mapping */
916
#define GPIO_AF0_SWJ ((uint8_t)0x00)
/* SWJ (SWD and JTAG) Alternate Function mapping */
917
#define GPIO_AF0_TRACE ((uint8_t)0x00)
/* TRACE Alternate Function mapping */
918
922
#define GPIO_AF1_TIM1 ((uint8_t)0x01)
/* TIM1 Alternate Function mapping */
923
#define GPIO_AF1_LPTIM1 ((uint8_t)0x01)
/* LPTIM1 Alternate Function mapping */
924
928
#define GPIO_AF2_TIM5 ((uint8_t)0x02)
/* TIM5 Alternate Function mapping */
929
933
#define GPIO_AF3_TIM9 ((uint8_t)0x03)
/* TIM9 Alternate Function mapping */
934
#define GPIO_AF3_TIM11 ((uint8_t)0x03)
/* TIM11 Alternate Function mapping */
935
939
#define GPIO_AF4_I2C1 ((uint8_t)0x04)
/* I2C1 Alternate Function mapping */
940
#define GPIO_AF4_I2C2 ((uint8_t)0x04)
/* I2C2 Alternate Function mapping */
941
#define GPIO_AF4_FMPI2C1 ((uint8_t)0x04)
/* FMPI2C1 Alternate Function mapping */
942
946
#define GPIO_AF5_SPI1 ((uint8_t)0x05)
/* SPI1/I2S1 Alternate Function mapping */
947
#if defined(STM32F410Cx) || defined(STM32F410Rx)
948
#define GPIO_AF5_SPI2 ((uint8_t)0x05)
/* SPI2/I2S2 Alternate Function mapping */
949
#endif
/* STM32F410Cx || STM32F410Rx */
950
954
#define GPIO_AF6_SPI1 ((uint8_t)0x06)
/* SPI1 Alternate Function mapping */
955
#if defined(STM32F410Cx) || defined(STM32F410Rx)
956
#define GPIO_AF6_SPI2 ((uint8_t)0x06)
/* I2S2 Alternate Function mapping */
957
#endif
/* STM32F410Cx || STM32F410Rx */
958
#define GPIO_AF6_SPI5 ((uint8_t)0x06)
/* SPI5/I2S5 Alternate Function mapping */
962
#define GPIO_AF7_USART1 ((uint8_t)0x07)
/* USART1 Alternate Function mapping */
963
#define GPIO_AF7_USART2 ((uint8_t)0x07)
/* USART2 Alternate Function mapping */
964
968
#define GPIO_AF8_USART6 ((uint8_t)0x08)
/* USART6 Alternate Function mapping */
969
973
#define GPIO_AF9_I2C2 ((uint8_t)0x09)
/* I2C2 Alternate Function mapping */
974
#define GPIO_AF9_FMPI2C1 ((uint8_t)0x09)
/* FMPI2C1 Alternate Function mapping */
975
979
#define GPIO_AF15_EVENTOUT ((uint8_t)0x0F)
/* EVENTOUT Alternate Function mapping */
980
#endif
/* STM32F410Tx || STM32F410Cx || STM32F410Rx */
981
982
/*---------------------------------------- STM32F446xx -----------------------*/
983
#if defined(STM32F446xx)
987
#define GPIO_AF0_RTC_50Hz ((uint8_t)0x00)
/* RTC_50Hz Alternate Function mapping */
988
#define GPIO_AF0_MCO ((uint8_t)0x00)
/* MCO (MCO1 and MCO2) Alternate Function mapping */
989
#define GPIO_AF0_TAMPER ((uint8_t)0x00)
/* TAMPER (TAMPER_1 and TAMPER_2) Alternate Function mapping */
990
#define GPIO_AF0_SWJ ((uint8_t)0x00)
/* SWJ (SWD and JTAG) Alternate Function mapping */
991
#define GPIO_AF0_TRACE ((uint8_t)0x00)
/* TRACE Alternate Function mapping */
992
996
#define GPIO_AF1_TIM1 ((uint8_t)0x01)
/* TIM1 Alternate Function mapping */
997
#define GPIO_AF1_TIM2 ((uint8_t)0x01)
/* TIM2 Alternate Function mapping */
998
1002
#define GPIO_AF2_TIM3 ((uint8_t)0x02)
/* TIM3 Alternate Function mapping */
1003
#define GPIO_AF2_TIM4 ((uint8_t)0x02)
/* TIM4 Alternate Function mapping */
1004
#define GPIO_AF2_TIM5 ((uint8_t)0x02)
/* TIM5 Alternate Function mapping */
1005
1009
#define GPIO_AF3_TIM8 ((uint8_t)0x03)
/* TIM8 Alternate Function mapping */
1010
#define GPIO_AF3_TIM9 ((uint8_t)0x03)
/* TIM9 Alternate Function mapping */
1011
#define GPIO_AF3_TIM10 ((uint8_t)0x03)
/* TIM10 Alternate Function mapping */
1012
#define GPIO_AF3_TIM11 ((uint8_t)0x03)
/* TIM11 Alternate Function mapping */
1013
#define GPIO_AF3_CEC ((uint8_t)0x03)
/* CEC Alternate Function mapping */
1014
1018
#define GPIO_AF4_I2C1 ((uint8_t)0x04)
/* I2C1 Alternate Function mapping */
1019
#define GPIO_AF4_I2C2 ((uint8_t)0x04)
/* I2C2 Alternate Function mapping */
1020
#define GPIO_AF4_I2C3 ((uint8_t)0x04)
/* I2C3 Alternate Function mapping */
1021
#define GPIO_AF4_FMPI2C1 ((uint8_t)0x04)
/* FMPI2C1 Alternate Function mapping */
1022
#define GPIO_AF4_CEC ((uint8_t)0x04)
/* CEC Alternate Function mapping */
1023
1027
#define GPIO_AF5_SPI1 ((uint8_t)0x05)
/* SPI1/I2S1 Alternate Function mapping */
1028
#define GPIO_AF5_SPI2 ((uint8_t)0x05)
/* SPI2/I2S2 Alternate Function mapping */
1029
#define GPIO_AF5_SPI3 ((uint8_t)0x05)
/* SPI3/I2S3 Alternate Function mapping */
1030
#define GPIO_AF5_SPI4 ((uint8_t)0x05)
/* SPI4 Alternate Function mapping */
1031
1035
#define GPIO_AF6_SPI2 ((uint8_t)0x06)
/* SPI2/I2S2 Alternate Function mapping */
1036
#define GPIO_AF6_SPI3 ((uint8_t)0x06)
/* SPI3/I2S3 Alternate Function mapping */
1037
#define GPIO_AF6_SPI4 ((uint8_t)0x06)
/* SPI4 Alternate Function mapping */
1038
#define GPIO_AF6_SAI1 ((uint8_t)0x06)
/* SAI1 Alternate Function mapping */
1039
1043
#define GPIO_AF7_USART1 ((uint8_t)0x07)
/* USART1 Alternate Function mapping */
1044
#define GPIO_AF7_USART2 ((uint8_t)0x07)
/* USART2 Alternate Function mapping */
1045
#define GPIO_AF7_USART3 ((uint8_t)0x07)
/* USART3 Alternate Function mapping */
1046
#define GPIO_AF7_UART5 ((uint8_t)0x07)
/* UART5 Alternate Function mapping */
1047
#define GPIO_AF7_SPI2 ((uint8_t)0x07)
/* SPI2/I2S2 Alternate Function mapping */
1048
#define GPIO_AF7_SPI3 ((uint8_t)0x07)
/* SPI3/I2S3 Alternate Function mapping */
1049
#define GPIO_AF7_SPDIFRX ((uint8_t)0x07)
/* SPDIFRX Alternate Function mapping */
1050
1054
#define GPIO_AF8_UART4 ((uint8_t)0x08)
/* UART4 Alternate Function mapping */
1055
#define GPIO_AF8_UART5 ((uint8_t)0x08)
/* UART5 Alternate Function mapping */
1056
#define GPIO_AF8_USART6 ((uint8_t)0x08)
/* USART6 Alternate Function mapping */
1057
#define GPIO_AF8_SPDIFRX ((uint8_t)0x08)
/* SPDIFRX Alternate Function mapping */
1058
#define GPIO_AF8_SAI2 ((uint8_t)0x08)
/* SAI2 Alternate Function mapping */
1059
1063
#define GPIO_AF9_CAN1 ((uint8_t)0x09)
/* CAN1 Alternate Function mapping */
1064
#define GPIO_AF9_CAN2 ((uint8_t)0x09)
/* CAN2 Alternate Function mapping */
1065
#define GPIO_AF9_TIM12 ((uint8_t)0x09)
/* TIM12 Alternate Function mapping */
1066
#define GPIO_AF9_TIM13 ((uint8_t)0x09)
/* TIM13 Alternate Function mapping */
1067
#define GPIO_AF9_TIM14 ((uint8_t)0x09)
/* TIM14 Alternate Function mapping */
1068
#define GPIO_AF9_QSPI ((uint8_t)0x09)
/* QSPI Alternate Function mapping */
1069
1073
#define GPIO_AF10_OTG_FS ((uint8_t)0x0A)
/* OTG_FS Alternate Function mapping */
1074
#define GPIO_AF10_OTG_HS ((uint8_t)0x0A)
/* OTG_HS Alternate Function mapping */
1075
#define GPIO_AF10_SAI2 ((uint8_t)0x0A)
/* SAI2 Alternate Function mapping */
1076
#define GPIO_AF10_QSPI ((uint8_t)0x0A)
/* QSPI Alternate Function mapping */
1077
1081
#define GPIO_AF11_ETH ((uint8_t)0x0B)
/* ETHERNET Alternate Function mapping */
1082
1086
#define GPIO_AF12_FMC ((uint8_t)0x0C)
/* FMC Alternate Function mapping */
1087
#define GPIO_AF12_OTG_HS_FS ((uint8_t)0x0C)
/* OTG HS configured in FS, Alternate Function mapping */
1088
#define GPIO_AF12_SDIO ((uint8_t)0x0C)
/* SDIO Alternate Function mapping */
1089
1093
#define GPIO_AF13_DCMI ((uint8_t)0x0D)
/* DCMI Alternate Function mapping */
1094
1098
#define GPIO_AF15_EVENTOUT ((uint8_t)0x0F)
/* EVENTOUT Alternate Function mapping */
1099
1100
#endif
/* STM32F446xx */
1101
/*----------------------------------------------------------------------------*/
1102
1103
/*-------------------------------- STM32F469xx/STM32F479xx--------------------*/
1104
#if defined(STM32F469xx) || defined(STM32F479xx)
1108
#define GPIO_AF0_RTC_50Hz ((uint8_t)0x00)
/* RTC_50Hz Alternate Function mapping */
1109
#define GPIO_AF0_MCO ((uint8_t)0x00)
/* MCO (MCO1 and MCO2) Alternate Function mapping */
1110
#define GPIO_AF0_TAMPER ((uint8_t)0x00)
/* TAMPER (TAMPER_1 and TAMPER_2) Alternate Function mapping */
1111
#define GPIO_AF0_SWJ ((uint8_t)0x00)
/* SWJ (SWD and JTAG) Alternate Function mapping */
1112
#define GPIO_AF0_TRACE ((uint8_t)0x00)
/* TRACE Alternate Function mapping */
1113
1117
#define GPIO_AF1_TIM1 ((uint8_t)0x01)
/* TIM1 Alternate Function mapping */
1118
#define GPIO_AF1_TIM2 ((uint8_t)0x01)
/* TIM2 Alternate Function mapping */
1119
1123
#define GPIO_AF2_TIM3 ((uint8_t)0x02)
/* TIM3 Alternate Function mapping */
1124
#define GPIO_AF2_TIM4 ((uint8_t)0x02)
/* TIM4 Alternate Function mapping */
1125
#define GPIO_AF2_TIM5 ((uint8_t)0x02)
/* TIM5 Alternate Function mapping */
1126
1130
#define GPIO_AF3_TIM8 ((uint8_t)0x03)
/* TIM8 Alternate Function mapping */
1131
#define GPIO_AF3_TIM9 ((uint8_t)0x03)
/* TIM9 Alternate Function mapping */
1132
#define GPIO_AF3_TIM10 ((uint8_t)0x03)
/* TIM10 Alternate Function mapping */
1133
#define GPIO_AF3_TIM11 ((uint8_t)0x03)
/* TIM11 Alternate Function mapping */
1134
1138
#define GPIO_AF4_I2C1 ((uint8_t)0x04)
/* I2C1 Alternate Function mapping */
1139
#define GPIO_AF4_I2C2 ((uint8_t)0x04)
/* I2C2 Alternate Function mapping */
1140
#define GPIO_AF4_I2C3 ((uint8_t)0x04)
/* I2C3 Alternate Function mapping */
1141
1145
#define GPIO_AF5_SPI1 ((uint8_t)0x05)
/* SPI1 Alternate Function mapping */
1146
#define GPIO_AF5_SPI2 ((uint8_t)0x05)
/* SPI2/I2S2 Alternate Function mapping */
1147
#define GPIO_AF5_SPI3 ((uint8_t)0x05)
/* SPI3/I2S3 Alternate Function mapping */
1148
#define GPIO_AF5_SPI4 ((uint8_t)0x05)
/* SPI4 Alternate Function mapping */
1149
#define GPIO_AF5_SPI5 ((uint8_t)0x05)
/* SPI5 Alternate Function mapping */
1150
#define GPIO_AF5_SPI6 ((uint8_t)0x05)
/* SPI6 Alternate Function mapping */
1151
#define GPIO_AF5_I2S3ext ((uint8_t)0x05)
/* I2S3ext_SD Alternate Function mapping */
1152
1156
#define GPIO_AF6_SPI3 ((uint8_t)0x06)
/* SPI3/I2S3 Alternate Function mapping */
1157
#define GPIO_AF6_I2S2ext ((uint8_t)0x06)
/* I2S2ext_SD Alternate Function mapping */
1158
#define GPIO_AF6_SAI1 ((uint8_t)0x06)
/* SAI1 Alternate Function mapping */
1159
1163
#define GPIO_AF7_USART1 ((uint8_t)0x07)
/* USART1 Alternate Function mapping */
1164
#define GPIO_AF7_USART2 ((uint8_t)0x07)
/* USART2 Alternate Function mapping */
1165
#define GPIO_AF7_USART3 ((uint8_t)0x07)
/* USART3 Alternate Function mapping */
1166
#define GPIO_AF7_I2S3ext ((uint8_t)0x07)
/* I2S3ext_SD Alternate Function mapping */
1167
1171
#define GPIO_AF8_UART4 ((uint8_t)0x08)
/* UART4 Alternate Function mapping */
1172
#define GPIO_AF8_UART5 ((uint8_t)0x08)
/* UART5 Alternate Function mapping */
1173
#define GPIO_AF8_USART6 ((uint8_t)0x08)
/* USART6 Alternate Function mapping */
1174
#define GPIO_AF8_UART7 ((uint8_t)0x08)
/* UART7 Alternate Function mapping */
1175
#define GPIO_AF8_UART8 ((uint8_t)0x08)
/* UART8 Alternate Function mapping */
1176
1180
#define GPIO_AF9_CAN1 ((uint8_t)0x09)
/* CAN1 Alternate Function mapping */
1181
#define GPIO_AF9_CAN2 ((uint8_t)0x09)
/* CAN2 Alternate Function mapping */
1182
#define GPIO_AF9_TIM12 ((uint8_t)0x09)
/* TIM12 Alternate Function mapping */
1183
#define GPIO_AF9_TIM13 ((uint8_t)0x09)
/* TIM13 Alternate Function mapping */
1184
#define GPIO_AF9_TIM14 ((uint8_t)0x09)
/* TIM14 Alternate Function mapping */
1185
#define GPIO_AF9_LTDC ((uint8_t)0x09)
/* LCD-TFT Alternate Function mapping */
1186
#define GPIO_AF9_QSPI ((uint8_t)0x09)
/* QSPI Alternate Function mapping */
1187
1191
#define GPIO_AF10_OTG_FS ((uint8_t)0x0A)
/* OTG_FS Alternate Function mapping */
1192
#define GPIO_AF10_OTG_HS ((uint8_t)0x0A)
/* OTG_HS Alternate Function mapping */
1193
#define GPIO_AF10_QSPI ((uint8_t)0x0A)
/* QSPI Alternate Function mapping */
1194
1198
#define GPIO_AF11_ETH ((uint8_t)0x0B)
/* ETHERNET Alternate Function mapping */
1199
1203
#define GPIO_AF12_FMC ((uint8_t)0x0C)
/* FMC Alternate Function mapping */
1204
#define GPIO_AF12_OTG_HS_FS ((uint8_t)0x0C)
/* OTG HS configured in FS, Alternate Function mapping */
1205
#define GPIO_AF12_SDIO ((uint8_t)0x0C)
/* SDIO Alternate Function mapping */
1206
1210
#define GPIO_AF13_DCMI ((uint8_t)0x0D)
/* DCMI Alternate Function mapping */
1211
#define GPIO_AF13_DSI ((uint8_t)0x0D)
/* DSI Alternate Function mapping */
1212
1216
#define GPIO_AF14_LTDC ((uint8_t)0x0E)
/* LCD-TFT Alternate Function mapping */
1217
1221
#define GPIO_AF15_EVENTOUT ((uint8_t)0x0F)
/* EVENTOUT Alternate Function mapping */
1222
1223
#endif
/* STM32F469xx || STM32F479xx */
1224
/*----------------------------------------------------------------------------*/
1233
/* Exported macro ------------------------------------------------------------*/
1241
/* Exported functions --------------------------------------------------------*/
1249
/* Private types -------------------------------------------------------------*/
1250
/* Private variables ---------------------------------------------------------*/
1251
/* Private constants ---------------------------------------------------------*/
1259
/* Private macros ------------------------------------------------------------*/
1266
#if defined(STM32F405xx) || defined(STM32F415xx) || defined(STM32F407xx) || defined(STM32F417xx)
1267
#define GPIO_GET_INDEX(__GPIOx__) (uint8_t)(((__GPIOx__) == (GPIOA))? 0U :\
1268
((__GPIOx__) == (GPIOB))? 1U :\
1269
((__GPIOx__) == (GPIOC))? 2U :\
1270
((__GPIOx__) == (GPIOD))? 3U :\
1271
((__GPIOx__) == (GPIOE))? 4U :\
1272
((__GPIOx__) == (GPIOF))? 5U :\
1273
((__GPIOx__) == (GPIOG))? 6U :\
1274
((__GPIOx__) == (GPIOH))? 7U : 8U)
1275
#endif
/* STM32F405xx || STM32F415xx || STM32F407xx || STM32F417xx */
1276
1277
#if defined(STM32F427xx) || defined(STM32F437xx) || defined(STM32F429xx) || defined(STM32F439xx) ||\
1278
defined(STM32F469xx) || defined(STM32F479xx)
1279
#define GPIO_GET_INDEX(__GPIOx__) (uint8_t)(((__GPIOx__) == (GPIOA))? 0U :\
1280
((__GPIOx__) == (GPIOB))? 1U :\
1281
((__GPIOx__) == (GPIOC))? 2U :\
1282
((__GPIOx__) == (GPIOD))? 3U :\
1283
((__GPIOx__) == (GPIOE))? 4U :\
1284
((__GPIOx__) == (GPIOF))? 5U :\
1285
((__GPIOx__) == (GPIOG))? 6U :\
1286
((__GPIOx__) == (GPIOH))? 7U :\
1287
((__GPIOx__) == (GPIOI))? 8U :\
1288
((__GPIOx__) == (GPIOJ))? 9U : 10U)
1289
#endif
/* STM32F427xx || STM32F437xx || STM32F429xx || STM32F439xx || STM32F469xx || STM32F479xx */
1290
1291
#if defined(STM32F410Tx) || defined(STM32F410Cx) || defined(STM32F410Rx)
1292
#define GPIO_GET_INDEX(__GPIOx__) (uint8_t)(((__GPIOx__) == (GPIOA))? 0U :\
1293
((__GPIOx__) == (GPIOB))? 1U :\
1294
((__GPIOx__) == (GPIOC))? 2U : 7U)
1295
#endif
/* STM32F410Tx || STM32F410Cx || STM32F410Rx */
1296
1297
#if defined(STM32F401xC) || defined(STM32F401xE) || defined(STM32F411xE)
1298
#define GPIO_GET_INDEX(__GPIOx__) (uint8_t)(((__GPIOx__) == (GPIOA))? 0U :\
1299
((__GPIOx__) == (GPIOB))? 1U :\
1300
((__GPIOx__) == (GPIOC))? 2U :\
1301
((__GPIOx__) == (GPIOD))? 3U :\
1302
((__GPIOx__) == (GPIOE))? 4U : 7U)
1303
#endif
/* STM32F401xC || STM32F401xE || STM32F411xE */
1304
1305
#if defined(STM32F446xx) || defined(STM32F412Zx) || defined(STM32F413xx) || defined(STM32F423xx)
1306
#define GPIO_GET_INDEX(__GPIOx__) (uint8_t)(((__GPIOx__) == (GPIOA))? 0U :\
1307
((__GPIOx__) == (GPIOB))? 1U :\
1308
((__GPIOx__) == (GPIOC))? 2U :\
1309
((__GPIOx__) == (GPIOD))? 3U :\
1310
((__GPIOx__) == (GPIOE))? 4U :\
1311
((__GPIOx__) == (GPIOF))? 5U :\
1312
((__GPIOx__) == (GPIOG))? 6U : 7U)
1313
#endif
/* STM32F446xx || STM32F412Zx || STM32F413xx || STM32F423xx */
1314
#if defined(STM32F412Vx)
1315
#define GPIO_GET_INDEX(__GPIOx__) (uint8_t)(((__GPIOx__) == (GPIOA))? 0U :\
1316
((__GPIOx__) == (GPIOB))? 1U :\
1317
((__GPIOx__) == (GPIOC))? 2U :\
1318
((__GPIOx__) == (GPIOD))? 3U :\
1319
((__GPIOx__) == (GPIOE))? 4U : 7U)
1320
#endif
/* STM32F412Vx */
1321
#if defined(STM32F412Rx)
1322
#define GPIO_GET_INDEX(__GPIOx__) (uint8_t)(((__GPIOx__) == (GPIOA))? 0U :\
1323
((__GPIOx__) == (GPIOB))? 1U :\
1324
((__GPIOx__) == (GPIOC))? 2U :\
1325
((__GPIOx__) == (GPIOD))? 3U : 7U)
1326
#endif
/* STM32F412Rx */
1327
#if defined(STM32F412Cx)
1328
#define GPIO_GET_INDEX(__GPIOx__) (uint8_t)(((__GPIOx__) == (GPIOA))? 0U :\
1329
((__GPIOx__) == (GPIOB))? 1U :\
1330
((__GPIOx__) == (GPIOC))? 2U : 7U)
1331
#endif
/* STM32F412Cx */
1332
1340
/*------------------------- STM32F429xx/STM32F439xx---------------------------*/
1341
#if defined(STM32F429xx) || defined(STM32F439xx)
1342
#define IS_GPIO_AF(AF) (((AF) == GPIO_AF0_RTC_50Hz) || ((AF) == GPIO_AF9_TIM14) || \
1343
((AF) == GPIO_AF0_MCO) || ((AF) == GPIO_AF0_TAMPER) || \
1344
((AF) == GPIO_AF0_SWJ) || ((AF) == GPIO_AF0_TRACE) || \
1345
((AF) == GPIO_AF1_TIM1) || ((AF) == GPIO_AF1_TIM2) || \
1346
((AF) == GPIO_AF2_TIM3) || ((AF) == GPIO_AF2_TIM4) || \
1347
((AF) == GPIO_AF2_TIM5) || ((AF) == GPIO_AF3_TIM8) || \
1348
((AF) == GPIO_AF4_I2C1) || ((AF) == GPIO_AF4_I2C2) || \
1349
((AF) == GPIO_AF4_I2C3) || ((AF) == GPIO_AF5_SPI1) || \
1350
((AF) == GPIO_AF5_SPI2) || ((AF) == GPIO_AF9_TIM13) || \
1351
((AF) == GPIO_AF6_SPI3) || ((AF) == GPIO_AF9_TIM12) || \
1352
((AF) == GPIO_AF7_USART1) || ((AF) == GPIO_AF7_USART2) || \
1353
((AF) == GPIO_AF7_USART3) || ((AF) == GPIO_AF8_UART4) || \
1354
((AF) == GPIO_AF8_UART5) || ((AF) == GPIO_AF8_USART6) || \
1355
((AF) == GPIO_AF9_CAN1) || ((AF) == GPIO_AF9_CAN2) || \
1356
((AF) == GPIO_AF10_OTG_FS) || ((AF) == GPIO_AF10_OTG_HS) || \
1357
((AF) == GPIO_AF11_ETH) || ((AF) == GPIO_AF12_OTG_HS_FS) || \
1358
((AF) == GPIO_AF12_SDIO) || ((AF) == GPIO_AF13_DCMI) || \
1359
((AF) == GPIO_AF15_EVENTOUT) || ((AF) == GPIO_AF5_SPI4) || \
1360
((AF) == GPIO_AF5_SPI5) || ((AF) == GPIO_AF5_SPI6) || \
1361
((AF) == GPIO_AF8_UART7) || ((AF) == GPIO_AF8_UART8) || \
1362
((AF) == GPIO_AF12_FMC) || ((AF) == GPIO_AF6_SAI1) || \
1363
((AF) == GPIO_AF14_LTDC))
1364
1365
#endif
/* STM32F429xx || STM32F439xx */
1366
/*----------------------------------------------------------------------------*/
1367
1368
/*---------------------------------- STM32F427xx/STM32F437xx------------------*/
1369
#if defined(STM32F427xx) || defined(STM32F437xx)
1370
#define IS_GPIO_AF(AF) (((AF) == GPIO_AF0_RTC_50Hz) || ((AF) == GPIO_AF9_TIM14) || \
1371
((AF) == GPIO_AF0_MCO) || ((AF) == GPIO_AF0_TAMPER) || \
1372
((AF) == GPIO_AF0_SWJ) || ((AF) == GPIO_AF0_TRACE) || \
1373
((AF) == GPIO_AF1_TIM1) || ((AF) == GPIO_AF1_TIM2) || \
1374
((AF) == GPIO_AF2_TIM3) || ((AF) == GPIO_AF2_TIM4) || \
1375
((AF) == GPIO_AF2_TIM5) || ((AF) == GPIO_AF3_TIM8) || \
1376
((AF) == GPIO_AF4_I2C1) || ((AF) == GPIO_AF4_I2C2) || \
1377
((AF) == GPIO_AF4_I2C3) || ((AF) == GPIO_AF5_SPI1) || \
1378
((AF) == GPIO_AF5_SPI2) || ((AF) == GPIO_AF9_TIM13) || \
1379
((AF) == GPIO_AF6_SPI3) || ((AF) == GPIO_AF9_TIM12) || \
1380
((AF) == GPIO_AF7_USART1) || ((AF) == GPIO_AF7_USART2) || \
1381
((AF) == GPIO_AF7_USART3) || ((AF) == GPIO_AF8_UART4) || \
1382
((AF) == GPIO_AF8_UART5) || ((AF) == GPIO_AF8_USART6) || \
1383
((AF) == GPIO_AF9_CAN1) || ((AF) == GPIO_AF9_CAN2) || \
1384
((AF) == GPIO_AF10_OTG_FS) || ((AF) == GPIO_AF10_OTG_HS) || \
1385
((AF) == GPIO_AF11_ETH) || ((AF) == GPIO_AF12_OTG_HS_FS) || \
1386
((AF) == GPIO_AF12_SDIO) || ((AF) == GPIO_AF13_DCMI) || \
1387
((AF) == GPIO_AF15_EVENTOUT) || ((AF) == GPIO_AF5_SPI4) || \
1388
((AF) == GPIO_AF5_SPI5) || ((AF) == GPIO_AF5_SPI6) || \
1389
((AF) == GPIO_AF8_UART7) || ((AF) == GPIO_AF8_UART8) || \
1390
((AF) == GPIO_AF12_FMC) || ((AF) == GPIO_AF6_SAI1))
1391
1392
#endif
/* STM32F427xx || STM32F437xx */
1393
/*----------------------------------------------------------------------------*/
1394
1395
/*---------------------------------- STM32F407xx/STM32F417xx------------------*/
1396
#if defined(STM32F407xx) || defined(STM32F417xx)
1397
#define IS_GPIO_AF(AF) (((AF) == GPIO_AF0_RTC_50Hz) || ((AF) == GPIO_AF9_TIM14) || \
1398
((AF) == GPIO_AF0_MCO) || ((AF) == GPIO_AF0_TAMPER) || \
1399
((AF) == GPIO_AF0_SWJ) || ((AF) == GPIO_AF0_TRACE) || \
1400
((AF) == GPIO_AF1_TIM1) || ((AF) == GPIO_AF1_TIM2) || \
1401
((AF) == GPIO_AF2_TIM3) || ((AF) == GPIO_AF2_TIM4) || \
1402
((AF) == GPIO_AF2_TIM5) || ((AF) == GPIO_AF3_TIM8) || \
1403
((AF) == GPIO_AF4_I2C1) || ((AF) == GPIO_AF4_I2C2) || \
1404
((AF) == GPIO_AF4_I2C3) || ((AF) == GPIO_AF5_SPI1) || \
1405
((AF) == GPIO_AF5_SPI2) || ((AF) == GPIO_AF9_TIM13) || \
1406
((AF) == GPIO_AF6_SPI3) || ((AF) == GPIO_AF9_TIM12) || \
1407
((AF) == GPIO_AF7_USART1) || ((AF) == GPIO_AF7_USART2) || \
1408
((AF) == GPIO_AF7_USART3) || ((AF) == GPIO_AF8_UART4) || \
1409
((AF) == GPIO_AF8_UART5) || ((AF) == GPIO_AF8_USART6) || \
1410
((AF) == GPIO_AF9_CAN1) || ((AF) == GPIO_AF9_CAN2) || \
1411
((AF) == GPIO_AF10_OTG_FS) || ((AF) == GPIO_AF10_OTG_HS) || \
1412
((AF) == GPIO_AF11_ETH) || ((AF) == GPIO_AF12_OTG_HS_FS) || \
1413
((AF) == GPIO_AF12_SDIO) || ((AF) == GPIO_AF13_DCMI) || \
1414
((AF) == GPIO_AF12_FSMC) || ((AF) == GPIO_AF15_EVENTOUT))
1415
1416
#endif
/* STM32F407xx || STM32F417xx */
1417
/*----------------------------------------------------------------------------*/
1418
1419
/*---------------------------------- STM32F405xx/STM32F415xx------------------*/
1420
#if defined(STM32F405xx) || defined(STM32F415xx)
1421
#define IS_GPIO_AF(AF) (((AF) == GPIO_AF0_RTC_50Hz) || ((AF) == GPIO_AF9_TIM14) || \
1422
((AF) == GPIO_AF0_MCO) || ((AF) == GPIO_AF0_TAMPER) || \
1423
((AF) == GPIO_AF0_SWJ) || ((AF) == GPIO_AF0_TRACE) || \
1424
((AF) == GPIO_AF1_TIM1) || ((AF) == GPIO_AF1_TIM2) || \
1425
((AF) == GPIO_AF2_TIM3) || ((AF) == GPIO_AF2_TIM4) || \
1426
((AF) == GPIO_AF2_TIM5) || ((AF) == GPIO_AF3_TIM8) || \
1427
((AF) == GPIO_AF4_I2C1) || ((AF) == GPIO_AF4_I2C2) || \
1428
((AF) == GPIO_AF4_I2C3) || ((AF) == GPIO_AF5_SPI1) || \
1429
((AF) == GPIO_AF5_SPI2) || ((AF) == GPIO_AF9_TIM13) || \
1430
((AF) == GPIO_AF6_SPI3) || ((AF) == GPIO_AF9_TIM12) || \
1431
((AF) == GPIO_AF7_USART1) || ((AF) == GPIO_AF7_USART2) || \
1432
((AF) == GPIO_AF7_USART3) || ((AF) == GPIO_AF8_UART4) || \
1433
((AF) == GPIO_AF8_UART5) || ((AF) == GPIO_AF8_USART6) || \
1434
((AF) == GPIO_AF9_CAN1) || ((AF) == GPIO_AF9_CAN2) || \
1435
((AF) == GPIO_AF10_OTG_FS) || ((AF) == GPIO_AF10_OTG_HS) || \
1436
((AF) == GPIO_AF12_OTG_HS_FS) || ((AF) == GPIO_AF12_SDIO) || \
1437
((AF) == GPIO_AF12_FSMC) || ((AF) == GPIO_AF15_EVENTOUT))
1438
1439
#endif
/* STM32F405xx || STM32F415xx */
1440
1441
/*----------------------------------------------------------------------------*/
1442
1443
/*---------------------------------------- STM32F401xx------------------------*/
1444
#if defined(STM32F401xC) || defined(STM32F401xE)
1445
#define IS_GPIO_AF(AF) (((AF) == GPIO_AF0_RTC_50Hz) || ((AF) == GPIO_AF12_SDIO) || \
1446
((AF) == GPIO_AF0_MCO) || ((AF) == GPIO_AF0_TAMPER) || \
1447
((AF) == GPIO_AF0_SWJ) || ((AF) == GPIO_AF0_TRACE) || \
1448
((AF) == GPIO_AF1_TIM1) || ((AF) == GPIO_AF1_TIM2) || \
1449
((AF) == GPIO_AF2_TIM3) || ((AF) == GPIO_AF2_TIM4) || \
1450
((AF) == GPIO_AF2_TIM5) || ((AF) == GPIO_AF3_TIM9) || \
1451
((AF) == GPIO_AF3_TIM10) || ((AF) == GPIO_AF3_TIM11) || \
1452
((AF) == GPIO_AF4_I2C1) || ((AF) == GPIO_AF4_I2C2) || \
1453
((AF) == GPIO_AF4_I2C3) || ((AF) == GPIO_AF5_SPI1) || \
1454
((AF) == GPIO_AF5_SPI2) || ((AF) == GPIO_AF5_SPI4) || \
1455
((AF) == GPIO_AF6_SPI3) || ((AF) == GPIO_AF7_USART1) || \
1456
((AF) == GPIO_AF7_USART2) || ((AF) == GPIO_AF8_USART6) || \
1457
((AF) == GPIO_AF9_I2C2) || ((AF) == GPIO_AF9_I2C3) || \
1458
((AF) == GPIO_AF10_OTG_FS) || ((AF) == GPIO_AF15_EVENTOUT))
1459
#endif
/* STM32F401xC || STM32F401xE */
1460
/*----------------------------------------------------------------------------*/
1461
/*---------------------------------------- STM32F410xx------------------------*/
1462
#if defined(STM32F410Tx) || defined(STM32F410Cx) || defined(STM32F410Rx)
1463
#define IS_GPIO_AF(AF) (((AF) < 10U) || ((AF) == 15U))
1464
#endif
/* STM32F410Tx || STM32F410Cx || STM32F410Rx */
1465
1466
/*---------------------------------------- STM32F411xx------------------------*/
1467
#if defined(STM32F411xE)
1468
#define IS_GPIO_AF(AF) (((AF) == GPIO_AF0_RTC_50Hz) || ((AF) == GPIO_AF9_TIM14) || \
1469
((AF) == GPIO_AF0_MCO) || ((AF) == GPIO_AF0_TAMPER) || \
1470
((AF) == GPIO_AF0_SWJ) || ((AF) == GPIO_AF0_TRACE) || \
1471
((AF) == GPIO_AF1_TIM1) || ((AF) == GPIO_AF1_TIM2) || \
1472
((AF) == GPIO_AF2_TIM3) || ((AF) == GPIO_AF2_TIM4) || \
1473
((AF) == GPIO_AF2_TIM5) || ((AF) == GPIO_AF4_I2C1) || \
1474
((AF) == GPIO_AF4_I2C2) || ((AF) == GPIO_AF4_I2C3) || \
1475
((AF) == GPIO_AF5_SPI1) || ((AF) == GPIO_AF5_SPI2) || \
1476
((AF) == GPIO_AF5_SPI3) || ((AF) == GPIO_AF6_SPI4) || \
1477
((AF) == GPIO_AF6_SPI3) || ((AF) == GPIO_AF5_SPI4) || \
1478
((AF) == GPIO_AF6_SPI5) || ((AF) == GPIO_AF7_SPI3) || \
1479
((AF) == GPIO_AF7_USART1) || ((AF) == GPIO_AF7_USART2) || \
1480
((AF) == GPIO_AF8_USART6) || ((AF) == GPIO_AF10_OTG_FS) || \
1481
((AF) == GPIO_AF9_I2C2) || ((AF) == GPIO_AF9_I2C3) || \
1482
((AF) == GPIO_AF12_SDIO) || ((AF) == GPIO_AF15_EVENTOUT))
1483
1484
#endif
/* STM32F411xE */
1485
/*----------------------------------------------------------------------------*/
1486
1487
/*----------------------------------------------- STM32F446xx ----------------*/
1488
#if defined(STM32F446xx)
1489
#define IS_GPIO_AF(AF) (((AF) == GPIO_AF0_RTC_50Hz) || ((AF) == GPIO_AF9_TIM14) || \
1490
((AF) == GPIO_AF0_MCO) || ((AF) == GPIO_AF0_TAMPER) || \
1491
((AF) == GPIO_AF0_SWJ) || ((AF) == GPIO_AF0_TRACE) || \
1492
((AF) == GPIO_AF1_TIM1) || ((AF) == GPIO_AF1_TIM2) || \
1493
((AF) == GPIO_AF2_TIM3) || ((AF) == GPIO_AF2_TIM4) || \
1494
((AF) == GPIO_AF2_TIM5) || ((AF) == GPIO_AF3_TIM8) || \
1495
((AF) == GPIO_AF4_I2C1) || ((AF) == GPIO_AF4_I2C2) || \
1496
((AF) == GPIO_AF4_I2C3) || ((AF) == GPIO_AF5_SPI1) || \
1497
((AF) == GPIO_AF5_SPI2) || ((AF) == GPIO_AF9_TIM13) || \
1498
((AF) == GPIO_AF6_SPI3) || ((AF) == GPIO_AF9_TIM12) || \
1499
((AF) == GPIO_AF7_USART1) || ((AF) == GPIO_AF7_USART2) || \
1500
((AF) == GPIO_AF7_USART3) || ((AF) == GPIO_AF8_UART4) || \
1501
((AF) == GPIO_AF8_UART5) || ((AF) == GPIO_AF8_USART6) || \
1502
((AF) == GPIO_AF9_CAN1) || ((AF) == GPIO_AF9_CAN2) || \
1503
((AF) == GPIO_AF10_OTG_FS) || ((AF) == GPIO_AF10_OTG_HS) || \
1504
((AF) == GPIO_AF11_ETH) || ((AF) == GPIO_AF12_OTG_HS_FS) || \
1505
((AF) == GPIO_AF12_SDIO) || ((AF) == GPIO_AF13_DCMI) || \
1506
((AF) == GPIO_AF15_EVENTOUT) || ((AF) == GPIO_AF5_SPI4) || \
1507
((AF) == GPIO_AF12_FMC) || ((AF) == GPIO_AF6_SAI1) || \
1508
((AF) == GPIO_AF3_CEC) || ((AF) == GPIO_AF4_CEC) || \
1509
((AF) == GPIO_AF5_SPI3) || ((AF) == GPIO_AF6_SPI2) || \
1510
((AF) == GPIO_AF6_SPI4) || ((AF) == GPIO_AF7_UART5) || \
1511
((AF) == GPIO_AF7_SPI2) || ((AF) == GPIO_AF7_SPI3) || \
1512
((AF) == GPIO_AF7_SPDIFRX) || ((AF) == GPIO_AF8_SPDIFRX) || \
1513
((AF) == GPIO_AF8_SAI2) || ((AF) == GPIO_AF9_QSPI) || \
1514
((AF) == GPIO_AF10_SAI2) || ((AF) == GPIO_AF10_QSPI))
1515
1516
#endif
/* STM32F446xx */
1517
/*----------------------------------------------------------------------------*/
1518
1519
/*------------------------------------------- STM32F469xx/STM32F479xx --------*/
1520
#if defined(STM32F469xx) || defined(STM32F479xx)
1521
#define IS_GPIO_AF(AF) (((AF) == GPIO_AF0_RTC_50Hz) || ((AF) == GPIO_AF9_TIM14) || \
1522
((AF) == GPIO_AF0_MCO) || ((AF) == GPIO_AF0_TAMPER) || \
1523
((AF) == GPIO_AF0_SWJ) || ((AF) == GPIO_AF0_TRACE) || \
1524
((AF) == GPIO_AF1_TIM1) || ((AF) == GPIO_AF1_TIM2) || \
1525
((AF) == GPIO_AF2_TIM3) || ((AF) == GPIO_AF2_TIM4) || \
1526
((AF) == GPIO_AF2_TIM5) || ((AF) == GPIO_AF3_TIM8) || \
1527
((AF) == GPIO_AF4_I2C1) || ((AF) == GPIO_AF4_I2C2) || \
1528
((AF) == GPIO_AF4_I2C3) || ((AF) == GPIO_AF5_SPI1) || \
1529
((AF) == GPIO_AF5_SPI2) || ((AF) == GPIO_AF9_TIM13) || \
1530
((AF) == GPIO_AF6_SPI3) || ((AF) == GPIO_AF9_TIM12) || \
1531
((AF) == GPIO_AF7_USART1) || ((AF) == GPIO_AF7_USART2) || \
1532
((AF) == GPIO_AF7_USART3) || ((AF) == GPIO_AF8_UART4) || \
1533
((AF) == GPIO_AF8_UART5) || ((AF) == GPIO_AF8_USART6) || \
1534
((AF) == GPIO_AF9_CAN1) || ((AF) == GPIO_AF9_CAN2) || \
1535
((AF) == GPIO_AF10_OTG_FS) || ((AF) == GPIO_AF10_OTG_HS) || \
1536
((AF) == GPIO_AF11_ETH) || ((AF) == GPIO_AF12_OTG_HS_FS) || \
1537
((AF) == GPIO_AF12_SDIO) || ((AF) == GPIO_AF13_DCMI) || \
1538
((AF) == GPIO_AF15_EVENTOUT) || ((AF) == GPIO_AF5_SPI4) || \
1539
((AF) == GPIO_AF5_SPI5) || ((AF) == GPIO_AF5_SPI6) || \
1540
((AF) == GPIO_AF8_UART7) || ((AF) == GPIO_AF8_UART8) || \
1541
((AF) == GPIO_AF12_FMC) || ((AF) == GPIO_AF6_SAI1) || \
1542
((AF) == GPIO_AF14_LTDC) || ((AF) == GPIO_AF13_DSI) || \
1543
((AF) == GPIO_AF9_QSPI) || ((AF) == GPIO_AF10_QSPI))
1544
1545
#endif
/* STM32F469xx || STM32F479xx */
1546
/*----------------------------------------------------------------------------*/
1547
1548
/*------------------STM32F412Zx/STM32F412Vx/STM32F412Rx/STM32F412Cx-----------*/
1549
#if defined(STM32F412Zx) || defined(STM32F412Vx) || defined(STM32F412Rx) || defined(STM32F412Cx)
1550
#define IS_GPIO_AF(AF) (((AF) < 16U) && ((AF) != 11U) && ((AF) != 14U) && ((AF) != 13U))
1551
#endif
/* STM32F412Zx || STM32F412Vx || STM32F412Rx || STM32F412Cx */
1552
/*----------------------------------------------------------------------------*/
1553
1554
/*------------------STM32F413xx/STM32F423xx-----------------------------------*/
1555
#if defined(STM32F413xx) || defined(STM32F423xx)
1556
#define IS_GPIO_AF(AF) (((AF) < 16U) && ((AF) != 13U))
1557
#endif
/* STM32F413xx || STM32F423xx */
1558
/*----------------------------------------------------------------------------*/
1559
1568
/* Private functions ---------------------------------------------------------*/
1585
#ifdef __cplusplus
1586
}
1587
#endif
1588
1589
#endif
/* __STM32F4xx_HAL_GPIO_EX_H */
1590
stm32f4xx_hal_def.h
This file contains HAL common defines, enumeration, macros and structures definitions.