当前位置: 首页 > 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…...

Python爬虫实战:研究MechanicalSoup库相关技术

一、MechanicalSoup 库概述 1.1 库简介 MechanicalSoup 是一个 Python 库,专为自动化交互网站而设计。它结合了 requests 的 HTTP 请求能力和 BeautifulSoup 的 HTML 解析能力,提供了直观的 API,让我们可以像人类用户一样浏览网页、填写表单和提交请求。 1.2 主要功能特点…...

多种风格导航菜单 HTML 实现(附源码)

下面我将为您展示 6 种不同风格的导航菜单实现&#xff0c;每种都包含完整 HTML、CSS 和 JavaScript 代码。 1. 简约水平导航栏 <!DOCTYPE html> <html lang"zh-CN"> <head><meta charset"UTF-8"><meta name"viewport&qu…...

css3笔记 (1) 自用

outline: none 用于移除元素获得焦点时默认的轮廓线 broder:0 用于移除边框 font-size&#xff1a;0 用于设置字体不显示 list-style: none 消除<li> 标签默认样式 margin: xx auto 版心居中 width:100% 通栏 vertical-align 作用于行内元素 / 表格单元格&#xff…...

九天毕昇深度学习平台 | 如何安装库?

pip install 库名 -i https://pypi.tuna.tsinghua.edu.cn/simple --user 举个例子&#xff1a; 报错 ModuleNotFoundError: No module named torch 那么我需要安装 torch pip install torch -i https://pypi.tuna.tsinghua.edu.cn/simple --user pip install 库名&#x…...

Python Ovito统计金刚石结构数量

大家好,我是小马老师。 本文介绍python ovito方法统计金刚石结构的方法。 Ovito Identify diamond structure命令可以识别和统计金刚石结构,但是无法直接输出结构的变化情况。 本文使用python调用ovito包的方法,可以持续统计各步的金刚石结构,具体代码如下: from ovito…...

怎么让Comfyui导出的图像不包含工作流信息,

为了数据安全&#xff0c;让Comfyui导出的图像不包含工作流信息&#xff0c;导出的图像就不会拖到comfyui中加载出来工作流。 ComfyUI的目录下node.py 直接移除 pnginfo&#xff08;推荐&#xff09;​​ 在 save_images 方法中&#xff0c;​​删除或注释掉所有与 metadata …...

【学习笔记】erase 删除顺序迭代器后迭代器失效的解决方案

目录 使用 erase 返回值继续迭代使用索引进行遍历 我们知道类似 vector 的顺序迭代器被删除后&#xff0c;迭代器会失效&#xff0c;因为顺序迭代器在内存中是连续存储的&#xff0c;元素删除后&#xff0c;后续元素会前移。 但一些场景中&#xff0c;我们又需要在执行删除操作…...

【Elasticsearch】Elasticsearch 在大数据生态圈的地位 实践经验

Elasticsearch 在大数据生态圈的地位 & 实践经验 1.Elasticsearch 的优势1.1 Elasticsearch 解决的核心问题1.1.1 传统方案的短板1.1.2 Elasticsearch 的解决方案 1.2 与大数据组件的对比优势1.3 关键优势技术支撑1.4 Elasticsearch 的竞品1.4.1 全文搜索领域1.4.2 日志分析…...

MyBatis中关于缓存的理解

MyBatis缓存 MyBatis系统当中默认定义两级缓存&#xff1a;一级缓存、二级缓存 默认情况下&#xff0c;只有一级缓存开启&#xff08;sqlSession级别的缓存&#xff09;二级缓存需要手动开启配置&#xff0c;需要局域namespace级别的缓存 一级缓存&#xff08;本地缓存&#…...

Python 训练营打卡 Day 47

注意力热力图可视化 在day 46代码的基础上&#xff0c;对比不同卷积层热力图可视化的结果 import torch import torch.nn as nn import torch.optim as optim from torchvision import datasets, transforms from torch.utils.data import DataLoader import matplotlib.pypl…...