STM32H750+LAN8720无操作系统移植lwip

13 篇文章 0 订阅
4 篇文章 0 订阅

前言

本文提供移植好的工程(仅使用串口和以太网外设),STM32H750+LAN8720



环境

STM32CubeMX: V6.8.1
STM32H7 HAL Pack: V1.11.1


硬件连接

STM32H750 GPIO定义如下:

在这里插入图片描述


LAN8720 GPIO定义如下:

在这里插入图片描述


连接方式如下:

LAN8720       <—>     STM32H750
MDIO                 ETH_MDIO
MDC                 ETH_MDC
TX0                 ETH_TXD0
TX1                 ETH_TXD1
RX0                 ETH_RXD0
RX1                 ETH_RXD1
TX-EN               ETH_TX_EN
CRS                 ETH_CRS_DV
nINT/RETCK            ETH_REF_CLK



配置STM32CubeMX

基础配置

新建项目,我这里是STM32H750VBT6

在这里插入图片描述


配置时钟,选择时钟源

在这里插入图片描述


将主频配置为最大即480MHz

在这里插入图片描述

配置MPU

使能ICACHE和DCACHE

使能MPU 选择only+disable模式,并配置两个区

这两个配置特别重要,配置有误就ping不通

在这里插入图片描述

配置以太网

配置以太网,选择RMII模式

在这里插入图片描述


修改描述符地址和buff长度

在这里插入图片描述


使能中断

在这里插入图片描述


将相关GPIO全部配置成高速

在这里插入图片描述


配置LWIP

使能LWIP并选择LAN8742平台(与LAN8720兼容)

在这里插入图片描述


取消DHCP并配置合适的固定IP

在这里插入图片描述

配置串口

使能UART1用于debug

在这里插入图片描述

生成代码

配置工程输出,这里选择的是MDK5

在这里插入图片描述
在这里插入图片描述

勾选MicroLIB,否则无法跑通

在这里插入图片描述


建议取消这个选项,否则编译会很慢

在这里插入图片描述

修改main函数

将main()替换为如下内容,主要修改如下:

①使能SRAM3

②运行LWIP任务

③增加串口打印

int main(void)
{
	int uart_tick = 0;
	MPU_Config();
	SCB_EnableICache();
	SCB_EnableDCache();
	__HAL_RCC_D2SRAM3_CLK_ENABLE();
	HAL_Init();
	SystemClock_Config();
	MX_GPIO_Init();
	MX_USART1_UART_Init();
	MX_LWIP_Init();

	while (1)
	{
		MX_LWIP_Process();

		if (HAL_GetTick() - uart_tick > 1000)
		{
			HAL_UART_Transmit(&huart1, "hello world!\r\n", 14, 100);

			uart_tick = HAL_GetTick();
		}
	}
}

编译成功

在这里插入图片描述

运行

成功ping通
在这里插入图片描述

串口正常打印

在这里插入图片描述

  • 5
    点赞
  • 28
    收藏
    觉得还不错? 一键收藏
  • 13
    评论
STM32H750LAN8720是两种常用的硬件设备,可以在嵌入式系统中一起使用。下面是一个关于如何使用STM32H750LAN8720的简要介绍: 1. STM32H750是STMicroelectronics公司推出的一款高性能微控制器,它基于ARM Cortex-M7内核,具有丰富的外设和强大的计算能力。它适用于各种应用领域,包括工业自动化、消费电子、医疗设备等。 2. LAN8720是一款高性能的以太网物理层收发器,支持10/100Mbps的以太网通信。它采用了低功耗设计,适用于各种嵌入式以太网应用,如工业控制、智能家居、物联网等。 要在STM32H750上使用LAN8720,您需要进行以下步骤: 1. 配置硬件连接:将LAN8720的引脚连接到STM32H750的相应引脚。具体的引脚连接可以参考硬件设计文档或开发板的原理图。 2. 配置软件:使用STM32CubeMX软件来配置STM32H750的引脚和外设。您可以选择以太网外设并配置相应的参数,例如MAC地址、速度、双工模式等。 3. 编写代码:使用C语言或其他支持的编程语言编写代码来初始化以太网外设并进行数据通信。您可以使用STM32Cube软件包中提供的驱动程序和示例代码作为起点。 4. 调试和测试:使用调试器和适当的工具来调试和测试您的代码。您可以使用串口调试工具或网络调试工具来监视和分析以太网通信。 请注意,以上步骤只是一个简要的介绍,具体的实现细节和配置可能因具体的硬件和软件环境而有所不同。建议您参考相关的文档和资料,以获得更详细和准确的信息。
评论 13
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值