STM32H750+CubeIDE+FreeRTOS+ETH(LAN8720A)+LWIP

STM32H750+CubeIDE+FreeRTOS+ETH(LAN8720A)+LWIP

前言:该文章只做成功案例记录,不做讲解。用到的板子具体型号为STM32H750VBT6

CubeIDE配置

RCC

  • 根据实际情况开启时钟,一般为 外部高速晶振,输出的时钟根据自己的原理图,我这里是PA8,所以勾选的 master clock output 1。
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

时钟树

  • 选择外部时钟,让主频达到最高。
  • 注意输出的时钟,也要选择HSE外部高速,否则可能导致初始化失败。
    在这里插入图片描述

SYS

  • 由于要上系统,所以sys需要选择其他的定时器,而不能是systick
    在这里插入图片描述

ETH

  • 找到ETH,根据实际情况选则mode,这里我是 RMII,然后GPIO速度全部拉倒最高
    在这里插入图片描述
  • 参数设置保持默认即可,但需要记住这个地址参数,后续还会有别的地方用到的这个地址。
    在这里插入图片描述
  • 开启全局中断。
    在这里插入图片描述

串口

  • 根据自己的情况开启一个串口,Mode是 Asynchronous
    在这里插入图片描述

MPU

  • 如图配置即可。
    在这里插入图片描述

FreeRTOS

  • 开启FreeRTOS,将TOTAL_HEAP_SIZE给个30720bytes。
    在这里插入图片描述
  • 来到Advanced settings开启Newlib settings,不开的话生成代码时会有弹窗提示需要打开这个设置。
    在这里插入图片描述
  • 创建默认的任务和一个闪灯的任务用于测试,defaultTask的栈要给大一点,lwip会默认在这个里面初始化。
    在这里插入图片描述

LWIP

  • 启动lwip,关闭动态分配ip地址,自行进行配置。
    在这里插入图片描述
  • 按照如下图更改配置即可,其他默认。
    在这里插入图片描述
  • Platform如图,只能选择LAN8742
    在这里插入图片描述

GPIO

  • 现在来补充配置一下复位的IO,以及灯的IO。我这里的复位是PC0 (初始为高电平), LED是PE7。根据自己实际情况。
    在这里插入图片描述
    在这里插入图片描述

然后就可以点击生成代码了!

代码修改

printf重定向

  • 这里先不做说明

补充硬件复位

  • 找到ethernetif.c,在如图所示位置添加硬件复位。
    在这里插入图片描述

  • 再在main.c 里补充一下使能。

	/* USER CODE BEGIN SysInit */
	__HAL_RCC_D2SRAM1_CLK_ENABLE();
	__HAL_RCC_D2SRAM2_CLK_ENABLE();
 	/* USER CODE END SysInit */

在这里插入图片描述

  • 补充一下闪灯的任务
    在这里插入图片描述

更改补充链接文件

  • 找到STM32H750VBTX_FLASH.ld,补充一段,如图。地址参数就是前面配置ETH部分所提到的。
    /* Modification start */
.lwip_sec (NOLOAD) :
{
. = ABSOLUTE(0x30000000);
*(.RxDecripSection) 
. = ABSOLUTE(0x30000080);
*(.TxDecripSection)
. = ABSOLUTE(0x30000100);
*(.Rx_PoolSection) 
} >RAM_D2
/* Modification end */

在这里插入图片描述

然后就可以编译下载ping成功了!

在这里插入图片描述

  • 记住先设置自己电脑的ip地址要和板子同一网段。
    在这里插入图片描述
  • 要ping自己给板子所配置的ip地址哦!

socket网络编程

  • 开发完善中…
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值