当前位置: 首页 > news >正文

A12 STM32_HAL库函数 之 HAL-ETH通用驱动 -- A -- 所有函数的介绍及使用

A12 STM32_HAL库函数 之 HAL-ETH通用驱动 -- A -- 所有函数的介绍及使用

  • 1 通用定时器(TIM)预览
    • 1.1 HAL_ETH_Init
    • 1.2 HAL_ETH_DeInit
    • 1.3 HAL_ETH_DMATxDescListInit
    • 1.4 HAL_ETH_DMARxDescListInit
    • 1.5 HAL_ETH_MspInit
    • 1.6 HAL_ETH_MspDeInit
    • 1.7 HAL_ETH_TransmitFrame
    • 1.8 HAL_ETH_GetReceivedFrame
    • 1.9 HAL_ETH_GetReceivedFrame_IT
    • 1.10 HAL_ETH_IRQHandler
  • 该文档修改记录:
  • 总结

1 通用定时器(TIM)预览

序号函数名描述
1HAL_ETH_Init()初始化以太网控制器。
2HAL_ETH_DeInit()反初始化以太网控制器。
3HAL_ETH_DMATxDescListInit()初始化以太网DMA发送描述符列表。
4HAL_ETH_DMARxDescListInit()初始化以太网DMA接收描述符列表。
5HAL_ETH_MspInit()初始化MCU外设相关的以太网控制器引脚或资源。
6HAL_ETH_MspDeInit()反初始化MCU外设相关的以太网控制器引脚或资源。
7HAL_ETH_TransmitFrame()传输以太网帧。
8HAL_ETH_GetReceivedFrame()获取接收到的以太网帧。
9HAL_ETH_GetReceivedFrame_IT()异步获取接收到的以太网帧,使用中断处理接收完成。
10HAL_ETH_IRQHandler()以太网控制器中断处理程序。
11HAL_ETH_TxCpltCallback()以太网发送完成回调函数。
12HAL_ETH_RxCpltCallback()以太网接收完成回调函数。
13HAL_ETH_ErrorCallback()以太网错误回调函数。
14HAL_ETH_ReadPHYRegister()读取PHY寄存器。
15HAL_ETH_WritePHYRegister()写入PHY寄存器。
16HAL_ETH_Start()启动以太网控制器。
17HAL_ETH_Stop()停止以太网控制器。
18HAL_ETH_ConfigMAC()配置以太网MAC。
19HAL_ETH_ConfigDMA()配置以太网DMA。
20HAL_ETH_GetState()获取以太网控制器状态。

使用模板:

#include "stm32f4xx_hal.h"int main(void) {// HAL初始化HAL_Init();// 初始化MCU外设相关的以太网控制器引脚或资源HAL_ETH_MspInit();// 初始化以太网控制器HAL_ETH_Init();// 进行其他操作...// 启动以太网控制器HAL_ETH_Start();// 启动DMA传输HAL_ETH_TransmitFrame();// 获取接收到的以太网帧HAL_ETH_GetReceivedFrame();// 异步获取接收到的以太网帧,使用中断处理接收完成HAL_ETH_GetReceivedFrame_IT();// 以太网中断处理程序HAL_ETH_IRQHandler();// 获取以太网控制器状态uint32_t ethState = HAL_ETH_GetState();// 停止以太网控制器HAL_ETH_Stop();// 反初始化以太网控制器HAL_ETH_DeInit();// 反初始化MCU外设相关的以太网控制器引脚或资源HAL_ETH_MspDeInit();return 0;
}

1.1 HAL_ETH_Init

函数名HAL_ETH_Init
函数原形HAL_StatusTypeDef HAL_ETH_Init(ETH_HandleTypeDef* heth)
功能描述初始化以太网模块
输入参数heth:以太网句柄,指向一个 ETH_HandleTypeDef 结构体
输出参数
返回值HAL_StatusTypeDef:初始化结果,可以是 HAL_OK 或 HAL_ERROR
先决条件
被调用函数

1.2 HAL_ETH_DeInit

