A26 STM32_HAL库函数 之 IRDA通用驱动 -- A -- 所有函数的介绍及使用

A26 STM32_HAL库函数 之 IRDA通用驱动 -- A -- 所有函数的介绍及使用

  • [1 该驱动函数预览](#1 该驱动函数预览)
    • [1.1 HAL_IRDA_Init](#1.1 HAL_IRDA_Init)
    • [1.2 HAL_IRDA_DeInit](#1.2 HAL_IRDA_DeInit)
    • [1.3 HAL_IRDA_MspInit](#1.3 HAL_IRDA_MspInit)
    • [1.4 HAL_IRDA_MspDeInit](#1.4 HAL_IRDA_MspDeInit)
    • [1.5 HAL_IRDA_Transmit](#1.5 HAL_IRDA_Transmit)
    • [1.6 HAL_IRDA_Receive](#1.6 HAL_IRDA_Receive)
    • [1.7 HAL_IRDA_Transmit_IT](#1.7 HAL_IRDA_Transmit_IT)
    • [1.8 HAL_IRDA_Receive_IT](#1.8 HAL_IRDA_Receive_IT)
    • [1.9 HAL_IRDA_Transmit_DMA](#1.9 HAL_IRDA_Transmit_DMA)
    • [1.10 HAL_IRDA_Receive_DMA](#1.10 HAL_IRDA_Receive_DMA)
  • 该文档修改记录:
  • 总结

1 该驱动函数预览

序号 函数名 描述
1 HAL_IRDA_Init() 初始化IRDA接口。
2 HAL_IRDA_DeInit() 反初始化IRDA接口。
3 HAL_IRDA_MspInit() 初始化MCU外设相关的IRDA引脚或资源。
4 HAL_IRDA_MspDeInit() 反初始化MCU外设相关的IRDA引脚或资源。
5 HAL_IRDA_Transmit() 通过IRDA接口发送数据。
6 HAL_IRDA_Receive() 通过IRDA接口接收数据。
7 HAL_IRDA_Transmit_IT() 使用中断发送数据通过IRDA接口。
8 HAL_IRDA_Receive_IT() 使用中断接收数据通过IRDA接口。
9 HAL_IRDA_Transmit_DMA() 使用DMA发送数据通过IRDA接口。
10 HAL_IRDA_Receive_DMA() 使用DMA接收数据通过IRDA接口。
11 HAL_IRDA_DMAPause() 暂停IRDA DMA传输。
12 HAL_IRDA_DMAResume() 恢复IRDA DMA传输。
13 HAL_IRDA_DMAStop() 停止IRDA DMA传输。
14 HAL_IRDA_Abort() 终止IRDA传输。
15 HAL_IRDA_AbortTransmit() 终止IRDA发送传输。
16 HAL_IRDA_AbortReceive() 终止IRDA接收传输。
17 HAL_IRDA_Abort_IT() 使用中断终止IRDA传输。
18 HAL_IRDA_AbortTransmit_IT() 使用中断终止IRDA发送传输。
19 HAL_IRDA_AbortReceive_IT() 使用中断终止IRDA接收传输。
20 HAL_IRDA_IRQHandler() IRDA中断处理程序。
21 HAL_IRDA_TxCpltCallback() IRDA发送完成回调函数。
22 HAL_IRDA_TxHalfCpltCallback() IRDA发送半完成回调函数。
23 HAL_IRDA_RxCpltCallback() IRDA接收完成回调函数。
24 HAL_IRDA_RxHalfCpltCallback() IRDA接收半完成回调函数。
25 HAL_IRDA_ErrorCallback() IRDA错误回调函数。
26 HAL_IRDA_AbortCpltCallback() IRDA终止完成回调函数。
27 HAL_IRDA_AbortTransmitCpltCallback() IRDA终止发送完成回调函数。
28 HAL_IRDA_AbortReceiveCpltCallback() IRDA终止接收完成回调函数。
29 HAL_IRDA_GetState() 获取IRDA接口的状态。
30 HAL_IRDA_GetError() 获取IRDA接口的错误状态。

以下是使用模板:

c 复制代码
#include "stm32f4xx_hal.h"

int main(void) {
    // HAL初始化
    HAL_Init();
    
    // 初始化MCU外设相关的IRDA引脚或资源
    HAL_IRDA_MspInit();
    
    // 初始化IRDA接口
    HAL_IRDA_Init();
    
    // 进行其他操作...
    
    // 通过IRDA接口发送数据
    HAL_IRDA_Transmit();
    
    // 通过IRDA接口接收数据
    HAL_IRDA_Receive();
    
    // 使用DMA发送数据通过IRDA接口
    HAL_IRDA_Transmit_DMA();
    
    // 使用DMA接收数据通过IRDA接口
    HAL_IRDA_Receive_DMA();
    
    // IRDA中断处理程序
    HAL_IRDA_IRQHandler();
    
    // 获取IRDA接口的状态
    uint32_t irdaState = HAL_IRDA_GetState();
    
    // 获取IRDA接口的错误状态
    uint32_t irdaError = HAL_IRDA_GetError();
    
    // 反初始化IRDA接口
    HAL_IRDA_DeInit();
    
    // 反初始化MCU外设相关的IRDA引脚或资源
    HAL_IRDA_MspDeInit();
    
    return 0;
}

1.1 HAL_IRDA_Init

函数名 HAL_IRDA_Init
函数原形 HAL_StatusTypeDef HAL_IRDA_Init(IRDA_HandleTypeDef *hiirda)
功能描述 初始化 IRDA 外设
输入参数 hiirda:IRDA 句柄,指向一个 IRDA_HandleTypeDef 结构体
输出参数
返回值 HAL_StatusTypeDef:操作状态,可以是 HAL_OK 或 HAL_ERROR
先决条件
被调用函数

1.2 HAL_IRDA_DeInit

函数名 HAL_IRDA_DeInit
函数原形 HAL_StatusTypeDef HAL_IRDA_DeInit(IRDA_HandleTypeDef *hiirda)
功能描述 反初始化 IRDA 外设
输入参数 hiirda:IRDA 句柄,指向一个 IRDA_HandleTypeDef 结构体
输出参数
返回值 HAL_StatusTypeDef:操作状态,可以是 HAL_OK 或 HAL_ERROR
先决条件
被调用函数

1.3 HAL_IRDA_MspInit

函数名 HAL_IRDA_MspInit
函数原形 void HAL_IRDA_MspInit(IRDA_HandleTypeDef *hiirda)
功能描述 初始化 IRDA 外设的 GPIO、时钟和 DMA 配置
输入参数 hiirda:IRDA 句柄,指向一个 IRDA_HandleTypeDef 结构体
输出参数
返回值
先决条件
被调用函数

1.4 HAL_IRDA_MspDeInit

函数名 HAL_IRDA_MspDeInit
函数原形 void HAL_IRDA_MspDeInit(IRDA_HandleTypeDef *hiirda)
功能描述 反初始化 IRDA 外设的 GPIO、时钟和 DMA 配置
输入参数 hiirda:IRDA 句柄,指向一个 IRDA_HandleTypeDef 结构体
输出参数
返回值
先决条件
被调用函数

1.5 HAL_IRDA_Transmit

函数名 HAL_IRDA_Transmit
函数原形 HAL_StatusTypeDef HAL_IRDA_Transmit(IRDA_HandleTypeDef *hiirda, uint8_t *pData, uint16_t Size, uint32_t Timeout)
功能描述 通过 IRDA 外设发送数据
输入参数 1 hiirda:IRDA 句柄,指向一个 IRDA_HandleTypeDef 结构体
输入参数 2 pData:指向发送数据的缓冲区
输入参数 3 Size:要发送的数据长度
输入参数 4 Timeout:超时时间
输出参数
返回值 HAL_StatusTypeDef:操作状态,可以是 HAL_OK 或 HAL_ERROR
先决条件
被调用函数

1.6 HAL_IRDA_Receive

函数名 HAL_IRDA_Receive
函数原形 HAL_StatusTypeDef HAL_IRDA_Receive(IRDA_HandleTypeDef *hiirda, uint8_t *pData, uint16_t Size, uint32_t Timeout)
功能描述 通过 IRDA 外设接收数据
输入参数 1 hiirda:IRDA 句柄,指向一个 IRDA_HandleTypeDef 结构体
输入参数 2 pData:指向接收数据的缓冲区
输入参数 3 Size:要接收的数据长度
输入参数 4 Timeout:超时时间
输出参数
返回值 HAL_StatusTypeDef:操作状态,可以是 HAL_OK 或 HAL_ERROR
先决条件
被调用函数

1.7 HAL_IRDA_Transmit_IT

函数名 HAL_IRDA_Transmit_IT
函数原形 HAL_StatusTypeDef HAL_IRDA_Transmit_IT(IRDA_HandleTypeDef *hiirda, uint8_t *pData, uint16_t Size)
功能描述 使用中断方式通过 IRDA 外设发送数据
输入参数 1 hiirda:IRDA 句柄,指向一个 IRDA_HandleTypeDef 结构体
输入参数 2 pData:指向发送数据的缓冲区
输入参数 3 Size:要发送的数据长度
输出参数
返回值 HAL_StatusTypeDef:操作状态,可以是 HAL_OK 或 HAL_ERROR
先决条件
被调用函数

1.8 HAL_IRDA_Receive_IT

函数名 HAL_IRDA_Receive_IT
函数原形 HAL_StatusTypeDef HAL_IRDA_Receive_IT(IRDA_HandleTypeDef *hiirda, uint8_t *pData, uint16_t Size)
功能描述 使用中断方式通过 IRDA 外设接收数据
输入参数 1 hiirda:IRDA 句柄,指向一个 IRDA_HandleTypeDef 结构体
输入参数 2 pData:指向接收数据的缓冲区
输入参数 3 Size:要接收的数据长度
输出参数
返回值 HAL_StatusTypeDef:操作状态,可以是 HAL_OK 或 HAL_ERROR
先决条件
被调用函数

1.9 HAL_IRDA_Transmit_DMA

函数名 HAL_IRDA_Transmit_DMA
函数原形 HAL_StatusTypeDef HAL_IRDA_Transmit_DMA(IRDA_HandleTypeDef *hiirda, uint8_t *pData, uint16_t Size)
功能描述 使用 DMA 方式通过 IRDA 外设发送数据
输入参数 1 hiirda:IRDA 句柄,指向一个 IRDA_HandleTypeDef 结构体
输入参数 2 pData:指向发送数据的缓冲区
输入参数 3 Size:要发送的数据长度
输出参数
返回值 HAL_StatusTypeDef:操作状态,可以是 HAL_OK 或 HAL_ERROR
先决条件
被调用函数

1.10 HAL_IRDA_Receive_DMA

函数名 HAL_IRDA_Receive_DMA
函数原形 HAL_StatusTypeDef HAL_IRDA_Receive_DMA(IRDA_HandleTypeDef *hiirda, uint8_t *pData, uint16_t Size)
功能描述 使用 DMA 方式通过 IRDA 外设接收数据
输入参数 1 hiirda:IRDA 句柄,指向一个 IRDA_HandleTypeDef 结构体
输入参数 2 pData:指向接收数据的缓冲区
输入参数 3 Size:要接收的数据长度
输出参数
返回值 HAL_StatusTypeDef:操作状态,可以是 HAL_OK 或 HAL_ERROR
先决条件
被调用函数

该文档修改记录:

修改时间 修改说明
2024年4月30日 第一次发布,介绍了该博客驱动所有函数的介绍及使用

总结

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

相关推荐
森焱森1 小时前
无人机三轴稳定控制(2)____根据目标俯仰角,实现俯仰稳定化控制,计算出升降舵输出
c语言·单片机·算法·架构·无人机
白鱼不小白1 小时前
stm32 USART串口协议与外设(程序)——江协教程踩坑经验分享
stm32·单片机·嵌入式硬件
S,D2 小时前
MCU引脚的漏电流、灌电流、拉电流区别是什么
驱动开发·stm32·单片机·嵌入式硬件·mcu·物联网·硬件工程
芯岭技术5 小时前
PY32F002A单片机 低成本控制器解决方案,提供多种封装
单片机·嵌入式硬件
youmdt5 小时前
Arduino IDE ESP8266连接0.96寸SSD1306 IIC单色屏显示北京时间
单片机·嵌入式硬件
嘿·嘘5 小时前
第七章 STM32内部FLASH读写
stm32·单片机·嵌入式硬件
Meraki.Zhang6 小时前
【STM32实践篇】:I2C驱动编写
stm32·单片机·iic·驱动·i2c
几个几个n8 小时前
STM32-第二节-GPIO输入(按键,传感器)
单片机·嵌入式硬件
Despacito0o11 小时前
ESP32-s3摄像头驱动开发实战:从零搭建实时图像显示系统
人工智能·驱动开发·嵌入式硬件·音视频·嵌入式实时数据库
门思科技11 小时前
设计可靠 LoRaWAN 设备时需要考虑的关键能力
运维·服务器·网络·嵌入式硬件·物联网