Добавил ссылку выше. Конфиг пинов ST в коде у меня выглядел так: // MODER register
#define M_I 0
#define M_O 1
#define M_F 2
#define M_A 3
// OSPEEDR register
#define S_L 0
#define S_M 1
#define S_F 2
#define S_H 3
// PUPDR register
#define P_N 0
#define P_U 1
#define P_D 2
#define _PIN(x, y) ((y)<<(2*(x)))
void pin_init(void)
{
/* PORT A
  Pin    Name          AltFunc  Dir  Pull  Speed 
  PA0  - LAN_CRS       B        F    N     H     
  PA1  - LAN_RX_CLK    B        F    N     H     
  PA2  - LAN_MDIO      B        F    N     M     
  PA3  - LAN_COL       B        F    N     H     
  PA4  - nc            0        I    D     L     
  PA5  - nc            0        I    D     L     
  PA6  - nc            0        I    D     L     
  PA7  - LAN_RX_DV     B        F    N     H     
  PA8  - RCC_MCO_1     0        F    N     H     
  PA9  - nc            0        I    D     L     
  PA10 - nc            0        I    D     L     
  PA11 - nc            0        I    D     L     
  PA12 - nc            0        I    D     L     
  PA13 - SYS_SWDIO     0        F    U     F     
  PA14 - SYS_SWCLK     0        F    D     F     
  PA15 - SPI_SS        5        F    N     H     
*/
    GPIOA->AFR[1]  = 0x50000000;
    GPIOA->AFR[0]  = 0xB000BBBB;
    GPIOA->MODER   = _PIN(15, M_F)| _PIN(14, M_F)| _PIN(13, M_F)| _PIN(12, M_I)| _PIN(11, M_I)| _PIN(10, M_I)| _PIN(9, M_I)| _PIN(8, M_F)| 
                     _PIN(7, M_F) | _PIN(6, M_I) | _PIN(5, M_I) | _PIN(4, M_I) | _PIN(3, M_F) | _PIN(2, M_F) | _PIN(1, M_F)| _PIN(0, M_F);
    GPIOA->OTYPER  = 0x00000000;
    GPIOA->OSPEEDR = _PIN(15, S_H)| _PIN(14, S_F)| _PIN(13, S_F)| _PIN(12, S_L)| _PIN(11, S_L)| _PIN(10, S_L)| _PIN(9, S_L)| _PIN(8, S_H)| 
                     _PIN(7, S_H) | _PIN(6, S_L) | _PIN(5, S_L) | _PIN(4, S_L) | _PIN(3, S_H) | _PIN(2, S_M) | _PIN(1, S_H)| _PIN(0, S_H);
    GPIOA->PUPDR   = _PIN(15, P_N)| _PIN(14, P_D)| _PIN(13, P_U)| _PIN(12, P_D)| _PIN(11, P_D)| _PIN(10, P_D)| _PIN(9, P_D)| _PIN(8, P_N)| 
                     _PIN(7, P_N) | _PIN(6, P_D) | _PIN(5, P_D) | _PIN(4, P_D) | _PIN(3, P_N) | _PIN(2, P_N) | _PIN(1, P_N)| _PIN(0, P_N);
    __DSB();
/* ................. */
}