A35 STM32_HAL库函数 之PCD通用驱动 -- A -- 所有函数的介绍及使用
 - 1 该驱动函数预览
- 1.1 HAL_PCD_Init
- 1.2 HAL_PCD_DeInit
- 1.3 HAL_PCD_MspInit
- 1.4 HAL_PCD_MspDeInit
- 1.5 HAL_PCD_Start
- 1.6 HAL_PCD_Stop
- 1.7 HAL_PCD_IRQHandler
- 1.8 HAL_PCD_DataOutStageCallback
- 1.9 HAL_PCD_DataInStageCallback
- 1.10 HAL_PCD_SetupStageCallback
 
 
- 该文档修改记录:
- 总结
  
 
1 该驱动函数预览
 
| 序号 | 函数名 | 描述 | 
|---|
| 1 | HAL_PCD_Init() | 初始化PCD(USB Peripheral Controller Device)接口。 | 
| 2 | HAL_PCD_DeInit() | 反初始化PCD接口。 | 
| 3 | HAL_PCD_MspInit() | 初始化MCU外设相关的PCD引脚或资源。 | 
| 4 | HAL_PCD_MspDeInit() | 反初始化MCU外设相关的PCD引脚或资源。 | 
| 5 | HAL_PCD_Start() | 启动PCD接口。 | 
| 6 | HAL_PCD_Stop() | 停止PCD接口。 | 
| 7 | HAL_PCD_IRQHandler() | PCD中断处理程序。 | 
| 8 | HAL_PCD_DataOutStageCallback() | 数据输出阶段回调函数。 | 
| 9 | HAL_PCD_DataInStageCallback() | 数据输入阶段回调函数。 | 
| 10 | HAL_PCD_SetupStageCallback() | 设置阶段回调函数。 | 
| 11 | HAL_PCD_SOFCallback() | SOF(Start Of Frame)回调函数。 | 
| 12 | HAL_PCD_ResetCallback() | 复位回调函数。 | 
| 13 | HAL_PCD_SuspendCallback() | 挂起回调函数。 | 
| 14 | HAL_PCD_ResumeCallback() | 恢复回调函数。 | 
| 15 | HAL_PCD_ISOOUTIncompleteCallback() | ISO OUT(异步传输输出)不完整回调函数。 | 
| 16 | HAL_PCD_ISOINIncompleteCallback() | ISO IN(异步传输输入)不完整回调函数。 | 
| 17 | HAL_PCD_ConnectCallback() | 连接回调函数。 | 
| 18 | HAL_PCD_DisconnectCallback() | 断开连接回调函数。 | 
| 19 | HAL_PCD_DevConnect() | 连接设备。 | 
| 20 | HAL_PCD_DevDisconnect() | 断开设备连接。 | 
| 21 | HAL_PCD_SetAddress() | 设置USB设备地址。 | 
| 22 | HAL_PCD_EP_Open() | 开启USB设备的端点。 | 
| 23 | HAL_PCD_EP_Close() | 关闭USB设备的端点。 | 
| 24 | HAL_PCD_EP_Receive() | 接收数据到USB设备的端点。 | 
| 25 | HAL_PCD_EP_GetRxCount() | 获取USB设备端点接收的数据数量。 | 
| 26 | HAL_PCD_EP_Transmit() | 从USB设备的端点发送数据。 | 
| 27 | HAL_PCD_EP_SetStall() | 设置USB设备端点STALL状态。 | 
| 28 | HAL_PCD_EP_ClrStall() | 清除USB设备端点的STALL状态。 | 
| 29 | HAL_PCD_EP_Flush() | 清空USB设备端点的缓冲区。 | 
| 30 | HAL_PCD_ActivateRemoteWakeup() | 激活远程唤醒功能。 | 
| 31 | HAL_PCD_DeActivateRemoteWakeup() | 停用远程唤醒功能。 | 
| 32 | HAL_PCD_GetState() | 获取PCD接口的状态。 | 
 
以下是使用模板:
 
#include "stm32f4xx_hal.h"int main(void) {HAL_Init();HAL_PCD_MspInit();HAL_PCD_Init();HAL_PCD_Start();HAL_PCD_GetState();HAL_PCD_DeInit();HAL_PCD_MspDeInit();return 0;
}
 
1.1 HAL_PCD_Init
 
| 函数名 | HAL_PCD_Init | 
|---|
| 函数原形 | HAL_StatusTypeDef HAL_PCD_Init(PCD_HandleTypeDef *hpcd) | 
| 功能描述 | 初始化 USB PCD 控制器 | 
| 输入参数 | hpcd:PCD 句柄,指向一个 PCD_HandleTypeDef 结构体 | 
| 输出参数 | 无 | 
| 返回值 | HAL_StatusTypeDef:操作状态,可以是 HAL_OK 或 HAL_ERROR | 
| 先决条件 | 无 | 
| 被调用函数 | 无 | 
 
 
1.2 HAL_PCD_DeInit
 
| 函数名 | HAL_PCD_DeInit | 
|---|
| 函数原形 | void HAL_PCD_DeInit(PCD_HandleTypeDef *hpcd) | 
| 功能描述 | 反初始化 USB PCD 控制器 | 
| 输入参数 | hpcd:PCD 句柄,指向一个 PCD_HandleTypeDef 结构体 | 
| 输出参数 | 无 | 
| 返回值 | 无 | 
| 先决条件 | 无 | 
| 被调用函数 | 无 | 
 
 
1.3 HAL_PCD_MspInit
 
