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

news2024/9/22 17:24:21

文章目录

  • STM32H750+CubeIDE+FreeRTOS+ETH(LAN8720A)+LWIP
  • CubeIDE配置
    • RCC
    • 时钟树
    • SYS
    • ETH
    • 串口
    • MPU
    • FreeRTOS
    • LWIP
    • GPIO
      • 然后就可以点击生成代码了!
  • 代码修改
    • printf重定向
    • 补充硬件复位
    • 更改补充链接文件
      • 然后就可以编译下载ping成功了!
  • socket网络编程

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网络编程

  • 开发完善中…

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2096118.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Freepik发布号称目前最强AI图像生成器Mystic

Freepik 于2024年8月27日正式推出了新的人工智能图像模型 “Mystic”,并号称是目前最强的AI图像生成器,本文从介绍Mystic开始,剖析其技术细节,功能特色,收费价格,并与当前市场上领先的 Midjourney V6.1 进行…

【dotnet】vscode配置dotnet开发环境

下载dotnet sdk https://dotnet.microsoft.com/en-us/download/visual-studio-sdks下载完安装,安装完毕在cmd中输入以下代码 dotnet出现以下结果代表安装完毕 在vscode终端中输入以下创建web项目 dotnet new webapp --output aspnetcoreapp --no-https上述命令…

[Jsprit]Jsprit学习笔记-vrp问题的求解

