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

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

  • [1 通用定时器(TIM)预览](#1 通用定时器(TIM)预览)
    • [1.11 HAL_ETH_TxCpltCallback](#1.11 HAL_ETH_TxCpltCallback)
    • [1.12 HAL_ETH_RxCpltCallback](#1.12 HAL_ETH_RxCpltCallback)
    • [1.13 HAL_ETH_ErrorCallback](#1.13 HAL_ETH_ErrorCallback)
    • [1.14 HAL_ETH_ReadPHYRegister](#1.14 HAL_ETH_ReadPHYRegister)
    • [1.15 HAL_ETH_WritePHYRegister](#1.15 HAL_ETH_WritePHYRegister)
    • [1.16 HAL_ETH_Start](#1.16 HAL_ETH_Start)
    • [1.17 HAL_ETH_Stop](#1.17 HAL_ETH_Stop)
    • [1.18 HAL_ETH_ConfigMAC](#1.18 HAL_ETH_ConfigMAC)
    • [1.19 HAL_ETH_ConfigDMA](#1.19 HAL_ETH_ConfigDMA)
    • [1.20 HAL_ETH_GetState](#1.20 HAL_ETH_GetState)
  • 该文档修改记录:
  • 总结

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() 获取以太网控制器状态。

使用模板:

c 复制代码
#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.11 HAL_ETH_TxCpltCallback

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

1.12 HAL_ETH_RxCpltCallback

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

1.13 HAL_ETH_ErrorCallback

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

1.14 HAL_ETH_ReadPHYRegister

函数名 HAL_ETH_ReadPHYRegister
函数原形 uint32_t HAL_ETH_ReadPHYRegister(ETH_HandleTypeDef *heth, uint16_t PHYRegAddr)
功能描述 读取以太网 PHY 寄存器的值
输入参数 1 heth:以太网句柄,指向一个 ETH_HandleTypeDef 结构体
输入参数 2 PHYRegAddr:PHY 寄存器地址
输出参数
返回值 uint32_t:PHY 寄存器的值
先决条件
被调用函数

1.15 HAL_ETH_WritePHYRegister

函数名 HAL_ETH_WritePHYRegister
函数原形 void HAL_ETH_WritePHYRegister(ETH_HandleTypeDef *heth, uint16_t PHYRegAddr, uint32_t PHYValue)
功能描述 写入以太网 PHY 寄存器的值
输入参数 1 heth:以太网句柄,指向一个 ETH_HandleTypeDef 结构体
输入参数 2 PHYRegAddr:PHY 寄存器地址
输入参数 3 PHYValue:要写入的值
输出参数
返回值
先决条件
被调用函数

1.16 HAL_ETH_Start

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

1.17 HAL_ETH_Stop

函数名 HAL_ETH_Stop
函数原形 HAL_StatusTypeDef HAL_ETH_Stop(ETH_HandleTypeDef *heth)
功能描述
复制代码
              | 停止以太网模块                                                 |

| 输入参数 | heth:以太网句柄,指向一个 ETH_HandleTypeDef 结构体 |

| 输出参数 | 无 |

| 返回值 | HAL_StatusTypeDef:停止结果,可以是 HAL_OK 或 HAL_ERROR |

| 先决条件 | 无 |

| 被调用函数 | 无 |


1.18 HAL_ETH_ConfigMAC

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

1.19 HAL_ETH_ConfigDMA

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

1.20 HAL_ETH_GetState

函数名 HAL_ETH_GetState
函数原形 HAL_ETH_StateTypeDef HAL_ETH_GetState(ETH_HandleTypeDef *heth)
功能描述 获取以太网当前状态
输入参数 heth:以太网句柄,指向一个 ETH_HandleTypeDef 结构体
输出参数
返回值 HAL_ETH_StateTypeDef:当前状态,可能的值有 HAL_ETH_STATE_RESET、HAL_ETH_STATE_READY 或 HAL_ETH_STATE_BUSY
先决条件
被调用函数

该文档修改记录:

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

总结

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

相关推荐
杰克逊的日记9 天前
MCU编程
单片机·嵌入式硬件
Python小老六9 天前
单片机测ntc热敏电阻的几种方法(软件)
数据库·单片机·嵌入式硬件
懒惰的bit9 天前
STM32F103C8T6 学习笔记摘要(四)
笔记·stm32·学习
HX科技9 天前
STM32给FPGA的外挂FLASH进行升级
stm32·嵌入式硬件·fpga开发·flash·fpga升级
Suagrhaha9 天前
驱动入门的进一步深入
linux·嵌入式硬件·驱动
国科安芯9 天前
基于ASP4644多通道降压技术在电力监测系统中集成应用与发展前景
嵌入式硬件·硬件架构·硬件工程
Li Zi9 天前
STM32 ADC(DMA)双缓冲采集+串口USART(DMA)直接传输12位原始数据到上位机显示并保存WAV格式音频文件 收藏住绝对实用!!!
经验分享·stm32·单片机·嵌入式硬件
进击的程序汪9 天前
触摸屏(典型 I2C + Input 子系统设备)从设备树解析到触摸事件上报
linux·网络·嵌入式硬件
damo王9 天前
Zephyr 系统深入解析:SoC 支持包结构与中断调度器调优实践
单片机·嵌入式硬件·zephyr
逼子格9 天前
硬件工程师笔试面试高频考点汇总——(2025版)
单片机·嵌入式硬件·面试·硬件工程·硬件工程师·硬件工程师真题·硬件工程师面试