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

文章目录

  • 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.rhkb.cn/news/414437.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【计算机网络】浏览器输入访问某网址时,后台流程是什么

在访问网址时,后台的具体流程可以因不同的网站、服务器和应用架构而异。 实际过程中可能还涉及更多的细节和步骤,如缓存处理、重定向、负载均衡等。 此外,不同的网站和应用架构可能会有不同的实现方式和优化策略。 部分特定网站或应用&#x…

云计算第二阶段---DBA Day8-Day9

DBA Day8 该阶段的2天内容,都会和数据库中间件,集群配置有关. 什么是中间件? 通俗来说,就是在正式文件内容从客户端发送或获取请求时,在传播过程中地点中间商,负责管理请求,并对其进行分类。 环境准备: 准备…

AssetsBundleExtractor中文汉化版2.2

感谢-DJ小良汉化 AssetsBundleExtractor工具是一款 人类黎明游戏的assest修改工具 和MOD制作所需要的一款软件 下载地址:https://pan.quark.cn/s/b8104b849fbe

23种设计模式之模板模式

一.什么是模板模式 ‌‌模板模式是一种行为型设计模式,它定义了一个算法的骨架,而将一些步骤留给子类实现。‌这种模式允许子类在不改变算法结构的基础上,重新定义算法的某些步骤。模板模式属于行为型设计模式,主要用于处理那些需…

SpringBoot应用打成ZIP部署包

背景 平常开发SpringBoot应用,打包的时候一般都是按默认的打包方式把所有资源、源码和依赖统一打到一个jar包,这种打包方式方便快捷。最近开发项目遇到一个需求,需要把项目中的配置文件和/bin目录中的启停脚本打到SpringBoot应用jar之外&…

「bug」nvitop ERROR: Failed to initialize curses

nvitop 作为一个优秀个 Nvidia显卡查询库,简单易用且显示信息十分丰富,相比 Nvidia-smi 更方便,简直是每个 开发人员必备的库,安装也十分方便,直接采用 pip install nvitop 即可,调用的时候也是直接在 Term…

Redis:Redis性能影响因素

这里写自定义目录标题 一、CPU对Redis的影响二、磁盘对Redis的影响三、网络对Redis的影响四、Swap对Redis的影响 一、CPU对Redis的影响 二、磁盘对Redis的影响 性能建议: 如果是热点场景,建议大家关闭rdb和aof。在SATA和SAS普通盘上,append…

RocketMQ集群搭建,及RocketMQ-Dashboard部署(前RocketMQ-Console)

集群搭建 RocketMQ不支持单主机搭建主从结构集群,当从节点启动时,即使和主节点设置不同的监听端口,他也要去监听主节点端口,也就是说正常启动的从节点会监听四个端口。原因未知,现象后面会列举出来。 1. 准备JAVA环境…

c++应用网络编程之八SOCKET探究

一、socket 在目前主流的网络通信中,SOCKET编程其实就是网络编程的代名词。在前面反复提到socket,那么socket到底是什么呢?英文的愿意是“插座、槽”的意思。这里虽然不讲解传统的网络协议但不得不简单说明一下。 首先从宏观上看&#xff0c…

超声波模块

HCSR04超声波模块是一种常用的测距模块,它通过检测超声波发射后遇到障碍物所反射的回波,从而测量出与障碍物之间的距离。以下是对HCSR04超声波模块的详细讲解: 一、模块组成与工作原理 组成:HCSR04超声波模块主要由两个压电陶瓷超…

Python一些可能用的到的函数系列131 发送钉钉机器人消息

说明 来自顾同学的助攻 钉钉机器人可以用来发送一些重要的系统消息,例如磁盘将满等等。原本还可以有更强的功能,就是监听群里的消息,然后做出反应,不过这个好像要买企业版,贵的毫无意义。 钉钉发消息有几种模式&#…

Ubuntu18.04 下安装CUDA