目录 一、整体的求解逻辑主要步骤 二、搜索策略的选择三、搜索策略执行解1、解的选择2、解的破坏3、解的接受3.1 新解的接受策略 一、整体的求解逻辑 下面是Jsprit实现的代码部分 public Collection<VehicleRoutingProblemSolution> searchSolutions() {logger.info(&q…

基于3D Slicer与matlab平台的图像引导介入手术-demo

1.实现手术手术导航的基本框架 2、基本协议框架 3、演示视频 DemoWithChinse2

unordered系列容器的实现

1. unordered_set与unordered_map的结构 我们知道STL中的unordered_set与unordered_map底层就是一个开散列的哈希表 1.1 unordered_set的结构 我们知道unordered_set其实就是K模型&#xff0c;所以unordered_set容器对红黑树的封装如下&#xff1a; template<class k, cl…

VTK随笔十二:体绘制(体绘制管线、vtkVolumeMapper、vtkVolume、不规则网格数据体绘制技术 )

体绘制&#xff0c;有时又称作三维重建(区别于投影图像的三维重建)&#xff0c;是一种直接利用体数据来生成二维图像的绘制技术。与面绘制不同&#xff0c;体绘制技术不需要提取体数据内部的等值面&#xff0c;它是一个对三维体数据进行采样和合成的过程。体绘制能够通过设置不…

【深度学习入门】计算机视觉任务

一、引言 对于神经网络&#xff0c;可以把中间的隐藏层看作一个黑盒子&#xff0c;这个黑盒子能自动选择如何提取特征&#xff0c;这不同于传统机器学习的人工操作&#xff0c;它的实现原理也是我们学习深度学习的重点。本文章以计算机视觉任务中的图像分类任务为例子&#xff…

zookeeper 集群搭建 及启动关闭脚本

1准备奇数台机子3&#xff0c;5&#xff0c;7 我准备的是三台 192.168.58.81 zookeeper-1 192.168.58.82 zookeeper-2 192.168.58.83 zookeeper-3 下载jdk 把他配置环境变量并检查是否是环境变量 echo $JAVA_HOME cd /opt/software wget http://mirrors.hust.edu.…

docker部署project-exam-system项目

8月30日笔记 项目实战&#xff1a;使用docker部署project-exam-system 1、背景&#xff1a; 使用基础的docker指令来创建镜像&#xff0c;实现项目的发布&#xff0c;使用Dockderfile&#xff0c;docker compose编排容器。 2、环境准备&#xff1a; &#xff08;1&#x…

sts 0/1 没有 pod生成 -> kube-controller-manager没了

kube-controller-manager.yaml 在 nerdctl ps -a 看不到 journalctl -xu kubelet > /tmp/kubelet.log /tmp/kubelet.log 老6

OpenSetting组件的用法

文章目录 1. 概念介绍2. 使用方法与主要功能2.1 使用方法2.2 主要功能 3. 示例代码4. 内容总结 我们在上一章回中介绍了"如何获取App自身信息"相关的内容&#xff0c;本章回中将介绍一个三方包:open_setting.闲话休提&#xff0c;让我们一起Talk Flutter吧。 1. 概念…

JavaWeb:实验二JSP表单开发及访问数据库

一、实验目的 1&#xff0e;掌握JSP表单的开发方法。 2&#xff0e;熟悉JDBC技术和使用JDBC连接各种数据库。 二、实验性质 综合性实验 三、实验内容 实现注册与登录功能&#xff1a; 1.创建一个数据库&#xff0c;在数据库建立用户表。&#xff08;5分&#xff09; 2…

城市管理违规行为智能识别 Task3学习心得

本次学习主要针对数据集增强和模型预测 1、数据增强&#xff1a; 1&#xff09;将四张训练图像组合成一张&#xff0c;增加物体尺度和位置的多样性。 2&#xff09;复制一个图像的随机区域并粘贴到另一个图像上&#xff0c;生成新的训练样本 3&#xff09;图像的随机旋转、…

day25 Java基础——面向对象两万字详解!(纯干货)

day25 Java基础——面向对象两万字详解&#xff01;&#xff08;纯干货&#xff09; 文章目录 day25 Java基础——面向对象两万字详解&#xff01;&#xff08;纯干货&#xff09;1. 类与对象的关系类&#xff08;Class&#xff09;对象&#xff08;Object&#xff09;类与对象…

gitee绑定公钥后依旧无法使用_gitee push添加公钥无效

解决&#xff1a; 步骤按照官网操作即可&#xff1a;gitee官方说明 看看远程地址是否使用的http模式&#xff0c;是的话换ssh模式

Adobe Acrobat Reader的高级功能详解

​ 大家好&#xff0c;我是程序员小羊&#xff01; 前言&#xff1a; Adobe Acrobat Reader是广泛使用的PDF查看器&#xff0c;其不仅可以用于查看和打印PDF文件&#xff0c;还具有一些高级功能&#xff0c;可以提升用户的PDF文档处理效率。以下是对Adobe Acrobat Reader的一些…

RH850系列芯片深度剖析 1.7-启动流程解析

RH850系列芯片深度剖析 1.7-启动流程解析 文章目录 RH850系列芯片深度剖析 1.7-启动流程解析一、简介二、启动相关文件说明三、启动相关的段四、启动流程4.1 启动文件启动4.1.1 寄存器初始化4.1.2 时钟初始化4.1.3 模块Standby寄存器初始化4.1.4 启动从核4.1.5 硬件初始化4.1.5…

vector模拟实现迭代器失效

目录 1.vector和vector> 1.1两者的区别 1.2遍历的方法 2.vector模拟实现的准备 3.reserve出现的问题及解决方案 4.遍历vector的三种方式 5.关于typename的使用 6.insert导致的迭代其实失效问题 6.1因为扩容导致的迭代器失效 6.2因为插入数据倒置的迭代器失效 1.vec…

【精彩回顾·成都】成都 UG 生成式 AI 工作坊:AI 革命下的商业模式创新!

文章目录 前言一、活动介绍二、精彩分享内容及活动议程2.1、亚马逊云科技社区情况和活动介绍2.2、《浅谈 AIGC 商业化》2.3、《AI 浪潮下的产品落地》2.4、现场互动情况2.5、休息茶歇时间2.6、《AI 赋能商业革新&#xff1a;智能化转型的策略与实践》2.7、《动手实践&#xff1…

GAMES104:10+11游戏引擎中物理系统的基础理论算法和高级应用-学习笔记

文章目录 概览一&#xff0c;物理对象与形状1.1 对象 Actor1.2 对象形状Actor Shape 二&#xff0c;力与运动2.1 牛顿定律2.2 欧拉法2.2.1 显式欧拉法Explicit (Forward) Euler’s Method2.2.2 隐式欧拉法 Implicit (Backward) Euler’s Method2.2.3 半隐式欧拉法 Semi-implici…