This is an old revision of the document!
Alternate Functions (GPIO)
- The output buffer can be enabled (open drain or push-pull).
- The output buffer is controlled by connected peripheral.
- The Schmitt trigger input is active.
- The pull-up and -down resistors are active, according to PUPDR.
- Input data is sampled every AHB clock.
- Input data register holds I/O state.
Programming Instructions
Depending on the alternate function you have to configure the pins as:
Configuration Registers
MODER
AFRL/H
Alternate function register (low / high)
Pin x | 0000 | AF0: RTC, MCO, Tamper, SWJ, Trace |
0001 | AF1: Timer 1, Timer 2 | |
0010 | AF2: Timer 3..5 | |
0011 | AF3: Timer 8..11 | |
0100 | AF4: I²C 1..3 | |
0101 | AF5: SPI 1,2,4..6 | |
0110 | AF6: SPI 3, SAI 1 | |
0111 | AF7: USART 1..3, I²S 3 Ext | |
1000 | AF8: UART 4..8 | |
1001 | AF9: CAN 1..2, Timer 12..14 | |
1010 | AF10: USB OTG HS/FS | |
1011 | AF11: Ethernet | |
1100 | AF12: FMC, USB OTG HS/FS, SDIO | |
1101 | AF13: DCMI | |
1110 | AF14: LTDC | |
1111 | AF15: Event Out |
PUPDR
Push-up / pull-down register
Pin x | 00 | No pull-up, pull-down (reset state) |
01 | Pull-up | |
10 | Pull-down | |
11 | Reserved |
OTYPER
OSPEEDR
Output speed register
Pin x | 00 | Speed: 2 MHz (reset state) |
01 | Speed: 10 MHz | |
10 | Speed: 50 MHz | |
11 | Speed: 100 MHz |
Data Registers
There are no data registers available in alternate function mode.