安装步骤 1.查看是否安装了cuda # 法1 cat /usr/local/cuda/version.txt # 法2 nvcc --version 2.若没有安装,则查看是否有N卡驱动,若无N卡驱动,则到软件与更新 -> 附加驱动中安装驱动 3.查看N卡驱动支持的cuda版本 nvidia-smi 如下…

VS+C++VTK-VCG三维网格模型鼠标框选拉普拉斯局部平滑

程序示例精选 VSCVTK-VCG三维网格模型鼠标框选拉普拉斯局部平滑 如需安装运行环境或远程调试,见文章底部个人QQ名片,由专业技术人员远程协助! 前言 这篇博客针对《VSCVTK-VCG三维网格模型鼠标框选拉普拉斯局部平滑》编写代码,代…

扑捉一只耿鬼(HTML文件)

图例&#xff1a; 代码&#xff1a; <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8" /><title>耿鬼</title><style>body {background: #fff;font-family: Comfortaa, sans-serif;}* {box-sizing:…

【Kubernetes】持久卷的动态供给 Dynamic Provisioning

《持久化存储》系列&#xff0c;共包含以下文章&#xff1a; K8s 持久化存储方式持久卷 PV持久卷声明 PVC持久卷的动态供给 Dynamic Provisioning &#x1f60a; 如果您觉得这篇文章有用 ✔️ 的话&#xff0c;请给博主一个一键三连 &#x1f680;&#x1f680;&#x1f680; …

C++实现文件加解密及OllyDbg逆向

一.PE病毒和WannaCry勒索蠕虫 1.PE病毒 什么是PE病毒&#xff1f; PE病毒是以Windows PE程序为载体&#xff0c;能寄生于PE文件或Windows系统的病毒程序。PE病毒数量非常之多&#xff0c;包括早起的CIH病毒&#xff0c;全球第一个可以破坏计算机硬件的病毒&#xff0c;它会破…

Linux和Unix的区别及为什么鸿蒙系统不用Unix的原因

目录 Linux是什么? Unix是什么&#xff1f; 他们的区别&#xff1a; 鸿蒙系统介绍及鸿蒙系统不用Unix的原因 Linux是什么? Linux的历史可以追溯到1991年&#xff0c;由芬兰的计算机科学家林纳斯托瓦兹&#xff08;Linus Torvalds&#xff09;为了学习操作系统的工作原理而…

计算机毕设选题推荐-基于python的豆瓣电子图书数据可视化分析

&#x1f496;&#x1f525;作者主页&#xff1a;毕设木哥 精彩专栏推荐订阅&#xff1a;在 下方专栏&#x1f447;&#x1f3fb;&#x1f447;&#x1f3fb;&#x1f447;&#x1f3fb;&#x1f447;&#x1f3fb; 实战项目 文章目录 实战项目 一、基于python的豆瓣电子图书数…

计算机毕业设计Hadoop+Spark抖音可视化 抖音舆情监测 预测算法 抖音爬虫 抖音大数据 情感分析 NLP 自然语言处理 Hive 机器学习 深度学习

技术栈&#xff1a;数据分析Spark、数据库Hive MySQL、服务器djano、爬虫requests jieba库中文分词&#xff0c;通俗来说&#xff0c;就是将一句(段)话按一定的规则(算法)拆分成词语、成语、单个文字。 中文分词是很多应用技术的前置技术&#xff0c;如搜索引擎、机器翻译、词…

SprinBoot+Vue学生选课小程序的设计与实现

目录 1 项目介绍2 项目截图3 核心代码3.1 Controller3.2 Service3.3 Dao3.4 application.yml3.5 SpringbootApplication3.5 Vue3.6 uniapp代码 4 数据库表设计5 文档参考6 计算机毕设选题推荐7 源码获取 1 项目介绍 博主个人介绍&#xff1a;CSDN认证博客专家&#xff0c;CSDN平…