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

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 该驱动函数预览

序号函数名描述
1HAL_PCD_Init()初始化PCD(USB Peripheral Controller Device)接口。
2HAL_PCD_DeInit()反初始化PCD接口。
3HAL_PCD_MspInit()初始化MCU外设相关的PCD引脚或资源。
4HAL_PCD_MspDeInit()反初始化MCU外设相关的PCD引脚或资源。
5HAL_PCD_Start()启动PCD接口。
6HAL_PCD_Stop()停止PCD接口。
7HAL_PCD_IRQHandler()PCD中断处理程序。
8HAL_PCD_DataOutStageCallback()数据输出阶段回调函数。
9HAL_PCD_DataInStageCallback()数据输入阶段回调函数。
10HAL_PCD_SetupStageCallback()设置阶段回调函数。
11HAL_PCD_SOFCallback()SOF(Start Of Frame)回调函数。
12HAL_PCD_ResetCallback()复位回调函数。
13HAL_PCD_SuspendCallback()挂起回调函数。
14HAL_PCD_ResumeCallback()恢复回调函数。
15HAL_PCD_ISOOUTIncompleteCallback()ISO OUT(异步传输输出)不完整回调函数。
16HAL_PCD_ISOINIncompleteCallback()ISO IN(异步传输输入)不完整回调函数。
17HAL_PCD_ConnectCallback()连接回调函数。
18HAL_PCD_DisconnectCallback()断开连接回调函数。
19HAL_PCD_DevConnect()连接设备。
20HAL_PCD_DevDisconnect()断开设备连接。
21HAL_PCD_SetAddress()设置USB设备地址。
22HAL_PCD_EP_Open()开启USB设备的端点。
23HAL_PCD_EP_Close()关闭USB设备的端点。
24HAL_PCD_EP_Receive()接收数据到USB设备的端点。
25HAL_PCD_EP_GetRxCount()获取USB设备端点接收的数据数量。
26HAL_PCD_EP_Transmit()从USB设备的端点发送数据。
27HAL_PCD_EP_SetStall()设置USB设备端点STALL状态。
28HAL_PCD_EP_ClrStall()清除USB设备端点的STALL状态。
29HAL_PCD_EP_Flush()清空USB设备端点的缓冲区。
30HAL_PCD_ActivateRemoteWakeup()激活远程唤醒功能。
31HAL_PCD_DeActivateRemoteWakeup()停用远程唤醒功能。
32HAL_PCD_GetState()获取PCD接口的状态。

以下是使用模板:

#include "stm32f4xx_hal.h"int main(void) {// HAL初始化HAL_Init();// 初始化MCU外设相关的PCD引脚或资源HAL_PCD_MspInit();// 初始化PCD接口HAL_PCD_Init();// 进行其他操作...// 启动PCD接口HAL_PCD_Start();// 获取PCD接口的状态HAL_PCD_GetState();// 反初始化PCD接口HAL_PCD_DeInit();// 反初始化MCU外设相关的PCD引脚或资源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 阶段回调函数
输入参数 1hpcd:PCD 句柄,指向一个 PCD_HandleTypeDef 结构体
输入参数 2epnum:端点号
输出参数
返回值
先决条件
被调用函数

1.9 HAL_PCD_DataInStageCallback

函数名HAL_PCD_DataInStageCallback
函数原形void HAL_PCD_DataInStageCallback(PCD_HandleTypeDef *hpcd, uint8_t epnum)
功能描述USB PCD 数据 IN 阶段回调函数
输入参数 1hpcd:PCD 句柄,指向一个 PCD_HandleTypeDef 结构体
输入参数 2epnum:端点号
输出参数
返回值
先决条件
被调用函数

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日第一次发布,介绍了该博客驱动所有函数的介绍及使用

总结

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/bicheng/41736.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

基于机器学习(支持向量机,孤立森林,鲁棒协方差与层次聚类)的机械振动信号异常检测算法(MATLAB 2021B)

机械设备异常检测方法流程一般如下所示。 首先利用传感器采集机械运行过程中的状态信息,包括,振动、声音、压力、温度等。然后采用合适的信号处理技术对采集到机械信号进行分析处理,提取能够准确反映机械运行状态的特征。最后采用合理的异常决…

C++ 什么是虚函数?什么是纯虚函数,以及区别?(通俗易懂)

📚 当谈到虚函数时,通常是指在面向对象编程中的一种机制,它允许在派生类中重写基类的函数,并且能够通过基类指针或引用调用派生类中的函数。 目录 前言 🔥 虚函数 🔥 纯虚函数 🔥 两者区别…

洛谷 P1032 [NOIP2002 提高组] 字串变换

P1032 [NOIP2002 提高组] 字串变换 - 洛谷 | 计算机科学教育新生态 题目来源 洛谷 题目内容 [NOIP2002 提高组] 字串变换 题目背景 本题不保证存在靠谱的多项式复杂度的做法。测试数据非常的水,各种做法都可以通过,不代表算法正确。因此本题题目和…

mac|idea导入通义灵码插件

官方教程:通义灵码下载安装指南_智能编码助手_AI编程_云效(Apsara Devops)-阿里云帮助中心 下载插件: ⇩ TONGYI Lingma - JetBrains 结果如下: 选择apply、ok,会出现弹窗,点击登录 可以实现:生成单元测…

《C++20设计模式》代理模式

