第5章 STM32CUBE RMII配置和LWIP配置

前言

硬件的配置由前面的工程递增,会根据目的修改部分控制代码
由于本人较懒,记录主要是过程,原理性的东西网上一大把,我就不赘述了,由于懒,主要由图片和代码加少量文字组成
源码地址https://gitcode.com/qq_36517072/stm32,第x章为cx文件夹


一、STM32CUBE配置网络

1.1根据原理图配置ETH

由原理图可知对应的IO
alt textalt textalt text
配置CUBE ETH,在FREERTOS下使用中断接收
alt text
观察到默认引脚与原理图有三个引脚有区别,分别修改三个引脚
alt textalt text

1.2根据原理图配置PHY的复位

由原理图可知对应的复位IO为PD3
alt text
在CUBE内配置IO,并命名为ETH_RESET
alt text

1.3配置LWIP

使能LWIP,配置IP
alt text
配置PHY驱动类型
alt text
ctrl+s保存generate code

二、代码和测试

main函数里添加PHY的复位代码

  /* USER CODE BEGIN 2 */
	HAL_GPIO_WritePin(ETH_RESET_GPIO_Port, ETH_RESET_Pin, GPIO_PIN_RESET);
	HAL_Delay(10);
	HAL_GPIO_WritePin(ETH_RESET_GPIO_Port, ETH_RESET_Pin, GPIO_PIN_SET);
	HAL_Delay(10);
  /* USER CODE END 2 */

连接好烧录器编译并烧录

连接网线使用主机ping单片机可以ping通
alt text


总结

主要介绍了STM32CUBE下freertos的配置

问题解决

由于之前STM32做的少,调LWIP发现和以前工程一样的代码,会卡死在MX_LWIP_Init函数内,查阅资料发现问题可能是编译时的优化等级,在将优化等级改为O2后,初始化可以通过,但LED不转换,说明已经卡死;改为O1后,可以PING通几秒,然后又卡死;改为O0后才没问题,以往没对编译器优化研究过,但现在的MCU性能普遍很强,懒得去深究了。
alt text

参考

https://www.cnblogs.com/yu1741588584/p/18299835

posted @ 2025-09-02 16:37  夏影~  阅读(257)  评论(0)    收藏  举报