函数名HAL_ETH_DeInit
函数原形HAL_StatusTypeDef HAL_ETH_DeInit(ETH_HandleTypeDef* heth)
功能描述反初始化以太网模块
输入参数heth:以太网句柄,指向一个 ETH_HandleTypeDef 结构体
输出参数
返回值HAL_StatusTypeDef:反初始化结果,可以是 HAL_OK 或 HAL_ERROR
先决条件
被调用函数

1.3 HAL_ETH_DMATxDescListInit

函数名HAL_ETH_DMATxDescListInit
函数原形void HAL_ETH_DMATxDescListInit(ETH_HandleTypeDef *heth, ETH_DMADescTypeDef *DMATxDescTab, uint8_t *TxBuffer, uint32_t BufferSize)
功能描述初始化以太网 DMA 发送描述符列表
输入参数 1heth:以太网句柄,指向一个 ETH_HandleTypeDef 结构体
输入参数 2DMATxDescTab:指向 DMA 发送描述符列表的指针
输入参数 3TxBuffer:发送缓冲区的指针
输入参数 4BufferSize:发送缓冲区大小
输出参数
返回值
先决条件
被调用函数

1.4 HAL_ETH_DMARxDescListInit

函数名HAL_ETH_DMARxDescListInit
函数原形void HAL_ETH_DMARxDescListInit(ETH_HandleTypeDef *heth, ETH_DMADescTypeDef *DMARxDescTab, uint8_t *RxBuffer, uint32_t BufferSize)
功能描述初始化以太网 DMA 接收描述符列表
输入参数 1heth:以太网句柄,指向一个 ETH_HandleTypeDef 结构体
输入参数 2DMARxDescTab:指向 DMA 接收描述符列表的指针
输入参数 3RxBuffer:接收缓冲区的指针
输入参数 4BufferSize:接收缓冲区大小
输出参数
返回值
先决条件
被调用函数

1.5 HAL_ETH_MspInit

函数名HAL_ETH_MspInit
函数原形void HAL_ETH_MspInit(ETH_HandleTypeDef* heth)
功能描述初始化以太网外设(底层驱动的 MSP 初始化回调函数)
输入参数heth:以太网句柄,指向一个 ETH_HandleTypeDef 结构体
输出参数
返回值
先决条件
被调用函数

1.6 HAL_ETH_MspDeInit

函数名HAL_ETH_MspDeInit
函数原形void HAL_ETH_MspDeInit(ETH_HandleTypeDef* heth)
功能描述反初始化以太网外设(底层驱动的 MSP 反初始化回调函数)
输入参数heth:以太网句柄,指向一个 ETH_HandleTypeDef 结构体
输出参数
返回值
先决条件
被调用函数

1.7 HAL_ETH_TransmitFrame

函数名HAL_ETH_TransmitFrame
函数原形HAL_StatusTypeDef HAL_ETH_TransmitFrame(ETH_HandleTypeDef *heth, uint32_t FrameLength)
功能描述以太网发送数据帧
输入参数 1heth:以太网句柄,指向一个 ETH_HandleTypeDef 结构体
输入参数 2FrameLength:要发送的数据帧长度
输出参数
返回值HAL_StatusTypeDef:发送结果,可以是 HAL_OK 或 HAL_ERROR
先决条件
被调用函数

1.8 HAL_ETH_GetReceivedFrame

函数名HAL_ETH_GetReceivedFrame
函数原形HAL_StatusTypeDef HAL_ETH_GetReceivedFrame(ETH_HandleTypeDef *heth)
功能

描述 | 获取以太网接收到的数据帧 |
| 输入参数 | heth:以太网句柄,指向一个 ETH_HandleTypeDef 结构体 |
| 输出参数 | 无 |
| 返回值 | HAL_StatusTypeDef:获取结果,可以是 HAL_OK 或 HAL_ERROR |
| 先决条件 | 无 |
| 被调用函数 | 无 |


1.9 HAL_ETH_GetReceivedFrame_IT

函数名HAL_ETH_GetReceivedFrame_IT
函数原形HAL_StatusTypeDef HAL_ETH_GetReceivedFrame_IT(ETH_HandleTypeDef *heth)
功能描述在中断中获取以太网接收到的数据帧
输入参数heth:以太网句柄,指向一个 ETH_HandleTypeDef 结构体
输出参数
返回值HAL_StatusTypeDef:获取结果,可以是 HAL_OK 或 HAL_ERROR
先决条件
被调用函数