文章目录 一、前言二、实现1、UML类图2、实现 一、前言 这代理模式和装饰器模式很像啊。都是套一层类。😰 主要就是功能差别 装饰器: 为了强化原有类的功能。代理模式: 不改变原有功能,只是强化原有类的潜在行为。 我觉的书上有…

【基于R语言群体遗传学】-8-代际及时间推移对于变异的影响

上一篇博客,我们学习了在非选择下,以二项分布模拟遗传漂变的过程:【基于R语言群体遗传学】-7-遗传变异(genetic variation)-CSDN博客 那么我们之前有在代际之间去模拟,那么我们就想知道,遗传变…

KVM虚机调整磁盘大小(注:需重启虚拟机)

1、将磁盘大小由15G调整为25G [rootkvm ~]# virsh domblklist kvm-client #显示虚拟机硬盘列表 [rootkvm ~]# qemu-img resize /var/lib/libvirt/images/tesk-disk.qcow2 10G #扩容 [rootkvm ~]# qemu-img info /var/lib/libvirt/images/test-disk.qcow2 #查看信息 注&…

奥威BI方案:多行业、多场景,只打高端局

奥威BI方案,确实以其卓越的性能和广泛的应用领域,在高端数据分析市场中占据了一席之地。以下是对奥威BI方案的详细解析。 奥威BI方案是一款针对多行业、多场景的全面数据分析解决方案,它结合了大数据、云计算等先进技术,为企业提…

LeetCode:3101. 交替子数组计数(Java 找规律)

目录 3101. 交替子数组计数 题目描述: 实现代码与解析: 简洁版: 原理思路: 3101. 交替子数组计数 题目描述: 给你一个二进制数组nums 。如果一个子数组中 不存在 两个 相邻 元素的值 相同 的情况,我们…

看互联网大厂如何落地AI-Agent(3)

vivo一站式AI智能体构建平台的演进实践 引言 在AI技术的浪潮中,vivo互联网产品平台架构团队负责人张硕分享了vivo在构建一站式AI智能体平台方面的演进实践和深刻洞见。 背景与挑战 vivo面临的挑战包括创造商业价值、降低学习成本、合规性、以及LLM(大…

hnust 1816: 算法10-9:简单选择排序

hnust 1816: 算法10-9:简单选择排序 题目描述 选择排序的基本思想是:每一趟比较过程中,在n-i1(i1,2,…,n-1)个记录中选取关键字最小的记录作为有序序列中的第i个记录。 在多种选择排序中,最常用且形式最为简单的是简单选择排序。…

FFmpeg常用命令手册

官方文档:ffmpeg Documentation 常规选项 -i input_url 输入文件或者输入流的路径 Main 选项 -f fmt (input/output) 强制指定输入或输出文件的格式, 常见的格式名称包括flv,mp4、hls、mpegts、avi、mov -c[:stream_specifier] codec (i…

收银系统源码-收银台副屏广告

1. 功能描述 门店广告:双屏收银机,副屏广告,主屏和副屏同步,总部可统一控制广告位,也可以给门店开放权限,门店独立上传广告位; 2.适用场景 新店开业、门店周年庆、节假日门店活动宣传&#x…

【HICE】DNS反向解析

反向解析:IP ----> 主机名 1.更改主配置文件 2.:更改反向的信息 3.重启服务 4.测试解析是否成功

聊天服实现设计

聊天服拓扑关系 聊天服独立于游戏服,客户端直连聊天服客户端按 PlayerID 散列,连接聊天服有涉及扣道具才能发言的等(必须依赖游戏服功能的),先走游戏服,其他均可以直接走聊天服 聊天频道 - 世界频道 客户…

论文辅导 | 基于多尺度分解的LSTM⁃ARIMA锂电池寿命预测

辅导文章 模型描述 锂电池剩余使用寿命(Remaining useful life,RUL)预测是锂电池研究的一个重要方向,通过对RUL的准确预测,可以更好地管理和维护电池,延长电池使用寿命。为了能够准确预测锂电池的RUL&…

待研究课题记录

最近了解到两个新的有趣的节点,但是对于实际效果不是很确定,所以这里记录下,后续慢慢研究: 扰动注意力引导 Perturbed Attention Guidance GitHub - KU-CVLAB/Perturbed-Attention-Guidance: Official implementation of "…

默认导出(default)和命名导出

1.默认导出 优点: 简洁的导入语法: 导入时不需要使用花括号,可以直接重命名。单一职责: 模块导出一个主要功能或对象时,默认导出更符合逻辑。 适用场景: 模块只有一个导出: 如一个组件、一个…

CTS单测某个模块和测试项

1 &#xff0c;测试单个模块命令 run cts -m <模块名> 比如&#xff1a;run cts -m CtsUsbTests模块名可以从测试报告中看&#xff0c;如下&#xff1a; 2&#xff0c; 测试单个测试项 run cts -m <模块名> -t <test_name> 比如&#xff1a;run cts -m ru…

Linux程序地址空间

1. 进程地址空间 简单来说&#xff0c;就是从高地址往低地址&#xff0c;内存分区分别是&#xff1a; 内核空间&#xff1a;命令行参数argv和环境变量env等栈区&#xff1a;大部分局部变量&#xff0c;栈区内存往低处增长堆区&#xff1a;用于动态内存管理&#xff0c;堆区内存…