79 lines
2.3 KiB
Markdown
79 lines
2.3 KiB
Markdown
|
1. 配置ETH,使能以太网物理层驱动程序
|
|||
|
2. 使能lwIP,配置相关信息
|
|||
|
3. board.h中按说明操作
|
|||
|
- 开启宏定义
|
|||
|
- board.c添加初始化代码
|
|||
|
```c
|
|||
|
/**
|
|||
|
* @brief ETH MSP Initialization
|
|||
|
* This function configures the hardware resources used in this example
|
|||
|
* @param heth: ETH handle pointer
|
|||
|
* @retval None
|
|||
|
*/
|
|||
|
void HAL_ETH_MspInit(ETH_HandleTypeDef* heth)
|
|||
|
{
|
|||
|
GPIO_InitTypeDef GPIO_InitStruct = {0};
|
|||
|
if(heth->Instance==ETH)
|
|||
|
{
|
|||
|
/* USER CODE BEGIN ETH_MspInit 0 */
|
|||
|
|
|||
|
/* USER CODE END ETH_MspInit 0 */
|
|||
|
/* Peripheral clock enable */
|
|||
|
__HAL_RCC_ETH_CLK_ENABLE();
|
|||
|
|
|||
|
__HAL_RCC_GPIOC_CLK_ENABLE();
|
|||
|
__HAL_RCC_GPIOA_CLK_ENABLE();
|
|||
|
__HAL_RCC_GPIOB_CLK_ENABLE();
|
|||
|
/**ETH GPIO Configuration
|
|||
|
PC1 ------> ETH_MDC
|
|||
|
PA1 ------> ETH_REF_CLK
|
|||
|
PA2 ------> ETH_MDIO
|
|||
|
PA7 ------> ETH_CRS_DV
|
|||
|
PC4 ------> ETH_RXD0
|
|||
|
PC5 ------> ETH_RXD1
|
|||
|
PG11 PB11 ------> ETH_TX_EN
|
|||
|
PG13 PB12 ------> ETH_TXD0
|
|||
|
PG14 PB13 ------> ETH_TXD1
|
|||
|
*/
|
|||
|
GPIO_InitStruct.Pin = GPIO_PIN_1|GPIO_PIN_4|GPIO_PIN_5;
|
|||
|
GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
|
|||
|
GPIO_InitStruct.Pull = GPIO_NOPULL;
|
|||
|
GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH;
|
|||
|
GPIO_InitStruct.Alternate = GPIO_AF11_ETH;
|
|||
|
HAL_GPIO_Init(GPIOC, &GPIO_InitStruct);
|
|||
|
|
|||
|
GPIO_InitStruct.Pin = GPIO_PIN_1|GPIO_PIN_2|GPIO_PIN_7;
|
|||
|
GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
|
|||
|
GPIO_InitStruct.Pull = GPIO_NOPULL;
|
|||
|
GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH;
|
|||
|
GPIO_InitStruct.Alternate = GPIO_AF11_ETH;
|
|||
|
HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);
|
|||
|
|
|||
|
GPIO_InitStruct.Pin = GPIO_PIN_11|GPIO_PIN_14|GPIO_PIN_13;
|
|||
|
GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
|
|||
|
GPIO_InitStruct.Pull = GPIO_NOPULL;
|
|||
|
GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH;
|
|||
|
GPIO_InitStruct.Alternate = GPIO_AF11_ETH;
|
|||
|
HAL_GPIO_Init(GPIOG, &GPIO_InitStruct);
|
|||
|
|
|||
|
/* ETH interrupt Init */
|
|||
|
HAL_NVIC_SetPriority(ETH_IRQn, 0, 0);
|
|||
|
HAL_NVIC_EnableIRQ(ETH_IRQn);
|
|||
|
/* USER CODE BEGIN ETH_MspInit 1 */
|
|||
|
|
|||
|
/* USER CODE END ETH_MspInit 1 */
|
|||
|
}
|
|||
|
|
|||
|
}
|
|||
|
|
|||
|
void phy_reset(void)
|
|||
|
{
|
|||
|
rt_pin_mode(RESET_IO, PIN_MODE_OUTPUT);
|
|||
|
rt_pin_write(RESET_IO, PIN_HIGH);
|
|||
|
rt_thread_mdelay(50);
|
|||
|
rt_pin_write(RESET_IO, PIN_LOW);
|
|||
|
rt_thread_mdelay(50);
|
|||
|
rt_pin_write(RESET_IO, PIN_HIGH);
|
|||
|
}
|
|||
|
```
|