1.10 HAL_ETH_IRQHandler

函数名HAL_ETH_IRQHandler
函数原形void HAL_ETH_IRQHandler(ETH_HandleTypeDef *heth)
功能描述以太网中断服务函数
输入参数heth:以太网句柄,指向一个 ETH_HandleTypeDef 结构体
输出参数
返回值
先决条件
被调用函数

该文档修改记录:

修改时间修改说明
2024年4月12日第一次发布,介绍了 A12 STM32_HAL库函数 之 HALETH通用驱动 – A – 所有函数的介绍及使用

总结

以上就是A12 STM32_HAL库函数 之 HALETH通用驱动 – A – 所有函数的介绍及使用的内容。
有不明白的地方欢迎留言;有建议欢迎留言,我后面编写文档好改进。
创作不容,如果文档对您有帮助,记得给个赞。

相关文章:

A12 STM32_HAL库函数 之 HAL-ETH通用驱动 -- A -- 所有函数的介绍及使用

A12 STM32_HAL库函数 之 HAL-ETH通用驱动 -- A -- 所有函数的介绍及使用 1 通用定时器(TIM)预览1.1 HAL_ETH_Init1.2 HAL_ETH_DeInit1.3 HAL_ETH_DMATxDescListInit1.4 HAL_ETH_DMARxDescListInit1.5 HAL_ETH_MspInit1.6 HAL_ETH_MspDeInit1.7 HAL_ETH_T…...

Linux从入门到精通 --- 1.初始Linux

文章目录 第一章:1.1 Linux的诞生1.2 Linux系统内核1.3 Linux系统发行版 第一章: 1.1 Linux的诞生 1991年由林纳斯 托瓦兹创立并发展至今称为服务器操作系统领域的核心系统。 1.2 Linux系统内核 Linux内核提供了系统的主要功能,甚至是开源…...

linux使用docker实现redis主从复制和哨兵模式

目录 1. 拉取redis镜像 2.使用可视化redis工具 3. 设置从redis 4.设置哨兵模式 5. 使用docker-compose快速创建 1. 拉取redis镜像 docker pull redis 默认拉取最新的镜像。 然后pull结束后使用docker images检查镜像: 然后docker run创建container容器 首先…...

新版chrome 解决在http协议下无法调用摄像头和麦克风的问题(不安全)

解决办法:亲测可行 chrome浏览器地址栏中输入chrome://flags/#unsafely-treat-insecure-origin-as-secure,回车,如下图,将该选项置为Enabled, edge浏览器打开:edge://flags/#unsafely-treat-insecure-orig…...

机器学习入门项目二(逻辑回归)

