extern
porcupine
demo
mcu
stm32f411
stm32f411e-disco
Drivers
STM32F4xx_HAL_Driver
Inc
stm32f411/stm32f411e-disco/Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_gpio_ex.h
Go to the documentation of this file.
1
20
/* Define to prevent recursive inclusion -------------------------------------*/
21
#ifndef __STM32F4xx_HAL_GPIO_EX_H
22
#define __STM32F4xx_HAL_GPIO_EX_H
23
24
#ifdef __cplusplus
25
extern
"C"
{
26
#endif
27
28
/* Includes ------------------------------------------------------------------*/
29
#include "
stm32f4xx_hal_def.h
"
30
39
/* Exported types ------------------------------------------------------------*/
40
/* Exported constants --------------------------------------------------------*/
49
/*------------------------------------------ STM32F429xx/STM32F439xx ---------*/
50
#if defined(STM32F429xx) || defined(STM32F439xx)
51
54
#define GPIO_AF0_RTC_50Hz ((uint8_t)0x00)
/* RTC_50Hz Alternate Function mapping */
55
#define GPIO_AF0_MCO ((uint8_t)0x00)
/* MCO (MCO1 and MCO2) Alternate Function mapping */
56
#define GPIO_AF0_TAMPER ((uint8_t)0x00)
/* TAMPER (TAMPER_1 and TAMPER_2) Alternate Function mapping */
57
#define GPIO_AF0_SWJ ((uint8_t)0x00)
/* SWJ (SWD and JTAG) Alternate Function mapping */
58
#define GPIO_AF0_TRACE ((uint8_t)0x00)
/* TRACE Alternate Function mapping */
59
63
#define GPIO_AF1_TIM1 ((uint8_t)0x01)
/* TIM1 Alternate Function mapping */
64
#define GPIO_AF1_TIM2 ((uint8_t)0x01)
/* TIM2 Alternate Function mapping */
65
69
#define GPIO_AF2_TIM3 ((uint8_t)0x02)
/* TIM3 Alternate Function mapping */
70
#define GPIO_AF2_TIM4 ((uint8_t)0x02)
/* TIM4 Alternate Function mapping */
71
#define GPIO_AF2_TIM5 ((uint8_t)0x02)
/* TIM5 Alternate Function mapping */
72
76
#define GPIO_AF3_TIM8 ((uint8_t)0x03)
/* TIM8 Alternate Function mapping */
77
#define GPIO_AF3_TIM9 ((uint8_t)0x03)
/* TIM9 Alternate Function mapping */
78
#define GPIO_AF3_TIM10 ((uint8_t)0x03)
/* TIM10 Alternate Function mapping */
79
#define GPIO_AF3_TIM11 ((uint8_t)0x03)
/* TIM11 Alternate Function mapping */
80
84
#define GPIO_AF4_I2C1 ((uint8_t)0x04)
/* I2C1 Alternate Function mapping */
85
#define GPIO_AF4_I2C2 ((uint8_t)0x04)
/* I2C2 Alternate Function mapping */
86
#define GPIO_AF4_I2C3 ((uint8_t)0x04)
/* I2C3 Alternate Function mapping */
87
91
#define GPIO_AF5_SPI1 ((uint8_t)0x05)
/* SPI1 Alternate Function mapping */
92
#define GPIO_AF5_SPI2 ((uint8_t)0x05)
/* SPI2/I2S2 Alternate Function mapping */
93
#define GPIO_AF5_SPI3 ((uint8_t)0x05)
/* SPI3/I2S3 Alternate Function mapping */
94
#define GPIO_AF5_SPI4 ((uint8_t)0x05)
/* SPI4 Alternate Function mapping */
95
#define GPIO_AF5_SPI5 ((uint8_t)0x05)
/* SPI5 Alternate Function mapping */
96
#define GPIO_AF5_SPI6 ((uint8_t)0x05)
/* SPI6 Alternate Function mapping */
97
#define GPIO_AF5_I2S3ext ((uint8_t)0x05)
/* I2S3ext_SD Alternate Function mapping */
98
102
#define GPIO_AF6_SPI3 ((uint8_t)0x06)
/* SPI3/I2S3 Alternate Function mapping */
103
#define GPIO_AF6_I2S2ext ((uint8_t)0x06)
/* I2S2ext_SD Alternate Function mapping */
104
#define GPIO_AF6_SAI1 ((uint8_t)0x06)
/* SAI1 Alternate Function mapping */
105
109
#define GPIO_AF7_USART1 ((uint8_t)0x07)
/* USART1 Alternate Function mapping */
110
#define GPIO_AF7_USART2 ((uint8_t)0x07)
/* USART2 Alternate Function mapping */
111
#define GPIO_AF7_USART3 ((uint8_t)0x07)
/* USART3 Alternate Function mapping */
112
#define GPIO_AF7_I2S3ext ((uint8_t)0x07)
/* I2S3ext_SD Alternate Function mapping */
113
117
#define GPIO_AF8_UART4 ((uint8_t)0x08)
/* UART4 Alternate Function mapping */
118
#define GPIO_AF8_UART5 ((uint8_t)0x08)
/* UART5 Alternate Function mapping */
119
#define GPIO_AF8_USART6 ((uint8_t)0x08)
/* USART6 Alternate Function mapping */
120
#define GPIO_AF8_UART7 ((uint8_t)0x08)
/* UART7 Alternate Function mapping */
121
#define GPIO_AF8_UART8 ((uint8_t)0x08)
/* UART8 Alternate Function mapping */
122
126
#define GPIO_AF9_CAN1 ((uint8_t)0x09)
/* CAN1 Alternate Function mapping */
127
#define GPIO_AF9_CAN2 ((uint8_t)0x09)
/* CAN2 Alternate Function mapping */
128
#define GPIO_AF9_TIM12 ((uint8_t)0x09)
/* TIM12 Alternate Function mapping */
129
#define GPIO_AF9_TIM13 ((uint8_t)0x09)
/* TIM13 Alternate Function mapping */
130
#define GPIO_AF9_TIM14 ((uint8_t)0x09)
/* TIM14 Alternate Function mapping */
131
#define GPIO_AF9_LTDC ((uint8_t)0x09)
/* LCD-TFT Alternate Function mapping */
132
136
#define GPIO_AF10_OTG_FS ((uint8_t)0x0A)
/* OTG_FS Alternate Function mapping */
137
#define GPIO_AF10_OTG_HS ((uint8_t)0x0A)
/* OTG_HS Alternate Function mapping */
138
142
#define GPIO_AF11_ETH ((uint8_t)0x0B)
/* ETHERNET Alternate Function mapping */
143
147
#define GPIO_AF12_FMC ((uint8_t)0x0C)
/* FMC Alternate Function mapping */
148
#define GPIO_AF12_OTG_HS_FS ((uint8_t)0x0C)
/* OTG HS configured in FS, Alternate Function mapping */
149
#define GPIO_AF12_SDIO ((uint8_t)0x0C)
/* SDIO Alternate Function mapping */
150
154
#define GPIO_AF13_DCMI ((uint8_t)0x0D)
/* DCMI Alternate Function mapping */
155
159
#define GPIO_AF14_LTDC ((uint8_t)0x0E)
/* LCD-TFT Alternate Function mapping */
160
164
#define GPIO_AF15_EVENTOUT ((uint8_t)0x0F)
/* EVENTOUT Alternate Function mapping */
165
#endif
/* STM32F429xx || STM32F439xx */
166
/*----------------------------------------------------------------------------*/
167
168
/*---------------------------------- STM32F427xx/STM32F437xx------------------*/
169
#if defined(STM32F427xx) || defined(STM32F437xx)
170
173
#define GPIO_AF0_RTC_50Hz ((uint8_t)0x00)
/* RTC_50Hz Alternate Function mapping */
174
#define GPIO_AF0_MCO ((uint8_t)0x00)
/* MCO (MCO1 and MCO2) Alternate Function mapping */
175
#define GPIO_AF0_TAMPER ((uint8_t)0x00)
/* TAMPER (TAMPER_1 and TAMPER_2) Alternate Function mapping */
176
#define GPIO_AF0_SWJ ((uint8_t)0x00)
/* SWJ (SWD and JTAG) Alternate Function mapping */
177
#define GPIO_AF0_TRACE ((uint8_t)0x00)
/* TRACE Alternate Function mapping */
178
182
#define GPIO_AF1_TIM1 ((uint8_t)0x01)
/* TIM1 Alternate Function mapping */
183
#define GPIO_AF1_TIM2 ((uint8_t)0x01)
/* TIM2 Alternate Function mapping */
184
188
#define GPIO_AF2_TIM3 ((uint8_t)0x02)
/* TIM3 Alternate Function mapping */
189
#define GPIO_AF2_TIM4 ((uint8_t)0x02)
/* TIM4 Alternate Function mapping */
190
#define GPIO_AF2_TIM5 ((uint8_t)0x02)
/* TIM5 Alternate Function mapping */
191
195
#define GPIO_AF3_TIM8 ((uint8_t)0x03)
/* TIM8 Alternate Function mapping */
196
#define GPIO_AF3_TIM9 ((uint8_t)0x03)
/* TIM9 Alternate Function mapping */
197
#define GPIO_AF3_TIM10 ((uint8_t)0x03)
/* TIM10 Alternate Function mapping */
198
#define GPIO_AF3_TIM11 ((uint8_t)0x03)
/* TIM11 Alternate Function mapping */
199
203
#define GPIO_AF4_I2C1 ((uint8_t)0x04)
/* I2C1 Alternate Function mapping */
204
#define GPIO_AF4_I2C2 ((uint8_t)0x04)
/* I2C2 Alternate Function mapping */
205
#define GPIO_AF4_I2C3 ((uint8_t)0x04)
/* I2C3 Alternate Function mapping */
206
210
#define GPIO_AF5_SPI1 ((uint8_t)0x05)
/* SPI1 Alternate Function mapping */
211
#define GPIO_AF5_SPI2 ((uint8_t)0x05)
/* SPI2/I2S2 Alternate Function mapping */
212
#define GPIO_AF5_SPI3 ((uint8_t)0x05)
/* SPI3/I2S3 Alternate Function mapping */
213
#define GPIO_AF5_SPI4 ((uint8_t)0x05)
/* SPI4 Alternate Function mapping */
214
#define GPIO_AF5_SPI5 ((uint8_t)0x05)
/* SPI5 Alternate Function mapping */
215
#define GPIO_AF5_SPI6 ((uint8_t)0x05)
/* SPI6 Alternate Function mapping */
216
218
#define GPIO_AF5_I2S3ext GPIO_AF5_SPI3
/* I2S3ext_SD Alternate Function mapping */
219
223
#define GPIO_AF6_SPI3 ((uint8_t)0x06)
/* SPI3/I2S3 Alternate Function mapping */
224
#define GPIO_AF6_I2S2ext ((uint8_t)0x06)
/* I2S2ext_SD Alternate Function mapping */
225
#define GPIO_AF6_SAI1 ((uint8_t)0x06)
/* SAI1 Alternate Function mapping */
226
230
#define GPIO_AF7_USART1 ((uint8_t)0x07)
/* USART1 Alternate Function mapping */
231
#define GPIO_AF7_USART2 ((uint8_t)0x07)
/* USART2 Alternate Function mapping */
232
#define GPIO_AF7_USART3 ((uint8_t)0x07)
/* USART3 Alternate Function mapping */
233
#define GPIO_AF7_I2S3ext ((uint8_t)0x07)
/* I2S3ext_SD Alternate Function mapping */
234
238
#define GPIO_AF8_UART4 ((uint8_t)0x08)
/* UART4 Alternate Function mapping */
239
#define GPIO_AF8_UART5 ((uint8_t)0x08)
/* UART5 Alternate Function mapping */
240
#define GPIO_AF8_USART6 ((uint8_t)0x08)
/* USART6 Alternate Function mapping */
241
#define GPIO_AF8_UART7 ((uint8_t)0x08)
/* UART7 Alternate Function mapping */
242
#define GPIO_AF8_UART8 ((uint8_t)0x08)
/* UART8 Alternate Function mapping */
243
247
#define GPIO_AF9_CAN1 ((uint8_t)0x09)
/* CAN1 Alternate Function mapping */
248
#define GPIO_AF9_CAN2 ((uint8_t)0x09)
/* CAN2 Alternate Function mapping */
249
#define GPIO_AF9_TIM12 ((uint8_t)0x09)
/* TIM12 Alternate Function mapping */
250
#define GPIO_AF9_TIM13 ((uint8_t)0x09)
/* TIM13 Alternate Function mapping */
251
#define GPIO_AF9_TIM14 ((uint8_t)0x09)
/* TIM14 Alternate Function mapping */
252
256
#define GPIO_AF10_OTG_FS ((uint8_t)0x0A)
/* OTG_FS Alternate Function mapping */
257
#define GPIO_AF10_OTG_HS ((uint8_t)0x0A)
/* OTG_HS Alternate Function mapping */
258
262
#define GPIO_AF11_ETH ((uint8_t)0x0B)
/* ETHERNET Alternate Function mapping */
263
267
#define GPIO_AF12_FMC ((uint8_t)0x0C)
/* FMC Alternate Function mapping */
268
#define GPIO_AF12_OTG_HS_FS ((uint8_t)0x0C)
/* OTG HS configured in FS, Alternate Function mapping */
269
#define GPIO_AF12_SDIO ((uint8_t)0x0C)
/* SDIO Alternate Function mapping */
270
274
#define GPIO_AF13_DCMI ((uint8_t)0x0D)
/* DCMI Alternate Function mapping */
275
279
#define GPIO_AF15_EVENTOUT ((uint8_t)0x0F)
/* EVENTOUT Alternate Function mapping */
280
#endif
/* STM32F427xx || STM32F437xx */
281
/*----------------------------------------------------------------------------*/
282
283
/*---------------------------------- STM32F407xx/STM32F417xx------------------*/
284
#if defined(STM32F407xx) || defined(STM32F417xx)
285
288
#define GPIO_AF0_RTC_50Hz ((uint8_t)0x00)
/* RTC_50Hz Alternate Function mapping */
289
#define GPIO_AF0_MCO ((uint8_t)0x00)
/* MCO (MCO1 and MCO2) Alternate Function mapping */
290
#define GPIO_AF0_TAMPER ((uint8_t)0x00)
/* TAMPER (TAMPER_1 and TAMPER_2) Alternate Function mapping */
291
#define GPIO_AF0_SWJ ((uint8_t)0x00)
/* SWJ (SWD and JTAG) Alternate Function mapping */
292
#define GPIO_AF0_TRACE ((uint8_t)0x00)
/* TRACE Alternate Function mapping */
293
297
#define GPIO_AF1_TIM1 ((uint8_t)0x01)
/* TIM1 Alternate Function mapping */
298
#define GPIO_AF1_TIM2 ((uint8_t)0x01)
/* TIM2 Alternate Function mapping */
299
303
#define GPIO_AF2_TIM3 ((uint8_t)0x02)
/* TIM3 Alternate Function mapping */
304
#define GPIO_AF2_TIM4 ((uint8_t)0x02)
/* TIM4 Alternate Function mapping */
305
#define GPIO_AF2_TIM5 ((uint8_t)0x02)
/* TIM5 Alternate Function mapping */
306
310
#define GPIO_AF3_TIM8 ((uint8_t)0x03)
/* TIM8 Alternate Function mapping */
311
#define GPIO_AF3_TIM9 ((uint8_t)0x03)
/* TIM9 Alternate Function mapping */
312
#define GPIO_AF3_TIM10 ((uint8_t)0x03)
/* TIM10 Alternate Function mapping */
313
#define GPIO_AF3_TIM11 ((uint8_t)0x03)
/* TIM11 Alternate Function mapping */
314
318
#define GPIO_AF4_I2C1 ((uint8_t)0x04)
/* I2C1 Alternate Function mapping */
319
#define GPIO_AF4_I2C2 ((uint8_t)0x04)
/* I2C2 Alternate Function mapping */
320
#define GPIO_AF4_I2C3 ((uint8_t)0x04)
/* I2C3 Alternate Function mapping */
321
325
#define GPIO_AF5_SPI1 ((uint8_t)0x05)
/* SPI1 Alternate Function mapping */
326
#define GPIO_AF5_SPI2 ((uint8_t)0x05)
/* SPI2/I2S2 Alternate Function mapping */
327
#define GPIO_AF5_I2S3ext ((uint8_t)0x05)
/* I2S3ext_SD Alternate Function mapping */
328
332
#define GPIO_AF6_SPI3 ((uint8_t)0x06)
/* SPI3/I2S3 Alternate Function mapping */
333
#define GPIO_AF6_I2S2ext ((uint8_t)0x06)
/* I2S2ext_SD Alternate Function mapping */
334
338
#define GPIO_AF7_USART1 ((uint8_t)0x07)
/* USART1 Alternate Function mapping */
339
#define GPIO_AF7_USART2 ((uint8_t)0x07)
/* USART2 Alternate Function mapping */
340
#define GPIO_AF7_USART3 ((uint8_t)0x07)
/* USART3 Alternate Function mapping */
341
#define GPIO_AF7_I2S3ext ((uint8_t)0x07)
/* I2S3ext_SD Alternate Function mapping */
342
346
#define GPIO_AF8_UART4 ((uint8_t)0x08)
/* UART4 Alternate Function mapping */
347
#define GPIO_AF8_UART5 ((uint8_t)0x08)
/* UART5 Alternate Function mapping */
348
#define GPIO_AF8_USART6 ((uint8_t)0x08)
/* USART6 Alternate Function mapping */
349
353
#define GPIO_AF9_CAN1 ((uint8_t)0x09)
/* CAN1 Alternate Function mapping */
354
#define GPIO_AF9_CAN2 ((uint8_t)0x09)
/* CAN2 Alternate Function mapping */
355
#define GPIO_AF9_TIM12 ((uint8_t)0x09)
/* TIM12 Alternate Function mapping */
356
#define GPIO_AF9_TIM13 ((uint8_t)0x09)
/* TIM13 Alternate Function mapping */
357
#define GPIO_AF9_TIM14 ((uint8_t)0x09)
/* TIM14 Alternate Function mapping */
358
362
#define GPIO_AF10_OTG_FS ((uint8_t)0x0A)
/* OTG_FS Alternate Function mapping */
363
#define GPIO_AF10_OTG_HS ((uint8_t)0x0A)
/* OTG_HS Alternate Function mapping */
364
368
#define GPIO_AF11_ETH ((uint8_t)0x0B)
/* ETHERNET Alternate Function mapping */
369
373
#define GPIO_AF12_FSMC ((uint8_t)0x0C)
/* FSMC Alternate Function mapping */
374
#define GPIO_AF12_OTG_HS_FS ((uint8_t)0x0C)
/* OTG HS configured in FS, Alternate Function mapping */
375
#define GPIO_AF12_SDIO ((uint8_t)0x0C)
/* SDIO Alternate Function mapping */
376
380
#define GPIO_AF13_DCMI ((uint8_t)0x0D)
/* DCMI Alternate Function mapping */
381
385
#define GPIO_AF15_EVENTOUT ((uint8_t)0x0F)
/* EVENTOUT Alternate Function mapping */
386
#endif
/* STM32F407xx || STM32F417xx */
387
/*----------------------------------------------------------------------------*/
388
389
/*---------------------------------- STM32F405xx/STM32F415xx------------------*/
390
#if defined(STM32F405xx) || defined(STM32F415xx)
391
394
#define GPIO_AF0_RTC_50Hz ((uint8_t)0x00)
/* RTC_50Hz Alternate Function mapping */
395
#define GPIO_AF0_MCO ((uint8_t)0x00)
/* MCO (MCO1 and MCO2) Alternate Function mapping */
396
#define GPIO_AF0_TAMPER ((uint8_t)0x00)
/* TAMPER (TAMPER_1 and TAMPER_2) Alternate Function mapping */
397
#define GPIO_AF0_SWJ ((uint8_t)0x00)
/* SWJ (SWD and JTAG) Alternate Function mapping */
398
#define GPIO_AF0_TRACE ((uint8_t)0x00)
/* TRACE Alternate Function mapping */
399
403
#define GPIO_AF1_TIM1 ((uint8_t)0x01)
/* TIM1 Alternate Function mapping */
404
#define GPIO_AF1_TIM2 ((uint8_t)0x01)
/* TIM2 Alternate Function mapping */
405
409
#define GPIO_AF2_TIM3 ((uint8_t)0x02)
/* TIM3 Alternate Function mapping */
410
#define GPIO_AF2_TIM4 ((uint8_t)0x02)
/* TIM4 Alternate Function mapping */
411
#define GPIO_AF2_TIM5 ((uint8_t)0x02)
/* TIM5 Alternate Function mapping */
412
416
#define GPIO_AF3_TIM8 ((uint8_t)0x03)
/* TIM8 Alternate Function mapping */
417
#define GPIO_AF3_TIM9 ((uint8_t)0x03)
/* TIM9 Alternate Function mapping */
418
#define GPIO_AF3_TIM10 ((uint8_t)0x03)
/* TIM10 Alternate Function mapping */
419
#define GPIO_AF3_TIM11 ((uint8_t)0x03)
/* TIM11 Alternate Function mapping */
420
424
#define GPIO_AF4_I2C1 ((uint8_t)0x04)
/* I2C1 Alternate Function mapping */
425
#define GPIO_AF4_I2C2 ((uint8_t)0x04)
/* I2C2 Alternate Function mapping */
426
#define GPIO_AF4_I2C3 ((uint8_t)0x04)
/* I2C3 Alternate Function mapping */
427
431
#define GPIO_AF5_SPI1 ((uint8_t)0x05)
/* SPI1 Alternate Function mapping */
432
#define GPIO_AF5_SPI2 ((uint8_t)0x05)
/* SPI2/I2S2 Alternate Function mapping */
433
#define GPIO_AF5_I2S3ext ((uint8_t)0x05)
/* I2S3ext_SD Alternate Function mapping */
434
438
#define GPIO_AF6_SPI3 ((uint8_t)0x06)
/* SPI3/I2S3 Alternate Function mapping */
439
#define GPIO_AF6_I2S2ext ((uint8_t)0x06)
/* I2S2ext_SD Alternate Function mapping */
440
444
#define GPIO_AF7_USART1 ((uint8_t)0x07)
/* USART1 Alternate Function mapping */
445
#define GPIO_AF7_USART2 ((uint8_t)0x07)
/* USART2 Alternate Function mapping */
446
#define GPIO_AF7_USART3 ((uint8_t)0x07)
/* USART3 Alternate Function mapping */
447
#define GPIO_AF7_I2S3ext ((uint8_t)0x07)
/* I2S3ext_SD Alternate Function mapping */
448
452
#define GPIO_AF8_UART4 ((uint8_t)0x08)
/* UART4 Alternate Function mapping */
453
#define GPIO_AF8_UART5 ((uint8_t)0x08)
/* UART5 Alternate Function mapping */
454
#define GPIO_AF8_USART6 ((uint8_t)0x08)
/* USART6 Alternate Function mapping */
455
459
#define GPIO_AF9_CAN1 ((uint8_t)0x09)
/* CAN1 Alternate Function mapping */
460
#define GPIO_AF9_CAN2 ((uint8_t)0x09)
/* CAN2 Alternate Function mapping */
461
#define GPIO_AF9_TIM12 ((uint8_t)0x09)
/* TIM12 Alternate Function mapping */
462
#define GPIO_AF9_TIM13 ((uint8_t)0x09)
/* TIM13 Alternate Function mapping */
463
#define GPIO_AF9_TIM14 ((uint8_t)0x09)
/* TIM14 Alternate Function mapping */
464
468
#define GPIO_AF10_OTG_FS ((uint8_t)0x0A)
/* OTG_FS Alternate Function mapping */
469
#define GPIO_AF10_OTG_HS ((uint8_t)0x0A)
/* OTG_HS Alternate Function mapping */
470
474
#define GPIO_AF12_FSMC ((uint8_t)0x0C)
/* FSMC Alternate Function mapping */
475
#define GPIO_AF12_OTG_HS_FS ((uint8_t)0x0C)
/* OTG HS configured in FS, Alternate Function mapping */
476
#define GPIO_AF12_SDIO ((uint8_t)0x0C)
/* SDIO Alternate Function mapping */
477
481
#define GPIO_AF15_EVENTOUT ((uint8_t)0x0F)
/* EVENTOUT Alternate Function mapping */
482
#endif
/* STM32F405xx || STM32F415xx */
483
484
/*----------------------------------------------------------------------------*/
485
486
/*---------------------------------------- STM32F401xx------------------------*/
487
#if defined(STM32F401xC) || defined(STM32F401xE)
488
491
#define GPIO_AF0_RTC_50Hz ((uint8_t)0x00)
/* RTC_50Hz Alternate Function mapping */
492
#define GPIO_AF0_MCO ((uint8_t)0x00)
/* MCO (MCO1 and MCO2) Alternate Function mapping */
493
#define GPIO_AF0_TAMPER ((uint8_t)0x00)
/* TAMPER (TAMPER_1 and TAMPER_2) Alternate Function mapping */
494
#define GPIO_AF0_SWJ ((uint8_t)0x00)
/* SWJ (SWD and JTAG) Alternate Function mapping */
495
#define GPIO_AF0_TRACE ((uint8_t)0x00)
/* TRACE Alternate Function mapping */
496
500
#define GPIO_AF1_TIM1 ((uint8_t)0x01)
/* TIM1 Alternate Function mapping */
501
#define GPIO_AF1_TIM2 ((uint8_t)0x01)
/* TIM2 Alternate Function mapping */
502
506
#define GPIO_AF2_TIM3 ((uint8_t)0x02)
/* TIM3 Alternate Function mapping */
507
#define GPIO_AF2_TIM4 ((uint8_t)0x02)
/* TIM4 Alternate Function mapping */
508
#define GPIO_AF2_TIM5 ((uint8_t)0x02)
/* TIM5 Alternate Function mapping */
509
513
#define GPIO_AF3_TIM9 ((uint8_t)0x03)
/* TIM9 Alternate Function mapping */
514
#define GPIO_AF3_TIM10 ((uint8_t)0x03)
/* TIM10 Alternate Function mapping */
515
#define GPIO_AF3_TIM11 ((uint8_t)0x03)
/* TIM11 Alternate Function mapping */
516
520
#define GPIO_AF4_I2C1 ((uint8_t)0x04)
/* I2C1 Alternate Function mapping */
521
#define GPIO_AF4_I2C2 ((uint8_t)0x04)
/* I2C2 Alternate Function mapping */
522
#define GPIO_AF4_I2C3 ((uint8_t)0x04)
/* I2C3 Alternate Function mapping */
523
527
#define GPIO_AF5_SPI1 ((uint8_t)0x05)
/* SPI1 Alternate Function mapping */
528
#define GPIO_AF5_SPI2 ((uint8_t)0x05)
/* SPI2/I2S2 Alternate Function mapping */
529
#define GPIO_AF5_SPI3 ((uint8_t)0x05)
/* SPI3 Alternate Function mapping */
530
#define GPIO_AF5_SPI4 ((uint8_t)0x05)
/* SPI4 Alternate Function mapping */
531
#define GPIO_AF5_I2S3ext ((uint8_t)0x05)
/* I2S3ext_SD Alternate Function mapping */
532
536
#define GPIO_AF6_SPI3 ((uint8_t)0x06)
/* SPI3/I2S3 Alternate Function mapping */
537
#define GPIO_AF6_I2S2ext ((uint8_t)0x06)
/* I2S2ext_SD Alternate Function mapping */
538
542
#define GPIO_AF7_USART1 ((uint8_t)0x07)
/* USART1 Alternate Function mapping */
543
#define GPIO_AF7_USART2 ((uint8_t)0x07)
/* USART2 Alternate Function mapping */
544
#define GPIO_AF7_I2S3ext ((uint8_t)0x07)
/* I2S3ext_SD Alternate Function mapping */
545
549
#define GPIO_AF8_USART6 ((uint8_t)0x08)
/* USART6 Alternate Function mapping */
550
554
#define GPIO_AF9_I2C2 ((uint8_t)0x09)
/* I2C2 Alternate Function mapping */
555
#define GPIO_AF9_I2C3 ((uint8_t)0x09)
/* I2C3 Alternate Function mapping */
556
557
561
#define GPIO_AF10_OTG_FS ((uint8_t)0x0A)
/* OTG_FS Alternate Function mapping */
562
566
#define GPIO_AF12_SDIO ((uint8_t)0x0C)
/* SDIO Alternate Function mapping */
567
571
#define GPIO_AF15_EVENTOUT ((uint8_t)0x0F)
/* EVENTOUT Alternate Function mapping */
572
#endif
/* STM32F401xC || STM32F401xE */
573
/*----------------------------------------------------------------------------*/
574
575
/*--------------- STM32F412Zx/STM32F412Vx/STM32F412Rx/STM32F412Cx-------------*/
576
#if defined(STM32F412Zx) || defined(STM32F412Vx) || defined(STM32F412Rx) || defined(STM32F412Cx)
577
580
#define GPIO_AF0_RTC_50Hz ((uint8_t)0x00)
/* RTC_50Hz Alternate Function mapping */
581
#define GPIO_AF0_MCO ((uint8_t)0x00)
/* MCO (MCO1 and MCO2) Alternate Function mapping */
582
#define GPIO_AF0_TAMPER ((uint8_t)0x00)
/* TAMPER (TAMPER_1 and TAMPER_2) Alternate Function mapping */
583
#define GPIO_AF0_SWJ ((uint8_t)0x00)
/* SWJ (SWD and JTAG) Alternate Function mapping */
584
#define GPIO_AF0_TRACE ((uint8_t)0x00)
/* TRACE Alternate Function mapping */
585
589
#define GPIO_AF1_TIM1 ((uint8_t)0x01)
/* TIM1 Alternate Function mapping */
590
#define GPIO_AF1_TIM2 ((uint8_t)0x01)
/* TIM2 Alternate Function mapping */
591
595
#define GPIO_AF2_TIM3 ((uint8_t)0x02)
/* TIM3 Alternate Function mapping */
596
#define GPIO_AF2_TIM4 ((uint8_t)0x02)
/* TIM4 Alternate Function mapping */
597
#define GPIO_AF2_TIM5 ((uint8_t)0x02)
/* TIM5 Alternate Function mapping */
598
602
#define GPIO_AF3_TIM8 ((uint8_t)0x03)
/* TIM8 Alternate Function mapping */
603
#define GPIO_AF3_TIM9 ((uint8_t)0x03)
/* TIM9 Alternate Function mapping */
604
#define GPIO_AF3_TIM10 ((uint8_t)0x03)
/* TIM10 Alternate Function mapping */
605
#define GPIO_AF3_TIM11 ((uint8_t)0x03)
/* TIM11 Alternate Function mapping */
606
610
#define GPIO_AF4_I2C1 ((uint8_t)0x04)
/* I2C1 Alternate Function mapping */
611
#define GPIO_AF4_I2C2 ((uint8_t)0x04)
/* I2C2 Alternate Function mapping */
612
#define GPIO_AF4_I2C3 ((uint8_t)0x04)
/* I2C3 Alternate Function mapping */
613
#define GPIO_AF4_FMPI2C1 ((uint8_t)0x04)
/* FMPI2C1 Alternate Function mapping */
614
618
#define GPIO_AF5_SPI1 ((uint8_t)0x05)
/* SPI1/I2S1 Alternate Function mapping */
619
#define GPIO_AF5_SPI2 ((uint8_t)0x05)
/* SPI2/I2S2 Alternate Function mapping */
620
#define GPIO_AF5_SPI3 ((uint8_t)0x05)
/* SPI3/I2S3 Alternate Function mapping */
621
#define GPIO_AF5_SPI4 ((uint8_t)0x05)
/* SPI4/I2S4 Alternate Function mapping */
622
#define GPIO_AF5_I2S3ext ((uint8_t)0x05)
/* I2S3ext_SD Alternate Function mapping */
623
627
#define GPIO_AF6_SPI2 ((uint8_t)0x06)
/* I2S2 Alternate Function mapping */
628
#define GPIO_AF6_SPI3 ((uint8_t)0x06)
/* SPI3/I2S3 Alternate Function mapping */
629
#define GPIO_AF6_SPI4 ((uint8_t)0x06)
/* SPI4/I2S4 Alternate Function mapping */
630
#define GPIO_AF6_SPI5 ((uint8_t)0x06)
/* SPI5/I2S5 Alternate Function mapping */
631
#define GPIO_AF6_I2S2ext ((uint8_t)0x06)
/* I2S2ext_SD Alternate Function mapping */
632
#define GPIO_AF6_DFSDM1 ((uint8_t)0x06)
/* DFSDM1 Alternate Function mapping */
633
636
#define GPIO_AF7_SPI3 ((uint8_t)0x07)
/* SPI3/I2S3 Alternate Function mapping */
637
#define GPIO_AF7_USART1 ((uint8_t)0x07)
/* USART1 Alternate Function mapping */
638
#define GPIO_AF7_USART2 ((uint8_t)0x07)
/* USART2 Alternate Function mapping */
639
#define GPIO_AF7_USART3 ((uint8_t)0x07)
/* USART3 Alternate Function mapping */
640
#define GPIO_AF7_I2S3ext ((uint8_t)0x07)
/* I2S3ext_SD Alternate Function mapping */
641
645
#define GPIO_AF8_USART6 ((uint8_t)0x08)
/* USART6 Alternate Function mapping */
646
#define GPIO_AF8_USART3 ((uint8_t)0x08)
/* USART3 Alternate Function mapping */
647
#define GPIO_AF8_DFSDM1 ((uint8_t)0x08)
/* DFSDM1 Alternate Function mapping */
648
#define GPIO_AF8_CAN1 ((uint8_t)0x08)
/* CAN1 Alternate Function mapping */
649
653
#define GPIO_AF9_TIM12 ((uint8_t)0x09)
/* TIM12 Alternate Function mapping */
654
#define GPIO_AF9_TIM13 ((uint8_t)0x09)
/* TIM13 Alternate Function mapping */
655
#define GPIO_AF9_TIM14 ((uint8_t)0x09)
/* TIM14 Alternate Function mapping */
656
#define GPIO_AF9_I2C2 ((uint8_t)0x09)
/* I2C2 Alternate Function mapping */
657
#define GPIO_AF9_I2C3 ((uint8_t)0x09)
/* I2C3 Alternate Function mapping */
658
#define GPIO_AF9_FMPI2C1 ((uint8_t)0x09)
/* FMPI2C1 Alternate Function mapping */
659
#define GPIO_AF9_CAN1 ((uint8_t)0x09)
/* CAN1 Alternate Function mapping */
660
#define GPIO_AF9_CAN2 ((uint8_t)0x09)
/* CAN1 Alternate Function mapping */
661
#define GPIO_AF9_QSPI ((uint8_t)0x09)
/* QSPI Alternate Function mapping */
662
666
#define GPIO_AF10_OTG_FS ((uint8_t)0x0A)
/* OTG_FS Alternate Function mapping */
667
#define GPIO_AF10_DFSDM1 ((uint8_t)0x0A)
/* DFSDM1 Alternate Function mapping */
668
#define GPIO_AF10_QSPI ((uint8_t)0x0A)
/* QSPI Alternate Function mapping */
669
#define GPIO_AF10_FMC ((uint8_t)0x0A)
/* FMC Alternate Function mapping */
670
674
#define GPIO_AF12_SDIO ((uint8_t)0x0C)
/* SDIO Alternate Function mapping */
675
#define GPIO_AF12_FSMC ((uint8_t)0x0C)
/* FMC Alternate Function mapping */
676
680
#define GPIO_AF15_EVENTOUT ((uint8_t)0x0F)
/* EVENTOUT Alternate Function mapping */
681
#endif
/* STM32F412Zx || STM32F412Vx || STM32F412Rx || STM32F412Cx */
682
683
/*----------------------------------------------------------------------------*/
684
685
/*--------------- STM32F413xx/STM32F423xx-------------------------------------*/
686
#if defined(STM32F413xx) || defined(STM32F423xx)
687
690
#define GPIO_AF0_RTC_50Hz ((uint8_t)0x00)
/* RTC_50Hz Alternate Function mapping */
691
#define GPIO_AF0_MCO ((uint8_t)0x00)
/* MCO (MCO1 and MCO2) Alternate Function mapping */
692
#define GPIO_AF0_SWJ ((uint8_t)0x00)
/* SWJ (SWD and JTAG) Alternate Function mapping */
693
#define GPIO_AF0_TRACE ((uint8_t)0x00)
/* TRACE Alternate Function mapping */
694
698
#define GPIO_AF1_TIM1 ((uint8_t)0x01)
/* TIM1 Alternate Function mapping */
699
#define GPIO_AF1_TIM2 ((uint8_t)0x01)
/* TIM2 Alternate Function mapping */
700
#define GPIO_AF1_LPTIM1 ((uint8_t)0x01)
/* LPTIM1 Alternate Function mapping */
701
705
#define GPIO_AF2_TIM3 ((uint8_t)0x02)
/* TIM3 Alternate Function mapping */
706
#define GPIO_AF2_TIM4 ((uint8_t)0x02)
/* TIM4 Alternate Function mapping */
707
#define GPIO_AF2_TIM5 ((uint8_t)0x02)
/* TIM5 Alternate Function mapping */
708
712
#define GPIO_AF3_TIM8 ((uint8_t)0x03)
/* TIM8 Alternate Function mapping */
713
#define GPIO_AF3_TIM9 ((uint8_t)0x03)
/* TIM9 Alternate Function mapping */
714
#define GPIO_AF3_TIM10 ((uint8_t)0x03)
/* TIM10 Alternate Function mapping */
715
#define GPIO_AF3_TIM11 ((uint8_t)0x03)
/* TIM11 Alternate Function mapping */
716
#define GPIO_AF3_DFSDM2 ((uint8_t)0x03)
/* DFSDM2 Alternate Function mapping */
717
721
#define GPIO_AF4_I2C1 ((uint8_t)0x04)
/* I2C1 Alternate Function mapping */
722
#define GPIO_AF4_I2C2 ((uint8_t)0x04)
/* I2C2 Alternate Function mapping */
723
#define GPIO_AF4_I2C3 ((uint8_t)0x04)
/* I2C3 Alternate Function mapping */
724
#define GPIO_AF4_FMPI2C1 ((uint8_t)0x04)
/* FMPI2C1 Alternate Function mapping */
725
729
#define GPIO_AF5_SPI1 ((uint8_t)0x05)
/* SPI1/I2S1 Alternate Function mapping */
730
#define GPIO_AF5_SPI2 ((uint8_t)0x05)
/* SPI2/I2S2 Alternate Function mapping */
731
#define GPIO_AF5_SPI3 ((uint8_t)0x05)
/* SPI3/I2S3 Alternate Function mapping */
732
#define GPIO_AF5_SPI4 ((uint8_t)0x05)
/* SPI4/I2S4 Alternate Function mapping */
733
#define GPIO_AF5_I2S3ext ((uint8_t)0x05)
/* I2S3ext_SD Alternate Function mapping */
734
738
#define GPIO_AF6_SPI2 ((uint8_t)0x06)
/* I2S2 Alternate Function mapping */
739
#define GPIO_AF6_SPI3 ((uint8_t)0x06)
/* SPI3/I2S3 Alternate Function mapping */
740
#define GPIO_AF6_SPI4 ((uint8_t)0x06)
/* SPI4/I2S4 Alternate Function mapping */
741
#define GPIO_AF6_SPI5 ((uint8_t)0x06)
/* SPI5/I2S5 Alternate Function mapping */
742
#define GPIO_AF6_I2S2ext ((uint8_t)0x06)
/* I2S2ext_SD Alternate Function mapping */
743
#define GPIO_AF6_DFSDM1 ((uint8_t)0x06)
/* DFSDM1 Alternate Function mapping */
744
#define GPIO_AF6_DFSDM2 ((uint8_t)0x06)
/* DFSDM2 Alternate Function mapping */
745
748
#define GPIO_AF7_SPI3 ((uint8_t)0x07)
/* SPI3/I2S3 Alternate Function mapping */
749
#define GPIO_AF7_SAI1 ((uint8_t)0x07)
/* SAI1 Alternate Function mapping */
750
#define GPIO_AF7_USART1 ((uint8_t)0x07)
/* USART1 Alternate Function mapping */
751
#define GPIO_AF7_USART2 ((uint8_t)0x07)
/* USART2 Alternate Function mapping */
752
#define GPIO_AF7_USART3 ((uint8_t)0x07)
/* USART3 Alternate Function mapping */
753
#define GPIO_AF7_I2S3ext ((uint8_t)0x07)
/* I2S3ext_SD Alternate Function mapping */
754
#define GPIO_AF7_DFSDM2 ((uint8_t)0x07)
/* DFSDM2 Alternate Function mapping */
755
759
#define GPIO_AF8_USART6 ((uint8_t)0x08)
/* USART6 Alternate Function mapping */
760
#define GPIO_AF8_USART3 ((uint8_t)0x08)
/* USART3 Alternate Function mapping */
761
#define GPIO_AF8_UART4 ((uint8_t)0x08)
/* UART4 Alternate Function mapping */
762
#define GPIO_AF8_UART5 ((uint8_t)0x08)
/* UART5 Alternate Function mapping */
763
#define GPIO_AF8_UART7 ((uint8_t)0x08)
/* UART8 Alternate Function mapping */
764
#define GPIO_AF8_UART8 ((uint8_t)0x08)
/* UART8 Alternate Function mapping */
765
#define GPIO_AF8_DFSDM1 ((uint8_t)0x08)
/* DFSDM1 Alternate Function mapping */
766
#define GPIO_AF8_CAN1 ((uint8_t)0x08)
/* CAN1 Alternate Function mapping */
767
771
#define GPIO_AF9_TIM12 ((uint8_t)0x09)
/* TIM12 Alternate Function mapping */
772
#define GPIO_AF9_TIM13 ((uint8_t)0x09)
/* TIM13 Alternate Function mapping */
773
#define GPIO_AF9_TIM14 ((uint8_t)0x09)
/* TIM14 Alternate Function mapping */
774
#define GPIO_AF9_I2C2 ((uint8_t)0x09)
/* I2C2 Alternate Function mapping */
775
#define GPIO_AF9_I2C3 ((uint8_t)0x09)
/* I2C3 Alternate Function mapping */
776
#define GPIO_AF9_FMPI2C1 ((uint8_t)0x09)
/* FMPI2C1 Alternate Function mapping */
777
#define GPIO_AF9_CAN1 ((uint8_t)0x09)
/* CAN1 Alternate Function mapping */
778
#define GPIO_AF9_CAN2 ((uint8_t)0x09)
/* CAN1 Alternate Function mapping */
779
#define GPIO_AF9_QSPI ((uint8_t)0x09)
/* QSPI Alternate Function mapping */
780
784
#define GPIO_AF10_SAI1 ((uint8_t)0x0A)
/* SAI1 Alternate Function mapping */
785
#define GPIO_AF10_OTG_FS ((uint8_t)0x0A)
/* OTG_FS Alternate Function mapping */
786
#define GPIO_AF10_DFSDM1 ((uint8_t)0x0A)
/* DFSDM1 Alternate Function mapping */
787
#define GPIO_AF10_DFSDM2 ((uint8_t)0x0A)
/* DFSDM2 Alternate Function mapping */
788
#define GPIO_AF10_QSPI ((uint8_t)0x0A)
/* QSPI Alternate Function mapping */
789
#define GPIO_AF10_FSMC ((uint8_t)0x0A)
/* FSMC Alternate Function mapping */
790
794
#define GPIO_AF11_UART4 ((uint8_t)0x0B)
/* UART4 Alternate Function mapping */
795
#define GPIO_AF11_UART5 ((uint8_t)0x0B)
/* UART5 Alternate Function mapping */
796
#define GPIO_AF11_UART9 ((uint8_t)0x0B)
/* UART9 Alternate Function mapping */
797
#define GPIO_AF11_UART10 ((uint8_t)0x0B)
/* UART10 Alternate Function mapping */
798
#define GPIO_AF11_CAN3 ((uint8_t)0x0B)
/* CAN3 Alternate Function mapping */
799
803
#define GPIO_AF12_SDIO ((uint8_t)0x0C)
/* SDIO Alternate Function mapping */
804
#define GPIO_AF12_FSMC ((uint8_t)0x0C)
/* FMC Alternate Function mapping */
805
809
#define GPIO_AF14_RNG ((uint8_t)0x0E)
/* RNG Alternate Function mapping */
810
814
#define GPIO_AF15_EVENTOUT ((uint8_t)0x0F)
/* EVENTOUT Alternate Function mapping */
815
#endif
/* STM32F413xx || STM32F423xx */
816
817
/*---------------------------------------- STM32F411xx------------------------*/
818
#if defined(STM32F411xE)
819
822
#define GPIO_AF0_RTC_50Hz ((uint8_t)0x00)
/* RTC_50Hz Alternate Function mapping */
823
#define GPIO_AF0_MCO ((uint8_t)0x00)
/* MCO (MCO1 and MCO2) Alternate Function mapping */
824
#define GPIO_AF0_TAMPER ((uint8_t)0x00)
/* TAMPER (TAMPER_1 and TAMPER_2) Alternate Function mapping */
825
#define GPIO_AF0_SWJ ((uint8_t)0x00)
/* SWJ (SWD and JTAG) Alternate Function mapping */
826
#define GPIO_AF0_TRACE ((uint8_t)0x00)
/* TRACE Alternate Function mapping */
827
831
#define GPIO_AF1_TIM1 ((uint8_t)0x01)
/* TIM1 Alternate Function mapping */
832
#define GPIO_AF1_TIM2 ((uint8_t)0x01)
/* TIM2 Alternate Function mapping */
833
837
#define GPIO_AF2_TIM3 ((uint8_t)0x02)
/* TIM3 Alternate Function mapping */
838
#define GPIO_AF2_TIM4 ((uint8_t)0x02)
/* TIM4 Alternate Function mapping */
839
#define GPIO_AF2_TIM5 ((uint8_t)0x02)
/* TIM5 Alternate Function mapping */
840
844
#define GPIO_AF3_TIM9 ((uint8_t)0x03)
/* TIM9 Alternate Function mapping */
845
#define GPIO_AF3_TIM10 ((uint8_t)0x03)
/* TIM10 Alternate Function mapping */
846
#define GPIO_AF3_TIM11 ((uint8_t)0x03)
/* TIM11 Alternate Function mapping */
847
851
#define GPIO_AF4_I2C1 ((uint8_t)0x04)
/* I2C1 Alternate Function mapping */
852
#define GPIO_AF4_I2C2 ((uint8_t)0x04)
/* I2C2 Alternate Function mapping */
853
#define GPIO_AF4_I2C3 ((uint8_t)0x04)
/* I2C3 Alternate Function mapping */
854
858
#define GPIO_AF5_SPI1 ((uint8_t)0x05)
/* SPI1/I2S1 Alternate Function mapping */
859
#define GPIO_AF5_SPI2 ((uint8_t)0x05)
/* SPI2/I2S2 Alternate Function mapping */
860
#define GPIO_AF5_SPI3 ((uint8_t)0x05)
/* SPI3/I2S3 Alternate Function mapping */
861
#define GPIO_AF5_SPI4 ((uint8_t)0x05)
/* SPI4 Alternate Function mapping */
862
#define GPIO_AF5_I2S3ext ((uint8_t)0x05)
/* I2S3ext_SD Alternate Function mapping */
863
867
#define GPIO_AF6_SPI2 ((uint8_t)0x06)
/* I2S2 Alternate Function mapping */
868
#define GPIO_AF6_SPI3 ((uint8_t)0x06)
/* SPI3/I2S3 Alternate Function mapping */
869
#define GPIO_AF6_SPI4 ((uint8_t)0x06)
/* SPI4/I2S4 Alternate Function mapping */
870
#define GPIO_AF6_SPI5 ((uint8_t)0x06)
/* SPI5/I2S5 Alternate Function mapping */
871
#define GPIO_AF6_I2S2ext ((uint8_t)0x06)
/* I2S2ext_SD Alternate Function mapping */
872
876
#define GPIO_AF7_SPI3 ((uint8_t)0x07)
/* SPI3/I2S3 Alternate Function mapping */
877
#define GPIO_AF7_USART1 ((uint8_t)0x07)
/* USART1 Alternate Function mapping */
878
#define GPIO_AF7_USART2 ((uint8_t)0x07)
/* USART2 Alternate Function mapping */
879
#define GPIO_AF7_I2S3ext ((uint8_t)0x07)
/* I2S3ext_SD Alternate Function mapping */
880
884
#define GPIO_AF8_USART6 ((uint8_t)0x08)
/* USART6 Alternate Function mapping */
885
889
#define GPIO_AF9_TIM14 ((uint8_t)0x09)
/* TIM14 Alternate Function mapping */
890
#define GPIO_AF9_I2C2 ((uint8_t)0x09)
/* I2C2 Alternate Function mapping */
891
#define GPIO_AF9_I2C3 ((uint8_t)0x09)
/* I2C3 Alternate Function mapping */
892
896
#define GPIO_AF10_OTG_FS ((uint8_t)0x0A)
/* OTG_FS Alternate Function mapping */
897
901
#define GPIO_AF12_SDIO ((uint8_t)0x0C)
/* SDIO Alternate Function mapping */
902
906
#define GPIO_AF15_EVENTOUT ((uint8_t)0x0F)
/* EVENTOUT Alternate Function mapping */
907
#endif
/* STM32F411xE */
908
909
/*---------------------------------------- STM32F410xx------------------------*/
910
#if defined(STM32F410Tx) || defined(STM32F410Cx) || defined(STM32F410Rx)
911
914
#define GPIO_AF0_RTC_50Hz ((uint8_t)0x00)
/* RTC_50Hz Alternate Function mapping */
915
#define GPIO_AF0_MCO ((uint8_t)0x00)
/* MCO (MCO1 and MCO2) Alternate Function mapping */
916
#define GPIO_AF0_TAMPER ((uint8_t)0x00)
/* TAMPER (TAMPER_1 and TAMPER_2) Alternate Function mapping */
917
#define GPIO_AF0_SWJ ((uint8_t)0x00)
/* SWJ (SWD and JTAG) Alternate Function mapping */
918
#define GPIO_AF0_TRACE ((uint8_t)0x00)
/* TRACE Alternate Function mapping */
919
923
#define GPIO_AF1_TIM1 ((uint8_t)0x01)
/* TIM1 Alternate Function mapping */
924
#define GPIO_AF1_LPTIM1 ((uint8_t)0x01)
/* LPTIM1 Alternate Function mapping */
925
929
#define GPIO_AF2_TIM5 ((uint8_t)0x02)
/* TIM5 Alternate Function mapping */
930
934
#define GPIO_AF3_TIM9 ((uint8_t)0x03)
/* TIM9 Alternate Function mapping */
935
#define GPIO_AF3_TIM11 ((uint8_t)0x03)
/* TIM11 Alternate Function mapping */
936
940
#define GPIO_AF4_I2C1 ((uint8_t)0x04)
/* I2C1 Alternate Function mapping */
941
#define GPIO_AF4_I2C2 ((uint8_t)0x04)
/* I2C2 Alternate Function mapping */
942
#define GPIO_AF4_FMPI2C1 ((uint8_t)0x04)
/* FMPI2C1 Alternate Function mapping */
943
947
#define GPIO_AF5_SPI1 ((uint8_t)0x05)
/* SPI1/I2S1 Alternate Function mapping */
948
#if defined(STM32F410Cx) || defined(STM32F410Rx)
949
#define GPIO_AF5_SPI2 ((uint8_t)0x05)
/* SPI2/I2S2 Alternate Function mapping */
950
#endif
/* STM32F410Cx || STM32F410Rx */
951
955
#define GPIO_AF6_SPI1 ((uint8_t)0x06)
/* SPI1 Alternate Function mapping */
956
#if defined(STM32F410Cx) || defined(STM32F410Rx)
957
#define GPIO_AF6_SPI2 ((uint8_t)0x06)
/* I2S2 Alternate Function mapping */
958
#endif
/* STM32F410Cx || STM32F410Rx */
959
#define GPIO_AF6_SPI5 ((uint8_t)0x06)
/* SPI5/I2S5 Alternate Function mapping */
960
963
#define GPIO_AF7_USART1 ((uint8_t)0x07)
/* USART1 Alternate Function mapping */
964
#define GPIO_AF7_USART2 ((uint8_t)0x07)
/* USART2 Alternate Function mapping */
965
969
#define GPIO_AF8_USART6 ((uint8_t)0x08)
/* USART6 Alternate Function mapping */
970
974
#define GPIO_AF9_I2C2 ((uint8_t)0x09)
/* I2C2 Alternate Function mapping */
975
#define GPIO_AF9_FMPI2C1 ((uint8_t)0x09)
/* FMPI2C1 Alternate Function mapping */
976
980
#define GPIO_AF15_EVENTOUT ((uint8_t)0x0F)
/* EVENTOUT Alternate Function mapping */
981
#endif
/* STM32F410Tx || STM32F410Cx || STM32F410Rx */
982
983
/*---------------------------------------- STM32F446xx -----------------------*/
984
#if defined(STM32F446xx)
985
988
#define GPIO_AF0_RTC_50Hz ((uint8_t)0x00)
/* RTC_50Hz Alternate Function mapping */
989
#define GPIO_AF0_MCO ((uint8_t)0x00)
/* MCO (MCO1 and MCO2) Alternate Function mapping */
990
#define GPIO_AF0_TAMPER ((uint8_t)0x00)
/* TAMPER (TAMPER_1 and TAMPER_2) Alternate Function mapping */
991
#define GPIO_AF0_SWJ ((uint8_t)0x00)
/* SWJ (SWD and JTAG) Alternate Function mapping */
992
#define GPIO_AF0_TRACE ((uint8_t)0x00)
/* TRACE Alternate Function mapping */
993
997
#define GPIO_AF1_TIM1 ((uint8_t)0x01)
/* TIM1 Alternate Function mapping */
998
#define GPIO_AF1_TIM2 ((uint8_t)0x01)
/* TIM2 Alternate Function mapping */
999
1003
#define GPIO_AF2_TIM3 ((uint8_t)0x02)
/* TIM3 Alternate Function mapping */
1004
#define GPIO_AF2_TIM4 ((uint8_t)0x02)
/* TIM4 Alternate Function mapping */
1005
#define GPIO_AF2_TIM5 ((uint8_t)0x02)
/* TIM5 Alternate Function mapping */
1006
1010
#define GPIO_AF3_TIM8 ((uint8_t)0x03)
/* TIM8 Alternate Function mapping */
1011
#define GPIO_AF3_TIM9 ((uint8_t)0x03)
/* TIM9 Alternate Function mapping */
1012
#define GPIO_AF3_TIM10 ((uint8_t)0x03)
/* TIM10 Alternate Function mapping */
1013
#define GPIO_AF3_TIM11 ((uint8_t)0x03)
/* TIM11 Alternate Function mapping */
1014
#define GPIO_AF3_CEC ((uint8_t)0x03)
/* CEC Alternate Function mapping */
1015
1019
#define GPIO_AF4_I2C1 ((uint8_t)0x04)
/* I2C1 Alternate Function mapping */
1020
#define GPIO_AF4_I2C2 ((uint8_t)0x04)
/* I2C2 Alternate Function mapping */
1021
#define GPIO_AF4_I2C3 ((uint8_t)0x04)
/* I2C3 Alternate Function mapping */
1022
#define GPIO_AF4_FMPI2C1 ((uint8_t)0x04)
/* FMPI2C1 Alternate Function mapping */
1023
#define GPIO_AF4_CEC ((uint8_t)0x04)
/* CEC Alternate Function mapping */
1024
1028
#define GPIO_AF5_SPI1 ((uint8_t)0x05)
/* SPI1/I2S1 Alternate Function mapping */
1029
#define GPIO_AF5_SPI2 ((uint8_t)0x05)
/* SPI2/I2S2 Alternate Function mapping */
1030
#define GPIO_AF5_SPI3 ((uint8_t)0x05)
/* SPI3/I2S3 Alternate Function mapping */
1031
#define GPIO_AF5_SPI4 ((uint8_t)0x05)
/* SPI4 Alternate Function mapping */
1032
1036
#define GPIO_AF6_SPI2 ((uint8_t)0x06)
/* SPI2/I2S2 Alternate Function mapping */
1037
#define GPIO_AF6_SPI3 ((uint8_t)0x06)
/* SPI3/I2S3 Alternate Function mapping */
1038
#define GPIO_AF6_SPI4 ((uint8_t)0x06)
/* SPI4 Alternate Function mapping */
1039
#define GPIO_AF6_SAI1 ((uint8_t)0x06)
/* SAI1 Alternate Function mapping */
1040
1044
#define GPIO_AF7_USART1 ((uint8_t)0x07)
/* USART1 Alternate Function mapping */
1045
#define GPIO_AF7_USART2 ((uint8_t)0x07)
/* USART2 Alternate Function mapping */
1046
#define GPIO_AF7_USART3 ((uint8_t)0x07)
/* USART3 Alternate Function mapping */
1047
#define GPIO_AF7_UART5 ((uint8_t)0x07)
/* UART5 Alternate Function mapping */
1048
#define GPIO_AF7_SPI2 ((uint8_t)0x07)
/* SPI2/I2S2 Alternate Function mapping */
1049
#define GPIO_AF7_SPI3 ((uint8_t)0x07)
/* SPI3/I2S3 Alternate Function mapping */
1050
#define GPIO_AF7_SPDIFRX ((uint8_t)0x07)
/* SPDIFRX Alternate Function mapping */
1051
1055
#define GPIO_AF8_UART4 ((uint8_t)0x08)
/* UART4 Alternate Function mapping */
1056
#define GPIO_AF8_UART5 ((uint8_t)0x08)
/* UART5 Alternate Function mapping */
1057
#define GPIO_AF8_USART6 ((uint8_t)0x08)
/* USART6 Alternate Function mapping */
1058
#define GPIO_AF8_SPDIFRX ((uint8_t)0x08)
/* SPDIFRX Alternate Function mapping */
1059
#define GPIO_AF8_SAI2 ((uint8_t)0x08)
/* SAI2 Alternate Function mapping */
1060
1064
#define GPIO_AF9_CAN1 ((uint8_t)0x09)
/* CAN1 Alternate Function mapping */
1065
#define GPIO_AF9_CAN2 ((uint8_t)0x09)
/* CAN2 Alternate Function mapping */
1066
#define GPIO_AF9_TIM12 ((uint8_t)0x09)
/* TIM12 Alternate Function mapping */
1067
#define GPIO_AF9_TIM13 ((uint8_t)0x09)
/* TIM13 Alternate Function mapping */
1068
#define GPIO_AF9_TIM14 ((uint8_t)0x09)
/* TIM14 Alternate Function mapping */
1069
#define GPIO_AF9_QSPI ((uint8_t)0x09)
/* QSPI Alternate Function mapping */
1070
1074
#define GPIO_AF10_OTG_FS ((uint8_t)0x0A)
/* OTG_FS Alternate Function mapping */
1075
#define GPIO_AF10_OTG_HS ((uint8_t)0x0A)
/* OTG_HS Alternate Function mapping */
1076
#define GPIO_AF10_SAI2 ((uint8_t)0x0A)
/* SAI2 Alternate Function mapping */
1077
#define GPIO_AF10_QSPI ((uint8_t)0x0A)
/* QSPI Alternate Function mapping */
1078
1082
#define GPIO_AF11_ETH ((uint8_t)0x0B)
/* ETHERNET Alternate Function mapping */
1083
1087
#define GPIO_AF12_FMC ((uint8_t)0x0C)
/* FMC Alternate Function mapping */
1088
#define GPIO_AF12_OTG_HS_FS ((uint8_t)0x0C)
/* OTG HS configured in FS, Alternate Function mapping */
1089
#define GPIO_AF12_SDIO ((uint8_t)0x0C)
/* SDIO Alternate Function mapping */
1090
1094
#define GPIO_AF13_DCMI ((uint8_t)0x0D)
/* DCMI Alternate Function mapping */
1095
1099
#define GPIO_AF15_EVENTOUT ((uint8_t)0x0F)
/* EVENTOUT Alternate Function mapping */
1100
1101
#endif
/* STM32F446xx */
1102
/*----------------------------------------------------------------------------*/
1103
1104
/*-------------------------------- STM32F469xx/STM32F479xx--------------------*/
1105
#if defined(STM32F469xx) || defined(STM32F479xx)
1106
1109
#define GPIO_AF0_RTC_50Hz ((uint8_t)0x00)
/* RTC_50Hz Alternate Function mapping */
1110
#define GPIO_AF0_MCO ((uint8_t)0x00)
/* MCO (MCO1 and MCO2) Alternate Function mapping */
1111
#define GPIO_AF0_TAMPER ((uint8_t)0x00)
/* TAMPER (TAMPER_1 and TAMPER_2) Alternate Function mapping */
1112
#define GPIO_AF0_SWJ ((uint8_t)0x00)
/* SWJ (SWD and JTAG) Alternate Function mapping */
1113
#define GPIO_AF0_TRACE ((uint8_t)0x00)
/* TRACE Alternate Function mapping */
1114
1118
#define GPIO_AF1_TIM1 ((uint8_t)0x01)
/* TIM1 Alternate Function mapping */
1119
#define GPIO_AF1_TIM2 ((uint8_t)0x01)
/* TIM2 Alternate Function mapping */
1120
1124
#define GPIO_AF2_TIM3 ((uint8_t)0x02)
/* TIM3 Alternate Function mapping */
1125
#define GPIO_AF2_TIM4 ((uint8_t)0x02)
/* TIM4 Alternate Function mapping */
1126
#define GPIO_AF2_TIM5 ((uint8_t)0x02)
/* TIM5 Alternate Function mapping */
1127
1131
#define GPIO_AF3_TIM8 ((uint8_t)0x03)
/* TIM8 Alternate Function mapping */
1132
#define GPIO_AF3_TIM9 ((uint8_t)0x03)
/* TIM9 Alternate Function mapping */
1133
#define GPIO_AF3_TIM10 ((uint8_t)0x03)
/* TIM10 Alternate Function mapping */
1134
#define GPIO_AF3_TIM11 ((uint8_t)0x03)
/* TIM11 Alternate Function mapping */
1135
1139
#define GPIO_AF4_I2C1 ((uint8_t)0x04)
/* I2C1 Alternate Function mapping */
1140
#define GPIO_AF4_I2C2 ((uint8_t)0x04)
/* I2C2 Alternate Function mapping */
1141
#define GPIO_AF4_I2C3 ((uint8_t)0x04)
/* I2C3 Alternate Function mapping */
1142
1146
#define GPIO_AF5_SPI1 ((uint8_t)0x05)
/* SPI1 Alternate Function mapping */
1147
#define GPIO_AF5_SPI2 ((uint8_t)0x05)
/* SPI2/I2S2 Alternate Function mapping */
1148
#define GPIO_AF5_SPI3 ((uint8_t)0x05)
/* SPI3/I2S3 Alternate Function mapping */
1149
#define GPIO_AF5_SPI4 ((uint8_t)0x05)
/* SPI4 Alternate Function mapping */
1150
#define GPIO_AF5_SPI5 ((uint8_t)0x05)
/* SPI5 Alternate Function mapping */
1151
#define GPIO_AF5_SPI6 ((uint8_t)0x05)
/* SPI6 Alternate Function mapping */
1152
#define GPIO_AF5_I2S3ext ((uint8_t)0x05)
/* I2S3ext_SD Alternate Function mapping */
1153
1157
#define GPIO_AF6_SPI3 ((uint8_t)0x06)
/* SPI3/I2S3 Alternate Function mapping */
1158
#define GPIO_AF6_I2S2ext ((uint8_t)0x06)
/* I2S2ext_SD Alternate Function mapping */
1159
#define GPIO_AF6_SAI1 ((uint8_t)0x06)
/* SAI1 Alternate Function mapping */
1160
1164
#define GPIO_AF7_USART1 ((uint8_t)0x07)
/* USART1 Alternate Function mapping */
1165
#define GPIO_AF7_USART2 ((uint8_t)0x07)
/* USART2 Alternate Function mapping */
1166
#define GPIO_AF7_USART3 ((uint8_t)0x07)
/* USART3 Alternate Function mapping */
1167
#define GPIO_AF7_I2S3ext ((uint8_t)0x07)
/* I2S3ext_SD Alternate Function mapping */
1168
1172
#define GPIO_AF8_UART4 ((uint8_t)0x08)
/* UART4 Alternate Function mapping */
1173
#define GPIO_AF8_UART5 ((uint8_t)0x08)
/* UART5 Alternate Function mapping */
1174
#define GPIO_AF8_USART6 ((uint8_t)0x08)
/* USART6 Alternate Function mapping */
1175
#define GPIO_AF8_UART7 ((uint8_t)0x08)
/* UART7 Alternate Function mapping */
1176
#define GPIO_AF8_UART8 ((uint8_t)0x08)
/* UART8 Alternate Function mapping */
1177
1181
#define GPIO_AF9_CAN1 ((uint8_t)0x09)
/* CAN1 Alternate Function mapping */
1182
#define GPIO_AF9_CAN2 ((uint8_t)0x09)
/* CAN2 Alternate Function mapping */
1183
#define GPIO_AF9_TIM12 ((uint8_t)0x09)
/* TIM12 Alternate Function mapping */
1184
#define GPIO_AF9_TIM13 ((uint8_t)0x09)
/* TIM13 Alternate Function mapping */
1185
#define GPIO_AF9_TIM14 ((uint8_t)0x09)
/* TIM14 Alternate Function mapping */
1186
#define GPIO_AF9_LTDC ((uint8_t)0x09)
/* LCD-TFT Alternate Function mapping */
1187
#define GPIO_AF9_QSPI ((uint8_t)0x09)
/* QSPI Alternate Function mapping */
1188
1192
#define GPIO_AF10_OTG_FS ((uint8_t)0x0A)
/* OTG_FS Alternate Function mapping */
1193
#define GPIO_AF10_OTG_HS ((uint8_t)0x0A)
/* OTG_HS Alternate Function mapping */
1194
#define GPIO_AF10_QSPI ((uint8_t)0x0A)
/* QSPI Alternate Function mapping */
1195
1199
#define GPIO_AF11_ETH ((uint8_t)0x0B)
/* ETHERNET Alternate Function mapping */
1200
1204
#define GPIO_AF12_FMC ((uint8_t)0x0C)
/* FMC Alternate Function mapping */
1205
#define GPIO_AF12_OTG_HS_FS ((uint8_t)0x0C)
/* OTG HS configured in FS, Alternate Function mapping */
1206
#define GPIO_AF12_SDIO ((uint8_t)0x0C)
/* SDIO Alternate Function mapping */
1207
1211
#define GPIO_AF13_DCMI ((uint8_t)0x0D)
/* DCMI Alternate Function mapping */
1212
#define GPIO_AF13_DSI ((uint8_t)0x0D)
/* DSI Alternate Function mapping */
1213
1217
#define GPIO_AF14_LTDC ((uint8_t)0x0E)
/* LCD-TFT Alternate Function mapping */
1218
1222
#define GPIO_AF15_EVENTOUT ((uint8_t)0x0F)
/* EVENTOUT Alternate Function mapping */
1223
1224
#endif
/* STM32F469xx || STM32F479xx */
1225
/*----------------------------------------------------------------------------*/
1234
/* Exported macro ------------------------------------------------------------*/
1242
/* Exported functions --------------------------------------------------------*/
1250
/* Private types -------------------------------------------------------------*/
1251
/* Private variables ---------------------------------------------------------*/
1252
/* Private constants ---------------------------------------------------------*/
1260
/* Private macros ------------------------------------------------------------*/
1267
#if defined(STM32F405xx) || defined(STM32F415xx) || defined(STM32F407xx) || defined(STM32F417xx)
1268
#define GPIO_GET_INDEX(__GPIOx__) (uint8_t)(((__GPIOx__) == (GPIOA))? 0U :\
1269
((__GPIOx__) == (GPIOB))? 1U :\
1270
((__GPIOx__) == (GPIOC))? 2U :\
1271
((__GPIOx__) == (GPIOD))? 3U :\
1272
((__GPIOx__) == (GPIOE))? 4U :\
1273
((__GPIOx__) == (GPIOF))? 5U :\
1274
((__GPIOx__) == (GPIOG))? 6U :\
1275
((__GPIOx__) == (GPIOH))? 7U : 8U)
1276
#endif
/* STM32F405xx || STM32F415xx || STM32F407xx || STM32F417xx */
1277
1278
#if defined(STM32F427xx) || defined(STM32F437xx) || defined(STM32F429xx) || defined(STM32F439xx) ||\
1279
defined(STM32F469xx) || defined(STM32F479xx)
1280
#define GPIO_GET_INDEX(__GPIOx__) (uint8_t)(((__GPIOx__) == (GPIOA))? 0U :\
1281
((__GPIOx__) == (GPIOB))? 1U :\
1282
((__GPIOx__) == (GPIOC))? 2U :\
1283
((__GPIOx__) == (GPIOD))? 3U :\
1284
((__GPIOx__) == (GPIOE))? 4U :\
1285
((__GPIOx__) == (GPIOF))? 5U :\
1286
((__GPIOx__) == (GPIOG))? 6U :\
1287
((__GPIOx__) == (GPIOH))? 7U :\
1288
((__GPIOx__) == (GPIOI))? 8U :\
1289
((__GPIOx__) == (GPIOJ))? 9U : 10U)
1290
#endif
/* STM32F427xx || STM32F437xx || STM32F429xx || STM32F439xx || STM32F469xx || STM32F479xx */
1291
1292
#if defined(STM32F410Tx) || defined(STM32F410Cx) || defined(STM32F410Rx)
1293
#define GPIO_GET_INDEX(__GPIOx__) (uint8_t)(((__GPIOx__) == (GPIOA))? 0U :\
1294
((__GPIOx__) == (GPIOB))? 1U :\
1295
((__GPIOx__) == (GPIOC))? 2U : 7U)
1296
#endif
/* STM32F410Tx || STM32F410Cx || STM32F410Rx */
1297
1298
#if defined(STM32F401xC) || defined(STM32F401xE) || defined(STM32F411xE)
1299
#define GPIO_GET_INDEX(__GPIOx__) (uint8_t)(((__GPIOx__) == (GPIOA))? 0U :\
1300
((__GPIOx__) == (GPIOB))? 1U :\
1301
((__GPIOx__) == (GPIOC))? 2U :\
1302
((__GPIOx__) == (GPIOD))? 3U :\
1303
((__GPIOx__) == (GPIOE))? 4U : 7U)
1304
#endif
/* STM32F401xC || STM32F401xE || STM32F411xE */
1305
1306
#if defined(STM32F446xx) || defined(STM32F412Zx) || defined(STM32F413xx) || defined(STM32F423xx)
1307
#define GPIO_GET_INDEX(__GPIOx__) (uint8_t)(((__GPIOx__) == (GPIOA))? 0U :\
1308
((__GPIOx__) == (GPIOB))? 1U :\
1309
((__GPIOx__) == (GPIOC))? 2U :\
1310
((__GPIOx__) == (GPIOD))? 3U :\
1311
((__GPIOx__) == (GPIOE))? 4U :\
1312
((__GPIOx__) == (GPIOF))? 5U :\
1313
((__GPIOx__) == (GPIOG))? 6U : 7U)
1314
#endif
/* STM32F446xx || STM32F412Zx || STM32F413xx || STM32F423xx */
1315
#if defined(STM32F412Vx)
1316
#define GPIO_GET_INDEX(__GPIOx__) (uint8_t)(((__GPIOx__) == (GPIOA))? 0U :\
1317
((__GPIOx__) == (GPIOB))? 1U :\
1318
((__GPIOx__) == (GPIOC))? 2U :\
1319
((__GPIOx__) == (GPIOD))? 3U :\
1320
((__GPIOx__) == (GPIOE))? 4U : 7U)
1321
#endif
/* STM32F412Vx */
1322
#if defined(STM32F412Rx)
1323
#define GPIO_GET_INDEX(__GPIOx__) (uint8_t)(((__GPIOx__) == (GPIOA))? 0U :\
1324
((__GPIOx__) == (GPIOB))? 1U :\
1325
((__GPIOx__) == (GPIOC))? 2U :\
1326
((__GPIOx__) == (GPIOD))? 3U : 7U)
1327
#endif
/* STM32F412Rx */
1328
#if defined(STM32F412Cx)
1329
#define GPIO_GET_INDEX(__GPIOx__) (uint8_t)(((__GPIOx__) == (GPIOA))? 0U :\
1330
((__GPIOx__) == (GPIOB))? 1U :\
1331
((__GPIOx__) == (GPIOC))? 2U : 7U)
1332
#endif
/* STM32F412Cx */
1333
1341
/*------------------------- STM32F429xx/STM32F439xx---------------------------*/
1342
#if defined(STM32F429xx) || defined(STM32F439xx)
1343
#define IS_GPIO_AF(AF) (((AF) == GPIO_AF0_RTC_50Hz) || ((AF) == GPIO_AF9_TIM14) || \
1344
((AF) == GPIO_AF0_MCO) || ((AF) == GPIO_AF0_TAMPER) || \
1345
((AF) == GPIO_AF0_SWJ) || ((AF) == GPIO_AF0_TRACE) || \
1346
((AF) == GPIO_AF1_TIM1) || ((AF) == GPIO_AF1_TIM2) || \
1347
((AF) == GPIO_AF2_TIM3) || ((AF) == GPIO_AF2_TIM4) || \
1348
((AF) == GPIO_AF2_TIM5) || ((AF) == GPIO_AF3_TIM8) || \
1349
((AF) == GPIO_AF4_I2C1) || ((AF) == GPIO_AF4_I2C2) || \
1350
((AF) == GPIO_AF4_I2C3) || ((AF) == GPIO_AF5_SPI1) || \
1351
((AF) == GPIO_AF5_SPI2) || ((AF) == GPIO_AF9_TIM13) || \
1352
((AF) == GPIO_AF6_SPI3) || ((AF) == GPIO_AF9_TIM12) || \
1353
((AF) == GPIO_AF7_USART1) || ((AF) == GPIO_AF7_USART2) || \
1354
((AF) == GPIO_AF7_USART3) || ((AF) == GPIO_AF8_UART4) || \
1355
((AF) == GPIO_AF8_UART5) || ((AF) == GPIO_AF8_USART6) || \
1356
((AF) == GPIO_AF9_CAN1) || ((AF) == GPIO_AF9_CAN2) || \
1357
((AF) == GPIO_AF10_OTG_FS) || ((AF) == GPIO_AF10_OTG_HS) || \
1358
((AF) == GPIO_AF11_ETH) || ((AF) == GPIO_AF12_OTG_HS_FS) || \
1359
((AF) == GPIO_AF12_SDIO) || ((AF) == GPIO_AF13_DCMI) || \
1360
((AF) == GPIO_AF15_EVENTOUT) || ((AF) == GPIO_AF5_SPI4) || \
1361
((AF) == GPIO_AF5_SPI5) || ((AF) == GPIO_AF5_SPI6) || \
1362
((AF) == GPIO_AF8_UART7) || ((AF) == GPIO_AF8_UART8) || \
1363
((AF) == GPIO_AF12_FMC) || ((AF) == GPIO_AF6_SAI1) || \
1364
((AF) == GPIO_AF14_LTDC))
1365
1366
#endif
/* STM32F429xx || STM32F439xx */
1367
/*----------------------------------------------------------------------------*/
1368
1369
/*---------------------------------- STM32F427xx/STM32F437xx------------------*/
1370
#if defined(STM32F427xx) || defined(STM32F437xx)
1371
#define IS_GPIO_AF(AF) (((AF) == GPIO_AF0_RTC_50Hz) || ((AF) == GPIO_AF9_TIM14) || \
1372
((AF) == GPIO_AF0_MCO) || ((AF) == GPIO_AF0_TAMPER) || \
1373
((AF) == GPIO_AF0_SWJ) || ((AF) == GPIO_AF0_TRACE) || \
1374
((AF) == GPIO_AF1_TIM1) || ((AF) == GPIO_AF1_TIM2) || \
1375
((AF) == GPIO_AF2_TIM3) || ((AF) == GPIO_AF2_TIM4) || \
1376
((AF) == GPIO_AF2_TIM5) || ((AF) == GPIO_AF3_TIM8) || \
1377
((AF) == GPIO_AF4_I2C1) || ((AF) == GPIO_AF4_I2C2) || \
1378
((AF) == GPIO_AF4_I2C3) || ((AF) == GPIO_AF5_SPI1) || \
1379
((AF) == GPIO_AF5_SPI2) || ((AF) == GPIO_AF9_TIM13) || \
1380
((AF) == GPIO_AF6_SPI3) || ((AF) == GPIO_AF9_TIM12) || \
1381
((AF) == GPIO_AF7_USART1) || ((AF) == GPIO_AF7_USART2) || \
1382
((AF) == GPIO_AF7_USART3) || ((AF) == GPIO_AF8_UART4) || \
1383
((AF) == GPIO_AF8_UART5) || ((AF) == GPIO_AF8_USART6) || \
1384
((AF) == GPIO_AF9_CAN1) || ((AF) == GPIO_AF9_CAN2) || \
1385
((AF) == GPIO_AF10_OTG_FS) || ((AF) == GPIO_AF10_OTG_HS) || \
1386
((AF) == GPIO_AF11_ETH) || ((AF) == GPIO_AF12_OTG_HS_FS) || \
1387
((AF) == GPIO_AF12_SDIO) || ((AF) == GPIO_AF13_DCMI) || \
1388
((AF) == GPIO_AF15_EVENTOUT) || ((AF) == GPIO_AF5_SPI4) || \
1389
((AF) == GPIO_AF5_SPI5) || ((AF) == GPIO_AF5_SPI6) || \
1390
((AF) == GPIO_AF8_UART7) || ((AF) == GPIO_AF8_UART8) || \
1391
((AF) == GPIO_AF12_FMC) || ((AF) == GPIO_AF6_SAI1))
1392
1393
#endif
/* STM32F427xx || STM32F437xx */
1394
/*----------------------------------------------------------------------------*/
1395
1396
/*---------------------------------- STM32F407xx/STM32F417xx------------------*/
1397
#if defined(STM32F407xx) || defined(STM32F417xx)
1398
#define IS_GPIO_AF(AF) (((AF) == GPIO_AF0_RTC_50Hz) || ((AF) == GPIO_AF9_TIM14) || \
1399
((AF) == GPIO_AF0_MCO) || ((AF) == GPIO_AF0_TAMPER) || \
1400
((AF) == GPIO_AF0_SWJ) || ((AF) == GPIO_AF0_TRACE) || \
1401
((AF) == GPIO_AF1_TIM1) || ((AF) == GPIO_AF1_TIM2) || \
1402
((AF) == GPIO_AF2_TIM3) || ((AF) == GPIO_AF2_TIM4) || \
1403
((AF) == GPIO_AF2_TIM5) || ((AF) == GPIO_AF3_TIM8) || \
1404
((AF) == GPIO_AF4_I2C1) || ((AF) == GPIO_AF4_I2C2) || \
1405
((AF) == GPIO_AF4_I2C3) || ((AF) == GPIO_AF5_SPI1) || \
1406
((AF) == GPIO_AF5_SPI2) || ((AF) == GPIO_AF9_TIM13) || \
1407
((AF) == GPIO_AF6_SPI3) || ((AF) == GPIO_AF9_TIM12) || \
1408
((AF) == GPIO_AF7_USART1) || ((AF) == GPIO_AF7_USART2) || \
1409
((AF) == GPIO_AF7_USART3) || ((AF) == GPIO_AF8_UART4) || \
1410
((AF) == GPIO_AF8_UART5) || ((AF) == GPIO_AF8_USART6) || \
1411
((AF) == GPIO_AF9_CAN1) || ((AF) == GPIO_AF9_CAN2) || \
1412
((AF) == GPIO_AF10_OTG_FS) || ((AF) == GPIO_AF10_OTG_HS) || \
1413
((AF) == GPIO_AF11_ETH) || ((AF) == GPIO_AF12_OTG_HS_FS) || \
1414
((AF) == GPIO_AF12_SDIO) || ((AF) == GPIO_AF13_DCMI) || \
1415
((AF) == GPIO_AF12_FSMC) || ((AF) == GPIO_AF15_EVENTOUT))
1416
1417
#endif
/* STM32F407xx || STM32F417xx */
1418
/*----------------------------------------------------------------------------*/
1419
1420
/*---------------------------------- STM32F405xx/STM32F415xx------------------*/
1421
#if defined(STM32F405xx) || defined(STM32F415xx)
1422
#define IS_GPIO_AF(AF) (((AF) == GPIO_AF0_RTC_50Hz) || ((AF) == GPIO_AF9_TIM14) || \
1423
((AF) == GPIO_AF0_MCO) || ((AF) == GPIO_AF0_TAMPER) || \
1424
((AF) == GPIO_AF0_SWJ) || ((AF) == GPIO_AF0_TRACE) || \
1425
((AF) == GPIO_AF1_TIM1) || ((AF) == GPIO_AF1_TIM2) || \
1426
((AF) == GPIO_AF2_TIM3) || ((AF) == GPIO_AF2_TIM4) || \
1427
((AF) == GPIO_AF2_TIM5) || ((AF) == GPIO_AF3_TIM8) || \
1428
((AF) == GPIO_AF4_I2C1) || ((AF) == GPIO_AF4_I2C2) || \
1429
((AF) == GPIO_AF4_I2C3) || ((AF) == GPIO_AF5_SPI1) || \
1430
((AF) == GPIO_AF5_SPI2) || ((AF) == GPIO_AF9_TIM13) || \
1431
((AF) == GPIO_AF6_SPI3) || ((AF) == GPIO_AF9_TIM12) || \
1432
((AF) == GPIO_AF7_USART1) || ((AF) == GPIO_AF7_USART2) || \
1433
((AF) == GPIO_AF7_USART3) || ((AF) == GPIO_AF8_UART4) || \
1434
((AF) == GPIO_AF8_UART5) || ((AF) == GPIO_AF8_USART6) || \
1435
((AF) == GPIO_AF9_CAN1) || ((AF) == GPIO_AF9_CAN2) || \
1436
((AF) == GPIO_AF10_OTG_FS) || ((AF) == GPIO_AF10_OTG_HS) || \
1437
((AF) == GPIO_AF12_OTG_HS_FS) || ((AF) == GPIO_AF12_SDIO) || \
1438
((AF) == GPIO_AF12_FSMC) || ((AF) == GPIO_AF15_EVENTOUT))
1439
1440
#endif
/* STM32F405xx || STM32F415xx */
1441
1442
/*----------------------------------------------------------------------------*/
1443
1444
/*---------------------------------------- STM32F401xx------------------------*/
1445
#if defined(STM32F401xC) || defined(STM32F401xE)
1446
#define IS_GPIO_AF(AF) (((AF) == GPIO_AF0_RTC_50Hz) || ((AF) == GPIO_AF12_SDIO) || \
1447
((AF) == GPIO_AF0_MCO) || ((AF) == GPIO_AF0_TAMPER) || \
1448
((AF) == GPIO_AF0_SWJ) || ((AF) == GPIO_AF0_TRACE) || \
1449
((AF) == GPIO_AF1_TIM1) || ((AF) == GPIO_AF1_TIM2) || \
1450
((AF) == GPIO_AF2_TIM3) || ((AF) == GPIO_AF2_TIM4) || \
1451
((AF) == GPIO_AF2_TIM5) || ((AF) == GPIO_AF4_I2C1) || \
1452
((AF) == GPIO_AF4_I2C2) || ((AF) == GPIO_AF4_I2C3) || \
1453
((AF) == GPIO_AF5_SPI1) || ((AF) == GPIO_AF5_SPI2) || \
1454
((AF) == GPIO_AF6_SPI3) || ((AF) == GPIO_AF5_SPI4) || \
1455
((AF) == GPIO_AF7_USART1) || ((AF) == GPIO_AF7_USART2) || \
1456
((AF) == GPIO_AF8_USART6) || ((AF) == GPIO_AF10_OTG_FS) || \
1457
((AF) == GPIO_AF9_I2C2) || ((AF) == GPIO_AF9_I2C3) || \
1458
((AF) == GPIO_AF15_EVENTOUT))
1459
1460
#endif
/* STM32F401xC || STM32F401xE */
1461
/*----------------------------------------------------------------------------*/
1462
/*---------------------------------------- STM32F410xx------------------------*/
1463
#if defined(STM32F410Tx) || defined(STM32F410Cx) || defined(STM32F410Rx)
1464
#define IS_GPIO_AF(AF) (((AF) < 10U) || ((AF) == 15U))
1465
#endif
/* STM32F410Tx || STM32F410Cx || STM32F410Rx */
1466
1467
/*---------------------------------------- STM32F411xx------------------------*/
1468
#if defined(STM32F411xE)
1469
#define IS_GPIO_AF(AF) (((AF) == GPIO_AF0_RTC_50Hz) || ((AF) == GPIO_AF9_TIM14) || \
1470
((AF) == GPIO_AF0_MCO) || ((AF) == GPIO_AF0_TAMPER) || \
1471
((AF) == GPIO_AF0_SWJ) || ((AF) == GPIO_AF0_TRACE) || \
1472
((AF) == GPIO_AF1_TIM1) || ((AF) == GPIO_AF1_TIM2) || \
1473
((AF) == GPIO_AF2_TIM3) || ((AF) == GPIO_AF2_TIM4) || \
1474
((AF) == GPIO_AF2_TIM5) || ((AF) == GPIO_AF4_I2C1) || \
1475
((AF) == GPIO_AF4_I2C2) || ((AF) == GPIO_AF4_I2C3) || \
1476
((AF) == GPIO_AF5_SPI1) || ((AF) == GPIO_AF5_SPI2) || \
1477
((AF) == GPIO_AF5_SPI3) || ((AF) == GPIO_AF6_SPI4) || \
1478
((AF) == GPIO_AF6_SPI3) || ((AF) == GPIO_AF5_SPI4) || \
1479
((AF) == GPIO_AF6_SPI5) || ((AF) == GPIO_AF7_SPI3) || \
1480
((AF) == GPIO_AF7_USART1) || ((AF) == GPIO_AF7_USART2) || \
1481
((AF) == GPIO_AF8_USART6) || ((AF) == GPIO_AF10_OTG_FS) || \
1482
((AF) == GPIO_AF9_I2C2) || ((AF) == GPIO_AF9_I2C3) || \
1483
((AF) == GPIO_AF12_SDIO) || ((AF) == GPIO_AF15_EVENTOUT))
1484
1485
#endif
/* STM32F411xE */
1486
/*----------------------------------------------------------------------------*/
1487
1488
/*----------------------------------------------- STM32F446xx ----------------*/
1489
#if defined(STM32F446xx)
1490
#define IS_GPIO_AF(AF) (((AF) == GPIO_AF0_RTC_50Hz) || ((AF) == GPIO_AF9_TIM14) || \
1491
((AF) == GPIO_AF0_MCO) || ((AF) == GPIO_AF0_TAMPER) || \
1492
((AF) == GPIO_AF0_SWJ) || ((AF) == GPIO_AF0_TRACE) || \
1493
((AF) == GPIO_AF1_TIM1) || ((AF) == GPIO_AF1_TIM2) || \
1494
((AF) == GPIO_AF2_TIM3) || ((AF) == GPIO_AF2_TIM4) || \
1495
((AF) == GPIO_AF2_TIM5) || ((AF) == GPIO_AF3_TIM8) || \
1496
((AF) == GPIO_AF4_I2C1) || ((AF) == GPIO_AF4_I2C2) || \
1497
((AF) == GPIO_AF4_I2C3) || ((AF) == GPIO_AF5_SPI1) || \
1498
((AF) == GPIO_AF5_SPI2) || ((AF) == GPIO_AF9_TIM13) || \
1499
((AF) == GPIO_AF6_SPI3) || ((AF) == GPIO_AF9_TIM12) || \
1500
((AF) == GPIO_AF7_USART1) || ((AF) == GPIO_AF7_USART2) || \
1501
((AF) == GPIO_AF7_USART3) || ((AF) == GPIO_AF8_UART4) || \
1502
((AF) == GPIO_AF8_UART5) || ((AF) == GPIO_AF8_USART6) || \
1503
((AF) == GPIO_AF9_CAN1) || ((AF) == GPIO_AF9_CAN2) || \
1504
((AF) == GPIO_AF10_OTG_FS) || ((AF) == GPIO_AF10_OTG_HS) || \
1505
((AF) == GPIO_AF11_ETH) || ((AF) == GPIO_AF12_OTG_HS_FS) || \
1506
((AF) == GPIO_AF12_SDIO) || ((AF) == GPIO_AF13_DCMI) || \
1507
((AF) == GPIO_AF15_EVENTOUT) || ((AF) == GPIO_AF5_SPI4) || \
1508
((AF) == GPIO_AF12_FMC) || ((AF) == GPIO_AF6_SAI1) || \
1509
((AF) == GPIO_AF3_CEC) || ((AF) == GPIO_AF4_CEC) || \
1510
((AF) == GPIO_AF5_SPI3) || ((AF) == GPIO_AF6_SPI2) || \
1511
((AF) == GPIO_AF6_SPI4) || ((AF) == GPIO_AF7_UART5) || \
1512
((AF) == GPIO_AF7_SPI2) || ((AF) == GPIO_AF7_SPI3) || \
1513
((AF) == GPIO_AF7_SPDIFRX) || ((AF) == GPIO_AF8_SPDIFRX) || \
1514
((AF) == GPIO_AF8_SAI2) || ((AF) == GPIO_AF9_QSPI) || \
1515
((AF) == GPIO_AF10_SAI2) || ((AF) == GPIO_AF10_QSPI))
1516
1517
#endif
/* STM32F446xx */
1518
/*----------------------------------------------------------------------------*/
1519
1520
/*------------------------------------------- STM32F469xx/STM32F479xx --------*/
1521
#if defined(STM32F469xx) || defined(STM32F479xx)
1522
#define IS_GPIO_AF(AF) (((AF) == GPIO_AF0_RTC_50Hz) || ((AF) == GPIO_AF9_TIM14) || \
1523
((AF) == GPIO_AF0_MCO) || ((AF) == GPIO_AF0_TAMPER) || \
1524
((AF) == GPIO_AF0_SWJ) || ((AF) == GPIO_AF0_TRACE) || \
1525
((AF) == GPIO_AF1_TIM1) || ((AF) == GPIO_AF1_TIM2) || \
1526
((AF) == GPIO_AF2_TIM3) || ((AF) == GPIO_AF2_TIM4) || \
1527
((AF) == GPIO_AF2_TIM5) || ((AF) == GPIO_AF3_TIM8) || \
1528
((AF) == GPIO_AF4_I2C1) || ((AF) == GPIO_AF4_I2C2) || \
1529
((AF) == GPIO_AF4_I2C3) || ((AF) == GPIO_AF5_SPI1) || \
1530
((AF) == GPIO_AF5_SPI2) || ((AF) == GPIO_AF9_TIM13) || \
1531
((AF) == GPIO_AF6_SPI3) || ((AF) == GPIO_AF9_TIM12) || \
1532
((AF) == GPIO_AF7_USART1) || ((AF) == GPIO_AF7_USART2) || \
1533
((AF) == GPIO_AF7_USART3) || ((AF) == GPIO_AF8_UART4) || \
1534
((AF) == GPIO_AF8_UART5) || ((AF) == GPIO_AF8_USART6) || \
1535
((AF) == GPIO_AF9_CAN1) || ((AF) == GPIO_AF9_CAN2) || \
1536
((AF) == GPIO_AF10_OTG_FS) || ((AF) == GPIO_AF10_OTG_HS) || \
1537
((AF) == GPIO_AF11_ETH) || ((AF) == GPIO_AF12_OTG_HS_FS) || \
1538
((AF) == GPIO_AF12_SDIO) || ((AF) == GPIO_AF13_DCMI) || \
1539
((AF) == GPIO_AF15_EVENTOUT) || ((AF) == GPIO_AF5_SPI4) || \
1540
((AF) == GPIO_AF5_SPI5) || ((AF) == GPIO_AF5_SPI6) || \
1541
((AF) == GPIO_AF8_UART7) || ((AF) == GPIO_AF8_UART8) || \
1542
((AF) == GPIO_AF12_FMC) || ((AF) == GPIO_AF6_SAI1) || \
1543
((AF) == GPIO_AF14_LTDC) || ((AF) == GPIO_AF13_DSI) || \
1544
((AF) == GPIO_AF9_QSPI) || ((AF) == GPIO_AF10_QSPI))
1545
1546
#endif
/* STM32F469xx || STM32F479xx */
1547
/*----------------------------------------------------------------------------*/
1548
1549
/*------------------STM32F412Zx/STM32F412Vx/STM32F412Rx/STM32F412Cx-----------*/
1550
#if defined(STM32F412Zx) || defined(STM32F412Vx) || defined(STM32F412Rx) || defined(STM32F412Cx)
1551
#define IS_GPIO_AF(AF) (((AF) < 16U) && ((AF) != 11U) && ((AF) != 14U) && ((AF) != 13U))
1552
#endif
/* STM32F412Zx || STM32F412Vx || STM32F412Rx || STM32F412Cx */
1553
/*----------------------------------------------------------------------------*/
1554
1555
/*------------------STM32F413xx/STM32F423xx-----------------------------------*/
1556
#if defined(STM32F413xx) || defined(STM32F423xx)
1557
#define IS_GPIO_AF(AF) (((AF) < 16U) && ((AF) != 13U))
1558
#endif
/* STM32F413xx || STM32F423xx */
1559
/*----------------------------------------------------------------------------*/
1560
1569
/* Private functions ---------------------------------------------------------*/
1586
#ifdef __cplusplus
1587
}
1588
#endif
1589
1590
#endif
/* __STM32F4xx_HAL_GPIO_EX_H */
1591
1592
/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
stm32f4xx_hal_def.h
This file contains HAL common defines, enumeration, macros and structures definitions.
picovoice_driver
Author(s):
autogenerated on Fri Apr 1 2022 02:14:52