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.




Depending on the alternate function you have to configure the pins as:


Hardware Abstraction Layer
Registry Types
InES GPIO HAL Interface


Mode register




Pin x11Alternate function mode

Alternate function register (low / high)







Pin x0000AF0: RTC, MCO, Tamper, SWJ, Trace
0001AF1: Timer 1, Timer 2
0010AF2: Timer 3..5
0011AF3: Timer 8..11
0100AF4: I²C 1..3
0101AF5: SPI 1,2,4..6
0110AF6: SPI 3, SAI 1
0111AF7: USART 1..3, I²S 3 Ext
1000AF8: UART 4..8
1001AF9: CAN 1..2, Timer 12..14
1010AF10: USB OTG HS/FS
1011AF11: Ethernet
1100AF12: FMC, USB OTG HS/FS, SDIO
1101AF13: DCMI
1110AF14: LTDC
1111AF15: Event Out

Push-up / pull-down register




Pin x00No pull-up, pull-down (reset state)
01Pull-up
10Pull-down
11Reserved

Output type register




Pin x0Output type: push-pull (reset state)
1Output type: open-drain

Output speed register




Pin x00Speed: 2 MHz (reset state)
01Speed: 10 MHz
10Speed: 50 MHz
11Speed: 100 MHz

There are no data registers available in alternate function mode.




  • stm32/peripherals/gpio_alternate.1478592474.txt.gz
  • Last modified: 2016/11/08 08:07
  • by feur