如果输入数据长度为2,上一章的方程就无法满足需求了,需要修改方程: z w 1 x w 2 y b zw_1xw_2yb zw1​xw2​yb 数据产生器: import matplotlib.pyplot as plt import numpy as npclass DataGenerator2Input:"""…...

C++类引用的好处

简化代码:引用可以简化代码,使其更加易读和易懂。通过使用引用,可以避免在函数参数中复制大型对象,从而提高代码的效率和性能。 传递大型对象的效率高:使用引用作为函数参数传递大型对象时,不需要进行对象…...

从零自制docker-9-【管道实现run进程和init进程传参】

文章目录 命令行中输入参数长度过长匿名管道从父进程到子进程传参[]*os.File{}os.NewFile和io.ReadAllexe.LookPathsyscall.Execstrings.Split(msgStr, " ")/bin/ls: cannot access : No such file or directory代码 命令行中输入参数长度过长 用户输入参数过长或包…...

全量知识系统 程序详细设计 之 三种“活物” 之1(QA百度搜索 )

Q1. 今天聊聊 全知系统中 三种“活物”。先从他们的一个简单描述开始: 自主:计算机“集群”的“沉”与“浮”; 自然:AI “众生”的“世”和“界” ;自由:人类 “公民”的“宇”或“宙”。 全知系统中的三…...

QT 线程之movetothread

上文列举了qt中线程的几种方法,其中2种方法最为常见。 这两种方法都少不了QThread类,前者继承于QThread类,后者复合QThread类。 本文以实例的方式描述了movetothread()这种线程的方法,将QObject的子类移动…...

如何处理ubuntu22.04LTS安装过程中出现“Daemons using outdated libraries”提示

Ubuntu 22.04 LTS 中使用命令行升级软件或安装任何新软件时,您可能收到“Daemons using outdated libraries”,“Which services should be restarted?”的提示,提示下面列出备选的重启服务,如下。 使用以下命令,能够…...

跟TED演讲学英文:The inside story of ChatGPT‘s astonishing potential by Greg Brockman

The inside story of ChatGPT’s astonishing potential Link: https://www.ted.com/talks/greg_brockman_the_inside_story_of_chatgpt_s_astonishing_potential Speaker: Greg Brockman Date:April 2023 文章目录 The inside story of ChatGPTs astonishing potentialIntro…...

mybatis05:复杂查询:(多对一,一对多)

mybatis05:复杂查询:(多对一,一对多) 文章目录 mybatis05:复杂查询:(多对一,一对多)前言:多对一 : 关联 : 使用associatio…...

微电网优化:基于肝癌算法(Liver Cancer algorithm, LCA)的微电网优化(提供MATLAB代码)

一、微电网优化模型 微电网是一个相对独立的本地化电力单元,用户现场的分布式发电可以支持用电需求。为此,您的微电网将接入、监控、预测和控制您本地的分布式能源系统,同时强化供电系统的弹性,保障您的用电更经济。您可以在连接…...

VUE_H5页面跳转第三方地图导航,兼容微信浏览器

当前项目是uniapp项目,若不是需要替换uni.showActionSheet选择api onMap(address , organName , longitude 0, latitude 0){var ua navigator.userAgent.toLowerCase();var isWeixin ua.indexOf(micromessenger) ! -1;if(isWeixin) {const mapUrl_tx "…...

智慧安全运营:智能化运维,确保服务无忧

智慧安全运营:智能化运维,确保服务无忧 中国联通新一代全球智云数据中心采用先进的智能化运维管理系统,实现对数据中心设施、IT设备、能源消耗、环境参数等全方位、实时监控。通过物联网技术、人工智能算法以及大数据分析,运维团…...

R-tree总结

引言: 在处理空间数据和地理信息系统(GIS)中,高效的空间索引机制对于提升查询性能至关重要。R-tree是一种流行的平衡树数据结构,专门用于索引多维信息,如二维的地理坐标或三维的物体位置。它以其灵活性、高…...

Python 与机器学习,在服务器使用过程中,常用的 Linux 命令包括哪些?

🍉 CSDN 叶庭云:https://yetingyun.blog.csdn.net/ 本博客旨在分享在实际开发过程中,开发者需要了解并熟练运用的 Linux 操作系统常用命令。Linux 作为一种操作系统,与 Windows 或 MacOS 并驾齐驱,尤其在服务器和开发环…...

js通过Object.defineProperty实现数据响应式

目录 数据响应式属性描述符propertyResponsive 依赖收集依赖队列寻找依赖 观察器 派发更新Observer完整代码关于数据响应式关于Object.defineProperty的限制 数据响应式 假设我们现在有这么一个页面 <!DOCTYPE html> <html lang"en"><head><m…...

docker最简单教程(使用dockerfile构建环境)

一 手里有的东西 安装好的docker+dockerfile 二 操作 只需要在你的dockerfile文件下执行命令 docker build -t="xianhu/centos:gitdir" . 将用户名、操作系统和tag进行修改就可以了,这就相当于在你本地安装了一个docker环境,然后执行 docker run -it xianhu/ce…...

Vue2 —— 学习(三)

目录 一、绑定 class 样式 &#xff08;一&#xff09;字符串写法 1.流程介绍 2.代码实现 &#xff08;二&#xff09;数组写法 1.流程介绍 2.代码实现 &#xff08;三&#xff09;对象写法 1.流程介绍 2.代码实现 二、绑定 style 样式&#xff08;了解&#xff…...

Go语言AI Agent框架goclaw:模块化架构与技能系统实战

1. 项目概述&#xff1a;一个用Go语言构建的现代化AI Agent框架如果你正在寻找一个功能全面、架构清晰&#xff0c;并且能让你快速上手构建智能助理的Go语言框架&#xff0c;那么goclaw&#xff08;狗爪&#xff09;绝对值得你花时间研究。我最近在评估几个开源的AI Agent框架&…...

从自由建模到精确设计:CAD_Sketcher如何为Blender带来工程级草图绘制能力

从自由建模到精确设计&#xff1a;CAD_Sketcher如何为Blender带来工程级草图绘制能力 【免费下载链接】CAD_Sketcher Constraint-based geometry sketcher for blender 项目地址: https://gitcode.com/gh_mirrors/ca/CAD_Sketcher 你是否曾在使用Blender进行机械设计时&…...

别再死记硬背截止、放大、饱和了!用Arduino+面包板,5分钟直观理解NPN/PNP三极管

用Arduino实验破解三极管的三大工作状态之谜 记得第一次翻开电子学教材看到三极管章节时&#xff0c;那些密密麻麻的曲线图和公式让我头皮发麻。"截止区"、"放大区"、"饱和区"——这些抽象概念就像天书一样难以理解。直到有一天&#xff0c;我拿…...

傅里叶变换加速视觉模型:频域卷积与FiT架构实战

1. 项目概述&#xff1a;用傅里叶变换为视觉模型“减负”在计算机视觉的模型炼金术里&#xff0c;我们总在追求一个看似矛盾的平衡&#xff1a;既要模型“看得更清”&#xff08;更高的精度和更强的特征提取能力&#xff09;&#xff0c;又要它“跑得更快”&#xff08;更低的计…...

Linux下Cursor AI编辑器自动化安装脚本设计与实现

1. 项目概述&#xff1a;为什么我们需要一个Cursor的Linux安装脚本如果你是一个在Linux环境下工作的开发者&#xff0c;并且对AI辅助编程工具感兴趣&#xff0c;那么Cursor这个名字你一定不陌生。作为一款集成了强大AI能力的代码编辑器&#xff0c;它正迅速成为许多程序员的新宠…...

WPF动画避坑指南:Blend路径动画Canvas.Left与RenderTransform的实战选择(附性能对比)

WPF动画避坑指南&#xff1a;Blend路径动画Canvas.Left与RenderTransform的实战选择&#xff08;附性能对比&#xff09; 在WPF开发中&#xff0c;动画效果的实现往往让开发者陷入选择困境。特别是当我们需要让UI元素沿着复杂路径运动时&#xff0c;Canvas.Left/Top与RenderTra…...

k8s——RBAC认证中心

一、整体流程&#xff1a;认证 → 授权 → 准入控制在 Kubernetes 中&#xff0c;所有操作都要通过 API Server。当你&#xff08;或某个程序&#xff09;想对集群做任何事&#xff08;比如创建一个 Pod&#xff09;&#xff0c;必须经过三步检查&#xff1a;认证&#xff1a;你…...

STM32F4 SPI DMA实战:用CubeMX和HAL库5分钟搞定高速数据传输(附避坑指南)

STM32F4 SPI DMA实战&#xff1a;CubeMXHAL库5分钟极速配置指南 在嵌入式开发中&#xff0c;SPIDMA的组合堪称数据传输的"黄金搭档"——既能享受SPI接口的高速特性&#xff0c;又能通过DMA解放CPU资源。但传统基于寄存器的手动配置方式&#xff0c;往往让开发者陷入繁…...

基于Ollama构建本地大模型智能体:从原理到工程实践

1. 项目概述&#xff1a;当本地大模型遇上智能体框架最近在折腾本地大模型应用开发的朋友&#xff0c;估计都绕不开一个核心问题&#xff1a;如何让一个“聪明”的模型&#xff0c;不仅能回答问题&#xff0c;还能像真正的助手一样&#xff0c;自主调用工具、处理复杂任务&…...

Azure Quickstart Templates流量管理器模板:5分钟部署终极全局负载均衡指南 [特殊字符]

Azure Quickstart Templates流量管理器模板&#xff1a;5分钟部署终极全局负载均衡指南 &#x1f680; 【免费下载链接】azure-quickstart-templates Azure Quickstart Templates 项目地址: https://gitcode.com/gh_mirrors/az/azure-quickstart-templates Azure Quicks…...