1+ #include "stm32f7xx_hal.h"
2+
3+ /**
4+ * Override HAL Eth Init function
5+ */
6+ void HAL_ETH_MspInit (ETH_HandleTypeDef * heth )
7+ {
8+ GPIO_InitTypeDef GPIO_InitStructure ;
9+ if (heth -> Instance == ETH ) {
10+
11+ /* Enable GPIOs clocks */
12+ __HAL_RCC_GPIOA_CLK_ENABLE ();
13+ __HAL_RCC_GPIOC_CLK_ENABLE ();
14+ __HAL_RCC_GPIOD_CLK_ENABLE ();
15+ __HAL_RCC_GPIOG_CLK_ENABLE ();
16+
17+ /** ETH GPIO Configuration
18+ RMII_REF_CLK ----------------------> PA1
19+ RMII_MDIO -------------------------> PA2
20+ RMII_MDC --------------------------> PC1
21+ RMII_MII_CRS_DV -------------------> PA7
22+ RMII_MII_RXD0 ---------------------> PC4
23+ RMII_MII_RXD1 ---------------------> PC5
24+ RMII_MII_RXER ---------------------> PD5
25+ RMII_MII_TX_EN --------------------> PG11
26+ RMII_MII_TXD0 ---------------------> PG13
27+ RMII_MII_TXD1 ---------------------> PG14
28+ */
29+ /* Configure PA1, PA2 and PA7 */
30+ GPIO_InitStructure .Speed = GPIO_SPEED_HIGH ;
31+ GPIO_InitStructure .Mode = GPIO_MODE_AF_PP ;
32+ GPIO_InitStructure .Pull = GPIO_NOPULL ;
33+ GPIO_InitStructure .Alternate = GPIO_AF11_ETH ;
34+ GPIO_InitStructure .Pin = GPIO_PIN_1 | GPIO_PIN_2 | GPIO_PIN_7 ;
35+ HAL_GPIO_Init (GPIOA , & GPIO_InitStructure );
36+
37+ /* Configure PC1, PC4 and PC5 */
38+ GPIO_InitStructure .Pin = GPIO_PIN_1 | GPIO_PIN_4 | GPIO_PIN_5 ;
39+ HAL_GPIO_Init (GPIOC , & GPIO_InitStructure );
40+
41+ /* Configure PD5 */
42+ GPIO_InitStructure .Pin = GPIO_PIN_5 ;
43+ HAL_GPIO_Init (GPIOD , & GPIO_InitStructure );
44+
45+ /* Configure PG11, PG13 and PG14 */
46+ GPIO_InitStructure .Pin = GPIO_PIN_11 | GPIO_PIN_13 | GPIO_PIN_14 ;
47+ HAL_GPIO_Init (GPIOG , & GPIO_InitStructure );
48+
49+ /* Enable the Ethernet global Interrupt */
50+ HAL_NVIC_SetPriority (ETH_IRQn , 0x7 , 0 );
51+ HAL_NVIC_EnableIRQ (ETH_IRQn );
52+
53+ /* Enable ETHERNET clock */
54+ __HAL_RCC_ETH_CLK_ENABLE ();
55+ }
56+ }
57+
58+ /**
59+ * Override HAL Eth DeInit function
60+ */
61+ void HAL_ETH_MspDeInit (ETH_HandleTypeDef * heth )
62+ {
63+ if (heth -> Instance == ETH ) {
64+ /* Peripheral clock disable */
65+ __HAL_RCC_ETH_CLK_DISABLE ();
66+
67+ /** ETH GPIO Configuration
68+ RMII_REF_CLK ----------------------> PA1
69+ RMII_MDIO -------------------------> PA2
70+ RMII_MDC --------------------------> PC1
71+ RMII_MII_CRS_DV -------------------> PA7
72+ RMII_MII_RXD0 ---------------------> PC4
73+ RMII_MII_RXD1 ---------------------> PC5
74+ RMII_MII_RXER ---------------------> PD5
75+ RMII_MII_TX_EN --------------------> PG11
76+ RMII_MII_TXD0 ---------------------> PG13
77+ RMII_MII_TXD1 ---------------------> PG14
78+ */
79+ HAL_GPIO_DeInit (GPIOA , GPIO_PIN_1 | GPIO_PIN_2 | GPIO_PIN_7 );
80+ HAL_GPIO_DeInit (GPIOC , GPIO_PIN_1 | GPIO_PIN_4 | GPIO_PIN_5 );
81+ HAL_GPIO_DeInit (GPIOD , GPIO_PIN_5 );
82+ HAL_GPIO_DeInit (GPIOG , GPIO_PIN_11 | GPIO_PIN_13 | GPIO_PIN_14 );
83+
84+ /* Disable the Ethernet global Interrupt */
85+ NVIC_DisableIRQ (ETH_IRQn );
86+ }
87+ }
0 commit comments