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