单片机学习小组
直播中

陈文博

8年用户 958经验值
擅长:测量仪表
私信 关注

如何利用STM32CubeMX实现FreeRTOS+LAN8720A+LWIP的以太网ping通?

如何利用STM32CubeMX实现FreeRTOS+LAN8720A+LWIP的以太网ping通?

回帖(1)

李研

2022-2-22 11:34:46
1.威廉希尔官方网站 配置


图中,LAN8720A的ETH_RESET是直接与PD3相连的。

2 CubeMX的配置


2.1首先时钟配置

2.2 SYS配置

2.3 使能ETH,模式选择RMII;

配置



2.4 使能LWIP 并且配置;




2.5 FREEOTOS配置




2.6 GPIO设置
探索者STM32F407ZGT6板子PHY芯片的ETH_DXT1和ETH_DXT0用的是PG13,PG14引脚,ETH_TX_EN用的是PG11引脚,ETH_RESET是直接与PD3相连的。
所以GPIO引脚这样设置 ,其中PD3引脚配置为GPIO_OUT的模式



2.7 时钟设置

2.8生成代码



3 在freeotos.c文件中在void StartPingTask(void *argument)任务函数中添加


/* USER CODE END Header_StartPingTask */
void StartPingTask(void *argument)
{
/* USER CODE BEGIN StartPingTask */
  /* Infinite loop */
MX_LWIP_Init();
  for(;;)
  {
/* USER CODE BEGIN ETH_MspInit 1 */
  /* 以下代码,作用用于使能 LAN8720A 芯片*/
  HAL_GPIO_WritePin(ETH_RST_GPIO_Port,ETH_RST_Pin,GPIO_PIN_RESET);
  HAL_Delay(50);
  HAL_GPIO_WritePin(ETH_RST_GPIO_Port,ETH_RST_Pin,GPIO_PIN_SET);
  /* USER CODE END ETH_MspInit 1 */
   osDelay(1);
  }
  /* USER CODE END StartPingTask */
}
4.测试


接下来我们的开发板连上电脑,保证电脑IP地址和开发板IP地址在同一网段后按Windows+R后输入cmd回车打开CMD,在界面输入ping 192.168.1.10,可以得到
测试成功!!!
举报

更多回帖

发帖
×
20
完善资料,
赚取积分