欢迎您访问 最编程 本站为您分享编程语言代码,编程技术文章!
您现在的位置是: 首页

A19 HCD 通用驱动程序的 STM32_HAL 函数库 -- B -- 所有函数的介绍和使用

最编程 2024-04-21 19:51:05
...

A19 STM32_HAL库函数 之 HCD通用驱动程序 -- B-- 所有函数的介绍及使用

  • 1 该驱动函数预览
    • 1.11 HAL_HCD_Disconnect_Callback
    • 1.12 HAL_HCD_HC_NotifyURBChange_Callback
    • 1.13 HAL_HCD_Start
    • 1.14 HAL_HCD_Stop
    • 1.15 HAL_HCD_ResetPort
    • 1.16 HAL_HCD_GetState
    • 1.17 HAL_HCD_HC_GetURBState
    • 1.18 HAL_HCD_HC_GetXferCount
    • 1.19 HAL_HCD_HC_GetState
    • 1.20 HAL_HCD_GetCurrentFrame
    • 1.21 HAL_HCD_GetCurrentSpeed
  • 该文档修改记录:
  • 总结

1 该驱动函数预览

序号 函数名 描述
1 HAL_HCD_Init() 初始化USB主机控制器设备。
2 HAL_HCD_HC_Init() 初始化USB主机控制器的通道。
3 HAL_HCD_HC_Halt() 停止USB主机控制器的通道。
4 HAL_HCD_DeInit() 反初始化USB主机控制器设备。
5 HAL_HCD_MspInit() 初始化MCU外设相关的USB主机控制器引脚或资源。
6 HAL_HCD_MspDeInit() 反初始化MCU外设相关的USB主机控制器引脚或资源。
7 HAL_HCD_HC_SubmitRequest() 提交USB主机控制器的通道请求。
8 HAL_HCD_IRQHandler() USB主机控制器中断处理程序。
9 HAL_HCD_SOF_Callback() USB主机控制器帧同步回调函数。
10 HAL_HCD_Connect_Callback() USB主机控制器连接回调函数。
11 HAL_HCD_Disconnect_Callback() USB主机控制器断开连接回调函数。
12 HAL_HCD_HC_NotifyURBChange_Callback() USB主机控制器通道URB状态改变回调函数。
13 HAL_HCD_Start() 启动USB主机控制器设备。
14 HAL_HCD_Stop() 停止USB主机控制器设备。
15 HAL_HCD_ResetPort() 重置USB主机控制器端口。
16 HAL_HCD_GetState() 获取USB主机控制器设备状态。
17 HAL_HCD_HC_GetURBState() 获取USB主机控制器通道URB状态。
18 HAL_HCD_HC_GetXferCount() 获取USB主机控制器通道传输计数。
19 HAL_HCD_HC_GetState() 获取USB主机控制器通道状态。
20 HAL_HCD_GetCurrentFrame() 获取USB主机控制器当前帧数。
21 HAL_HCD_GetCurrentSpeed() 获取USB主机控制器当前速度。

使用模板:

#include "stm32f4xx_hal.h"

int main(void) {
    // HAL初始化
    HAL_Init();
    
    // 初始化MCU外设相关的USB主机控制器引脚或资源
    HAL_HCD_MspInit();
    
    // 初始化USB主机控制器设备
    HAL_HCD_Init();
    
    // 进行其他操作...
    
    // 启动USB主机控制器设备
    HAL_HCD_Start();
    
    // 提交USB主机控制器的通道请求
    HAL_HCD_HC_SubmitRequest();
    
    // USB主机控制器中断处理程序
    HAL_HCD_IRQHandler();
    
    // 获取USB主机控制器设备状态
    uint32_t hcdState = HAL_HCD_GetState();
    
    // 停止USB主机控制器设备
    HAL_HCD_Stop();
    
    // 反初始化USB主机控制器设备
    HAL_HCD_DeInit();
    
    // 反初始化MCU外设相关的USB主机控制器引脚或资源
    HAL_HCD_MspDeInit();
    
    return 0;
}

1.11 HAL_HCD_Disconnect_Callback

函数名 HAL_HCD_Disconnect_Callback
函数原形 void HAL_HCD_Disconnect_Callback(HCD_HandleTypeDef *hhcd)
功能描述 USB 主机控制器(HCD)断开连接中断回调函数
输入参数 hhcd:HCD 句柄,指向一个 HCD_HandleTypeDef 结构体
输出参数
返回值
先决条件
被调用函数

1.12 HAL_HCD_HC_NotifyURBChange_Callback

函数名 HAL_HCD_HC_NotifyURBChange_Callback
函数原形 void HAL_HCD_HC_NotifyURBChange_Callback(HCD_HandleTypeDef *hhcd, uint8_t chnum, uint8_t urb_state)
功能描述 USB 主机控制器(HCD)通知 URB(请求块)状态改变回调函数
输入参数 1 hhcd:HCD 句柄,指向一个 HCD_HandleTypeDef 结构体
输入参数 2 chnum:端点编号
输入参数 3 urb_state:URB 状态
输出参数
返回值
先决条件
被调用函数

1.13 HAL_HCD_Start

函数名 HAL_HCD_Start
函数原形 HAL_StatusTypeDef HAL_HCD_Start(HCD_HandleTypeDef *hhcd)
功能描述 启动 USB 主机控制器(HCD)
输入参数 hhcd:HCD 句柄,指向一个 HCD_HandleTypeDef 结构体
输出参数
返回值 HAL_StatusTypeDef:启动结果,可以是 HAL_OK 或 HAL_ERROR
先决条件
被调用函数

1.14 HAL_HCD_Stop

