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)预览
序号 | 函数名 | 描述 |
---|---|---|
1 | HAL_ETH_Init() | 初始化以太网控制器。 |
2 | HAL_ETH_DeInit() | 反初始化以太网控制器。 |
3 | HAL_ETH_DMATxDescListInit() | 初始化以太网DMA发送描述符列表。 |
4 | HAL_ETH_DMARxDescListInit() | 初始化以太网DMA接收描述符列表。 |
5 | HAL_ETH_MspInit() | 初始化MCU外设相关的以太网控制器引脚或资源。 |
6 | HAL_ETH_MspDeInit() | 反初始化MCU外设相关的以太网控制器引脚或资源。 |
7 | HAL_ETH_TransmitFrame() | 传输以太网帧。 |
8 | HAL_ETH_GetReceivedFrame() | 获取接收到的以太网帧。 |
9 | HAL_ETH_GetReceivedFrame_IT() | 异步获取接收到的以太网帧,使用中断处理接收完成。 |
10 | HAL_ETH_IRQHandler() | 以太网控制器中断处理程序。 |
11 | HAL_ETH_TxCpltCallback() | 以太网发送完成回调函数。 |
12 | HAL_ETH_RxCpltCallback() | 以太网接收完成回调函数。 |
13 | HAL_ETH_ErrorCallback() | 以太网错误回调函数。 |
14 | HAL_ETH_ReadPHYRegister() | 读取PHY寄存器。 |
15 | HAL_ETH_WritePHYRegister() | 写入PHY寄存器。 |
16 | HAL_ETH_Start() | 启动以太网控制器。 |
17 | HAL_ETH_Stop() | 停止以太网控制器。 |
18 | HAL_ETH_ConfigMAC() | 配置以太网MAC。 |
19 | HAL_ETH_ConfigDMA() | 配置以太网DMA。 |
20 | HAL_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 发送描述符列表 |
输入参数 1 | heth:以太网句柄,指向一个 ETH_HandleTypeDef 结构体 |
输入参数 2 | DMATxDescTab:指向 DMA 发送描述符列表的指针 |
输入参数 3 | TxBuffer:发送缓冲区的指针 |
输入参数 4 | BufferSize:发送缓冲区大小 |
输出参数 | 无 |
返回值 | 无 |
先决条件 | 无 |
被调用函数 | 无 |
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 接收描述符列表 |
输入参数 1 | heth:以太网句柄,指向一个 ETH_HandleTypeDef 结构体 |
输入参数 2 | DMARxDescTab:指向 DMA 接收描述符列表的指针 |
输入参数 3 | RxBuffer:接收缓冲区的指针 |
输入参数 4 | BufferSize:接收缓冲区大小 |
输出参数 | 无 |
返回值 | 无 |
先决条件 | 无 |
被调用函数 | 无 |
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) |
功能描述 | 以太网发送数据帧 |
输入参数 1 | heth:以太网句柄,指向一个 ETH_HandleTypeDef 结构体 |
输入参数 2 | FrameLength:要发送的数据帧长度 |
输出参数 | 无 |
返回值 | 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 zw1xw2yb 数据产生器: 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 样式 (一)字符串写法 1.流程介绍 2.代码实现 (二)数组写法 1.流程介绍 2.代码实现 (三)对象写法 1.流程介绍 2.代码实现 二、绑定 style 样式(了解ÿ…...
Qt Creator 12.0.2 debug 无法查看变量的值 Expression too Complex
鼠标放在局部变量上提示“expression too complex”。 在调试窗口也看不到局部变量的值。 这应该是qt的一个bug,https://bugreports.qt.io/browse/QTCREATORBUG-24180 暂时解决方法: 如下图,需要右键项目然后执行"Clean"和&quo…...
LeetCode-Java:303、304区域检索(前缀和)
文章目录 题目303、区域和检索(数组不可变)304、二维区域和检索(矩阵不可变) 解①303,一维前缀和②304,二维前缀和 算法前缀和一维前缀和二维前缀和 题目 303、区域和检索(数组不可变ÿ…...
出海业务的网络安全挑战
出海业务的扩展带来了巨大的市场机遇,同时也带来了不少网络安全挑战: 数据泄露与隐私保护:跨境数据传输增加了数据被截获和泄露的风险。地理位置限制和审查:某些地区的网络审查和地理位置限制可能阻碍企业正常开展业务。网络攻击…...
蓝桥杯考前准备— — c/c++
蓝桥杯考前准备— — c/c 对于输入输出函数 如果题目中有要求规定输入数据的格式与输出数据的格式,最好使用scanf()和prinrf()函数。 例如:输入的数据是 2020-02-18,则使用scanf("%d-%d-%d",&year,&mouth,&day)即可…...
【MATLAB源码-第4期】基于MATLAB的1024QAM误码率曲线,以及星座图展示。
1、算法描述 正交幅度调制(QAM,Quadrature Amplitude Modulation)是一种在两个正交载波上进行幅度调制的调制方式。这两个载波通常是相位差为90度(π/2)的正弦波,因此被称作正交载波。这种调制方式因此而得…...
数据结构-----枚举、泛型进阶(通配符?)
文章目录 枚举1 背景及定义2 使用3 枚举优点缺点4 枚举和反射4.1 枚举是否可以通过反射,拿到实例对象呢? 5 总结 泛型进阶1 通配符 ?1.1 通配符解决什么问题1.2 通配符上界1.3 通配符下界 枚举 1 背景及定义 枚举是在JDK1.5以后引入的。主要用途是&am…...
线上问题监控 Sentry 接入全过程
背景: 线上偶发问题出现后 ,测试人员仅通过接口信息无法复现错误场景;并且线上环境的监控,对于提高系统的稳定性 (降低脱发率) 至关重要;现在线上监控工具这个多,为什么选择Sentry?…...
【数据库(MySQL)基础】以MySQL为例的数据库基础
文章目录 0. 本文用到的emp表,dept表,salgrade表1. MySQL入门2. 简单查询3. 字段计算4. 条件查询4.1 and4.2 null4.3 or4.4 and和or的优先级4.4 in 和 not in4.5 模糊查询 5. 排序5.1 简单排序5.2 两个字段排序5.3 综合排序 6. 一些常用函数6.1 大小写转换6.2 substr子字符串6.…...
权限修饰符,代码块,抽象类,接口.Java
1,权限修饰符 权限修饰符:用来控制一个成员能够被访问的范围可以修饰成员变量,方法,构造方法,内部类 👻👗👑权限修饰符的分类 🧣四种作用范围由小到大(private<空着…...
CSS设置文本
目录 概述: text-aling: text-decoration: text-transform: text-indent: line-height: letter-spacing: word-spacing: text-shadow: vertical-align: white-space: direction: 概述: 在CSS中我们可以设置文本的属性,就像Word文…...
怎样做网站个人简介/外贸网站制作
没什么多说的 document.onkeydown function () {var oEvent window.event;if (oEvent.keyCode 13 && oEvent.ctrlKey) {console.log("你按下了ctrlenter");}else if(oEvent.keyCode 13){console.log(2222222222)}}jQuery的实现方法还没找到...
南宁网站建设公司排名/网站搜索引擎优化技术
定义:建表时在各字段类型后设置,用来对用户操作表的数据进行约束。 代码: 1.默认值 : default 作用:当用户对使用默认值的字段不插入值的时候,就使用默认值(自动填充)。 注意…...
动漫网站源码免费/成都seo网络优化公司
电竞键盘是指专门用于电子竞技的键盘,相比较于普通键盘,电竞键盘不仅要支持复杂的灯效,还有对高性能,高响应速度的要求。 复杂的灯效是吸引玩家购买键盘的卖点,能够快速稳定响应玩家按键动作,做出各种灯效…...
网站建设灬金手指科杰/百度网络营销
一、需求:效果图如下,各国家数据呈现流入中国效果(漫入) 二、前端如何实现 1. 实现方式:使用echarts,详细配置项可参见echarts官网 2. 实现分析: 地图实现可使用echarts的geo组件(ge…...
性咨询/百度推广seo优化
Safari浏览器: 1.safari执行history.go(-1);需要添加return false; Chrome浏览器 1.Chrome浏览器要预读图片,需要通过对图片的预加载。注:预加载前一定要将<img>加入<body> 1 /* 预加载图片 node-<img> func-回调函数 */ 2…...
wordpress站点维护/网络推广是做什么工作的
线程池threadpool介绍 (Introduction) 随着芯片制造商致力于通过增加时钟速度来增加处理器内核,开发人员需要利用现代CPU的功能。 我们做到这一点的方法之一是在软件中实现并行算法。 One recent task I needed to perform at home was to find and document large …...