这些小活动你都参加了吗?快来围观一下吧!>>
电子产品世界 » 论坛首页 » 活动中心 » 板卡试用 » 【换取手持示波器】NUCLEO-F429ZI以太网Lwip测试

共2条 1/1 1 跳转至

【换取手持示波器】NUCLEO-F429ZI以太网Lwip测试

助工
2025-03-09 22:24:51   被打赏 29 分(兑奖)     打赏

1、简介

Light weight IPLWIP)轻量化的 TCP/IP 协议,LwIP 的设计初衷是用少量的资源消耗(RAM)实现一个较为完整的 TCP/IP 协议栈, 在保持 TCP 协议主要功能的基础上减少对 RAM 的占用。LwIP既可以移植到操作系统上运行,也可以在无操作系统的情况下独立运行。它只需十几KBRAM40K左右的ROM就可以运行,这使LwIP协议栈适合在低端的嵌入式系统中使用。

2、准备工具

准备一块带以太网RJ45网口的ST开发板,这里以NUCLEO-F429ZI为例;

家用路由器一个;

网线一根。

3、cubemx工程设置

勾选ETH外设,接口选择RMII,其他选项保持默认

image.png

NUCLEO-F429ZIETH外设没有集成物理层的数据转换芯片,这里使用的外部PHY模块为LAN8742,需要在Lwip平台设置中指明PHY型号。

image.png

Lwip的设置参数有很多,以下只需进行少量的参数配置完成简易驱动即可

使能DHCP模块,用于分配动态IP地址。使能ICMP模块,为后面电脑与开发板Ping通信使用,还有是设置UDP、TCP的客户端连接数量,连接数量越多则占用的资源也相应增加。

image.png

以生成MDK工程为例,同时注意调大堆栈大小

image.png

4、软件测试

lwip库自动生成了一系列变量,ipv4地址缓存、子网掩码、网关等

image.png

主要测试代码放置在main.c文件,在main文件需要声明必要变量以及导入外部变量

image.png

/*
USER CODE BEGIN PV */
extern
struct netif gnetif;
struct
dhcp *dhcp;
/*
USER CODE END PV */

cubemx已完成Lwip初始化

image.png

  /* USER CODE BEGIN WHILE */
  while (1)
  {
    /* USER CODE END WHILE */

    /* USER CODE BEGIN 3 */
    
    /* USER CODE END WHILE */

    /* USER CODE BEGIN 3 */
		MX_LWIP_Process();
		dhcp = netif_dhcp_data(&gnetif);
		printf("DHCP IPV4 Address: %s\n", ip4addr_ntoa(&dhcp->offered_ip_addr));
		printf("DHCP SubnetMask: %s\n", ip4addr_ntoa(&dhcp->offered_sn_mask));
		printf("DHCP Gateway: %s\n", ip4addr_ntoa(&dhcp->offered_gw_addr));
		HAL_Delay(1200);
  }

实物连接图

image.png

串口输出开发板获取的IP信息

LM]34ZY4GL$XDFFH(Z8XDN3.png

局域网Ping测试

H74FM8)B00}XDULKKCNMY6J.png





关键词: lwip测试    

专家
2025-03-10 07:09:08     打赏
2楼

谢谢分享


共2条 1/1 1 跳转至

回复

匿名不能发帖!请先 [ 登陆 注册 ]