CubeMX创建裸机工程:STM32F407+ LAN8720A + RMII + lwIP
硬件环境:
- MCU单片机型号:STM32F407VGTx
- PHY 芯片型号 : LAN8720
- MCU和PHY芯片接口:RMII
- 操作系统:无
- TCP/IP网络协议栈:lwIP
- 配置工具:CubeMX
- 编译工具:Keil5
- 烧录器:J-Link
- 烧录模式:SWD
原理图部分
STM32F407与PHY芯片LAN8720采用RMII接口方式,电路连接如下
CubeMX 配置
- 外部晶振作为时钟源
- 时钟配置
SWD烧写模式
RMIII的以太网接口
关闭操作系统
使能lwIP并开启静态IP模式
产生KEIL工程
裸机程序需要在主函数中添加MX_LWIP_Process()
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 | /** * @brief The application entry point. * @retval int */ int main(void) { /* USER CODE BEGIN 1 */ /* USER CODE END 1 */ /* MCU Configuration--------------------------------------------------------*/ /* Reset of all peripherals, Initializes the Flash interface and the Systick. */ HAL_Init(); /* USER CODE BEGIN Init */ /* USER CODE END Init */ /* Configure the system clock */ SystemClock_Config(); /* USER CODE BEGIN SysInit */ /* USER CODE END SysInit */ /* Initialize all configured peripherals */ MX_GPIO_Init(); MX_LWIP_Init(); /* USER CODE BEGIN 2 */ /* USER CODE END 2 */ /* Infinite loop */ /* USER CODE BEGIN WHILE */ while (1) { /* USER CODE END WHILE */ MX_LWIP_Process(); /* USER CODE BEGIN 3 */ } /* USER CODE END 3 */ } |
测试验证
将程序编译以后,烧到板子里面,然后配置电脑IP,使其在同一网段,ping 开发板
小结*
- 选择RMII接口方式以后,要逐个核对MCU引脚
- PHY芯片的时钟要保证稳定干净
- PHY芯片的复位和PHY地址要根据原理图配置
- 裸机工程需要手动添加MX_LWIP_Process();
获取工程和源码,请+QQ: 1025054559