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 样式(了解ÿ…...
大话软工笔记—需求分析概述
需求分析,就是要对需求调研收集到的资料信息逐个地进行拆分、研究,从大量的不确定“需求”中确定出哪些需求最终要转换为确定的“功能需求”。 需求分析的作用非常重要,后续设计的依据主要来自于需求分析的成果,包括: 项目的目的…...
Python爬虫实战:研究feedparser库相关技术
1. 引言 1.1 研究背景与意义 在当今信息爆炸的时代,互联网上存在着海量的信息资源。RSS(Really Simple Syndication)作为一种标准化的信息聚合技术,被广泛用于网站内容的发布和订阅。通过 RSS,用户可以方便地获取网站更新的内容,而无需频繁访问各个网站。 然而,互联网…...
【项目实战】通过多模态+LangGraph实现PPT生成助手
PPT自动生成系统 基于LangGraph的PPT自动生成系统,可以将Markdown文档自动转换为PPT演示文稿。 功能特点 Markdown解析:自动解析Markdown文档结构PPT模板分析:分析PPT模板的布局和风格智能布局决策:匹配内容与合适的PPT布局自动…...
[10-3]软件I2C读写MPU6050 江协科技学习笔记(16个知识点)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16...
聊一聊接口测试的意义有哪些?
目录 一、隔离性 & 早期测试 二、保障系统集成质量 三、验证业务逻辑的核心层 四、提升测试效率与覆盖度 五、系统稳定性的守护者 六、驱动团队协作与契约管理 七、性能与扩展性的前置评估 八、持续交付的核心支撑 接口测试的意义可以从四个维度展开,首…...
NPOI Excel用OLE对象的形式插入文件附件以及插入图片
static void Main(string[] args) {XlsWithObjData();Console.WriteLine("输出完成"); }static void XlsWithObjData() {// 创建工作簿和单元格,只有HSSFWorkbook,XSSFWorkbook不可以HSSFWorkbook workbook new HSSFWorkbook();HSSFSheet sheet (HSSFSheet)workboo…...
tomcat入门
1 tomcat 是什么 apache开发的web服务器可以为java web程序提供运行环境tomcat是一款高效,稳定,易于使用的web服务器tomcathttp服务器Servlet服务器 2 tomcat 目录介绍 -bin #存放tomcat的脚本 -conf #存放tomcat的配置文件 ---catalina.policy #to…...
Linux部署私有文件管理系统MinIO
最近需要用到一个文件管理服务,但是又不想花钱,所以就想着自己搭建一个,刚好我们用的一个开源框架已经集成了MinIO,所以就选了这个 我这边对文件服务性能要求不是太高,单机版就可以 安装非常简单,几个命令就…...
客户案例 | 短视频点播企业海外视频加速与成本优化:MediaPackage+Cloudfront 技术重构实践
01技术背景与业务挑战 某短视频点播企业深耕国内用户市场,但其后台应用系统部署于东南亚印尼 IDC 机房。 随着业务规模扩大,传统架构已较难满足当前企业发展的需求,企业面临着三重挑战: ① 业务:国内用户访问海外服…...
Python 高级应用10:在python 大型项目中 FastAPI 和 Django 的相互配合
无论是python,或者java 的大型项目中,都会涉及到 自身平台微服务之间的相互调用,以及和第三发平台的 接口对接,那在python 中是怎么实现的呢? 在 Python Web 开发中,FastAPI 和 Django 是两个重要但定位不…...
