[原创] 【STM32H7S78-DK】测评+ToucGFX之Lwip移植

lugl4313820   2024-10-1 10:42 楼主

【前言】

lwip是MCU连接网络的基础构件,配置并移植lwip,使得开发板连上网络,是网络开发的最基础步骤,本篇在前面的基础工程上配置lwip,并能成功获取lwip,在界面上展示获取到的IP地址。

【基础工程】

此次基础工程在上面的测评文章的基础上创建。

【STM32H7S78-DK】测评+ToucGFX之FATFS文件系统移植 - stm32/stm8 - 电子工程世界-论坛 (eeworld.com.cn)

【原理图分析】

先分析一下开发板的网络的原理图:

image.png  

原理图上我们可以得知,网络采用LAN8742来连接网络,采用RMII协议来与MCU连接。同时LAN8742外接了25MHz的晶振来提供时钟信号,并通过PD7连接到MCU中。

【图形化配置】

1、打开工程的配置,打开ETH,选择模式为RMII,使能中断引脚,同时使用中断。

image.png  

2、确认ETH的时钟为LAN8742的时钟输入。(注意这里有他的时钟输入本来为25M,但是修改不了)

image.png  

3、在参数配置中,使能中断,优先级为5。

4、确认一下GPIO,并把所有的GPIO修改为VeryHight的通信速度。同时修改PB1为ETH_RMIITXD1,修改好的GPIO如下图所示:

image.png  

 

5、确认一下开发板的JP6的跳线位置,使用RMII时需要把J6跳到PC1上。在用户手册上有介绍:

image.png   6、基本参数保持默认即可。这些参数到时在设置网络地址时需要用到。

image.png  

【LWIP配置】

1、先打开LWIP的配置,使能LWIP,先设置收发硬件为LAN8742。

image.png   2、在通用配置中,由于我的路由器有DHCP,所以这里设置为ENABLE,如果没有DHCP服务器,则需要使用固定IP,并在下面设置好IP、网关等配置。

image.png  

2、修改heap大小为4*1024,如果这里设置太小,程序会跑飞。

image.png  

3、配置tcp回调参数如下:

image.png  

4、配置freertos任务栈大小为2*1024字节。

image.png  

其余的参数保持默认即可。

生成工程,并使用MDK打开工程:

【代码添加】

1、在freertos.c中添加#include "cmsis_os2.h"

image.png  

在freertos.c下在StartDefaultTask任务中初始化lwip。

【编译与验证】

编译好后下载到开发板,从路由器中查看所接入的IP为192.168.3.237,使用PING可顺利的PING通

image.png  

【GUI展示IP】

1、在图形界面添加获取IP的text与button

image.png   2、定义自定义函数:

image.png  

3、编写实现函数:

void Screen1View::funShowIP()
{
	Unicode::snprintf(textIpddressBuffer,20,("IP:%d.%d.%d.%d"),((gnetif.ip_addr.addr)&0x000000ff),
								(((gnetif.ip_addr.addr)&0x0000ff00)>>8),
								(((gnetif.ip_addr.addr)&0x00ff0000)>>16),
								((gnetif.ip_addr.addr)&0xff000000)>>24);
	textIpddress.invalidate();
}

4、下载到开发板后,按下button可以获取到IP

image.png  

【总结】

移植lwip的步骤比较简单,主要就是需要手工修改一下堆栈的大小,核对跳线与原理图等。

本帖最后由 lugl4313820 于 2024-10-1 12:28 编辑

回复评论 (3)

学习了,话说国庆假期都不休息的嘛

点赞  2024-10-1 17:52
引用: UUC 发表于 2024-10-1 17:52 学习了,话说国庆假期都不休息的嘛

每天学习,写作业就是渡假,根本停不下来!

点赞  2024-10-1 21:14

4楼 UUC 

引用: lugl4313820 发表于 2024-10-1 21:14 每天学习,写作业就是渡假,根本停不下来!

果真兴趣才是最大的动力源,才能保持持续的学习力

没有特别的幸运,就要特别的努力
点赞  2024-10-1 22:55
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 京公网安备 11010802033920号
    写回复