| 函数名 | HAL_PCD_MspInit | 
|---|
| 函数原形 | void HAL_PCD_MspInit(PCD_HandleTypeDef *hpcd) | 
| 功能描述 | USB PCD 控制器底层 MSP(MCU 特定设置)初始化 | 
| 输入参数 | hpcd:PCD 句柄,指向一个 PCD_HandleTypeDef 结构体 | 
| 输出参数 | 无 | 
| 返回值 | 无 | 
| 先决条件 | 无 | 
| 被调用函数 | 无 | 
 
 
1.4 HAL_PCD_MspDeInit
 
| 函数名 | HAL_PCD_MspDeInit | 
|---|
| 函数原形 | void HAL_PCD_MspDeInit(PCD_HandleTypeDef *hpcd) | 
| 功能描述 | USB PCD 控制器底层 MSP(MCU 特定设置)反初始化 | 
| 输入参数 | hpcd:PCD 句柄,指向一个 PCD_HandleTypeDef 结构体 | 
| 输出参数 | 无 | 
| 返回值 | 无 | 
| 先决条件 | 无 | 
| 被调用函数 | 无 | 
 
 
1.5 HAL_PCD_Start
 
| 函数名 | HAL_PCD_Start | 
|---|
| 函数原形 | HAL_StatusTypeDef HAL_PCD_Start(PCD_HandleTypeDef *hpcd) | 
| 功能描述 | 启动 USB PCD 控制器 | 
| 输入参数 | hpcd:PCD 句柄,指向一个 PCD_HandleTypeDef 结构体 | 
| 输出参数 | 无 | 
| 返回值 | HAL_StatusTypeDef:操作状态,可以是 HAL_OK 或 HAL_ERROR | 
| 先决条件 | 无 | 
| 被调用函数 | 无 | 
 
 
1.6 HAL_PCD_Stop
 
| 函数名 | HAL_PCD_Stop | 
|---|
| 函数原形 | HAL_StatusTypeDef HAL_PCD_Stop(PCD_HandleTypeDef *hpcd) | 
| 功能描述 | 停止 USB PCD 控制器 | 
| 输入参数 | hpcd:PCD 句柄,指向一个 PCD_HandleTypeDef 结构体 | 
| 输出参数 | 无 | 
| 返回值 | HAL_StatusTypeDef:操作状态,可以是 HAL_OK 或 HAL_ERROR | 
| 先决条件 | 无 | 
| 被调用函数 | 无 | 
 
 
1.7 HAL_PCD_IRQHandler
 
| 函数名 | HAL_PCD_IRQHandler | 
|---|
| 函数原形 | void HAL_PCD_IRQHandler(PCD_HandleTypeDef *hpcd) | 
| 功能描述 | USB PCD 控制器中断处理函数 | 
| 输入参数 | hpcd:PCD 句柄,指向一个 PCD_HandleTypeDef 结构体 | 
| 输出参数 | 无 | 
| 返回值 | 无 | 
| 先决条件 | 无 | 
| 被调用函数 | 无 | 
 
 
1.8 HAL_PCD_DataOutStageCallback
 
| 函数名 | HAL_PCD_DataOutStageCallback | 
|---|
| 函数原形 | void HAL_PCD_DataOutStageCallback(PCD_HandleTypeDef *hpcd, uint8_t epnum) | 
| 功能描述 | USB PCD 数据 OUT 阶段回调函数 | 
| 输入参数 1 | hpcd:PCD 句柄,指向一个 PCD_HandleTypeDef 结构体 | 
| 输入参数 2 | epnum:端点号 | 
| 输出参数 | 无 | 
| 返回值 | 无 | 
| 先决条件 | 无 | 
| 被调用函数 | 无 | 
 
 
1.9 HAL_PCD_DataInStageCallback
 
| 函数名 | HAL_PCD_DataInStageCallback | 
|---|
| 函数原形 | void HAL_PCD_DataInStageCallback(PCD_HandleTypeDef *hpcd, uint8_t epnum) | 
| 功能描述 | USB PCD 数据 IN 阶段回调函数 | 
| 输入参数 1 | hpcd:PCD 句柄,指向一个 PCD_HandleTypeDef 结构体 | 
| 输入参数 2 | epnum:端点号 | 
| 输出参数 | 无 | 
| 返回值 | 无 | 
| 先决条件 | 无 | 
| 被调用函数 | 无 | 
 
 
1.10 HAL_PCD_SetupStageCallback
 
| 函数名 | HAL_PCD_SetupStageCallback | 
|---|
| 函数原形 | void HAL_PCD_SetupStageCallback(PCD_HandleTypeDef *hpcd) | 
| 功能描述 | USB PCD SETUP 阶段回调函数 | 
| 输入参数 | hpcd:PCD 句柄,指向一个 PCD_HandleTypeDef 结构体 | 
| 输出参数 | 无 | 
| 返回值 | 无 | 
| 先决条件 | 无 | 
|  |  | 
 
被调用函数 | 无 |
 
 
该文档修改记录:
 
| 修改时间 | 修改说明 | 
|---|
| 2024年4月30日 | 第一次发布,介绍了该博客驱动所有函数的介绍及使用 | 
 
总结
 
以上就是该博客驱动所有函数的介绍及使用的内容。
 有不明白的地方欢迎留言;有建议欢迎留言,我后面编写文档好改进。
 创作不容,如果文档对您有帮助,记得给个赞。