函数名 HAL_HCD_Stop
函数原形 HAL_StatusTypeDef HAL_HCD_Stop(HCD_HandleTypeDef *hhcd)
功能描述 停止 USB 主机控制器(HCD)
输入参数 hhcd:HCD 句柄,指向一个 HCD_HandleTypeDef 结构体
输出参数
返回值 HAL_StatusTypeDef:停止结果,可以是 HAL_OK 或 HAL_ERROR
先决条件
被调用函数

1.15 HAL_HCD_ResetPort

函数名 HAL_HCD_ResetPort
函数原形 HAL_StatusTypeDef HAL_HCD_ResetPort(HCD_HandleTypeDef *hhcd)
功能描述 重置 USB 主机控制器(HCD)端口
输入参数 hhcd:HCD 句柄,指向一个 HCD_HandleTypeDef 结构体
输出参数
返回值 HAL_StatusTypeDef:重置结果,可以是 HAL_OK 或 HAL_ERROR
先决条件
被调用函数

1.16 HAL_HCD_GetState

函数名 HAL_HCD_GetState
函数原形 HAL_HCD_StateTypeDef HAL_HCD_GetState(HCD_HandleTypeDef *hhcd)
功能描述 获取 USB 主机控制器(HCD)状态
输入参数 hhcd:HCD 句柄,指向一个 HCD_HandleTypeDef 结构体
输出参数
返回值 HAL_HCD_StateTypeDef:HCD 状态,可以是以下之一:
- HAL_HCD_STATE_RESET:USB 主机控制器已经被重置
- HAL_HCD_STATE_READY:USB 主机控制器已经初始化完成
- HAL_HCD_STATE_ERROR:USB 主机控制器发生错误
先决条件
被调用函数

1.17 HAL_HCD_HC_GetURBState

函数名 HAL_HCD_HC_GetURBState

------------|
| 函数原形 | HCD_URBStateTypeDef HAL_HCD_HC_GetURBState(HCD_HandleTypeDef *hhcd, uint8_t chnum) |
| 功能描述 | 获取 USB 主机控制器(HCD)端点的 URB 状态 |
| 输入参数 1 | hhcd:HCD 句柄,指向一个 HCD_HandleTypeDef 结构体 |
| 输入参数 2 | chnum:端点编号 |
| 输出参数 | 无 |
| 返回值 | HCD_URBStateTypeDef:URB 状态,可以是以下之一: |
| | - HCD_URB_IDLE:URB 空闲状态 |
| | - HCD_URB_DONE:URB 完成状态 |
| | - HCD_URB_NOTREADY:URB 未准备好状态 |
| | - HCD_URB_NYET:URB NYET 状态 |
| | - HCD_URB_ERROR:URB 错误状态 |
| | - HCD_URB_STALL:URB STALL 状态 |
| 先决条件 | 无 |
| 被调用函数 | 无 |


1.18 HAL_HCD_HC_GetXferCount

函数名 HAL_HCD_HC_GetXferCount
函数原形 uint32_t HAL_HCD_HC_GetXferCount(HCD_HandleTypeDef *hhcd, uint8_t chnum)
功能描述 获取 USB 主机控制器(HCD)端点的传输计数
输入参数 1 hhcd:HCD 句柄,指向一个 HCD_HandleTypeDef 结构体
输入参数 2 chnum:端点编号
输出参数
返回值 uint32_t:传输计数
先决条件
被调用函数

1.19 HAL_HCD_HC_GetState

函数名 HAL_HCD_HC_GetState
函数原形 HCD_HCStateTypeDef HAL_HCD_HC_GetState(HCD_HandleTypeDef *hhcd, uint8_t chnum)
功能描述 获取 USB 主机控制器(HCD)端点的状态
输入参数 1 hhcd:HCD 句柄,指向一个 HCD_HandleTypeDef 结构体
输入参数 2 chnum:端点编号
输出参数
返回值 HCD_HCStateTypeDef:端点状态,可以是以下之一:
- HCD_HC_STATE_IDLE:端点空闲状态
- HCD_HC_STATE_XFRC:端点传输完成状态
- HCD_HC_STATE_HALTED:端点停止状态
- HCD_HC_STATE_NAK:端点 NAK 状态
- HCD_HC_STATE_NYET:端点 NYET 状态
- HCD_HC_STATE_STALL:端点 STALL 状态
- HCD_HC_STATE_XACTERR:端点传输错误状态
- HCD_HC_STATE_BBLERR:端点缓冲区错误状态
先决条件
被调用函数

1.20 HAL_HCD_GetCurrentFrame

函数名 HAL_HCD_GetCurrentFrame
函数原形 uint32_t HAL_HCD_GetCurrentFrame(HCD_HandleTypeDef *hhcd)
功能描述 获取当前 USB 主机控制器(HCD)帧号
输入参数 hhcd:HCD 句柄,指向一个 HCD_HandleTypeDef 结构体
输出参数
返回值 uint32_t:当前帧号
先决条件
被调用函数

1.21 HAL_HCD_GetCurrentSpeed

函数名 HAL_HCD_GetCurrentSpeed
函数原形 uint32_t HAL_HCD_GetCurrentSpeed(HCD_HandleTypeDef *hhcd)
功能描述 获取当前 USB 主机控制器(HCD)速度
输入参数 hhcd:HCD 句柄,指向一个 HCD_HandleTypeDef 结构体
输出参数
返回值 uint32_t:当前速度
- 0:低速(HS、FS、等等)
- 1:高速(HS、FS、等等)
先决条件
被调用函数

该文档修改记录:

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

总结

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

推荐阅读