当前位置: 首页 > news >正文

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

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

  • 1 该驱动函数预览
      • 1.11 HAL_PCD_SOFCallback
      • 1.12 HAL_PCD_ResetCallback
      • 1.13 HAL_PCD_SuspendCallback
      • 1.14 HAL_PCD_ResumeCallback
      • 1.15 HAL_PCD_ISOOUTIncompleteCallback
      • 1.16 HAL_PCD_ISOINIncompleteCallback
      • 1.17 HAL_PCD_ConnectCallback
      • 1.18 HAL_PCD_DisconnectCallback
      • 1.19 HAL_PCD_DevConnect
      • 1.20 HAL_PCD_DevDisconnect
      • 1.21 HAL_PCD_SetAddress
      • 1.22 HAL_PCD_EP_Open
  • 该文档修改记录:
  • 总结

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.11 HAL_PCD_SOFCallback

函数名HAL_PCD_SOFCallback
函数原形void HAL_PCD_SOFCallback(PCD_HandleTypeDef *hpcd)
功能描述USB PCD SOF(帧)回调函数
输入参数hpcd:PCD 句柄,指向一个 PCD_HandleTypeDef 结构体
输出参数
返回值
先决条件
被调用函数

1.12 HAL_PCD_ResetCallback

函数名HAL_PCD_ResetCallback
函数原形void HAL_PCD_ResetCallback(PCD_HandleTypeDef *hpcd)
功能描述USB PCD 复位回调函数
输入参数hpcd:PCD 句柄,指向一个 PCD_HandleTypeDef 结构体
输出参数
返回值
先决条件
被调用函数

1.13 HAL_PCD_SuspendCallback

函数名HAL_PCD_SuspendCallback
函数原形void HAL_PCD_SuspendCallback(PCD_HandleTypeDef *hpcd)
功能描述USB PCD 挂起回调函数
输入参数hpcd:PCD 句柄,指向一个 PCD_HandleTypeDef 结构体
输出参数
返回值
先决条件
被调用函数

1.14 HAL_PCD_ResumeCallback

函数名HAL_PCD_ResumeCallback
函数原形void HAL_PCD_ResumeCallback(PCD_HandleTypeDef *hpcd)
功能描述USB PCD 恢复回调函数
输入参数hpcd:PCD 句柄,指向一个 PCD_HandleTypeDef 结构体
输出参数
返回值
先决条件
被调用函数

1.15 HAL_PCD_ISOOUTIncompleteCallback

函数名HAL_PCD_ISOOUTIncompleteCallback
函数原形void HAL_PCD_ISOOUTIncompleteCallback(PCD_HandleTypeDef *hpcd)
功能描述USB PCD ISO OUT 传输不完整回调函数
输入参数hpcd:PCD 句柄,指向一个 PCD_HandleTypeDef 结构体
输出参数
返回值
先决条件
被调用函数

1.16 HAL_PCD_ISOINIncompleteCallback

函数名HAL_PCD_ISOINIncompleteCallback
函数原形void HAL_PCD_ISOINIncompleteCallback(PCD_HandleTypeDef *hpcd)
功能描述USB PCD ISO IN 传输不完整回调函数
输入参数hpcd:PCD 句柄,指向一个 PCD_HandleTypeDef 结构体
输出参数
返回值
先决条件
被调用函数

1.17 HAL_PCD_ConnectCallback

函数名HAL_PCD_ConnectCallback
函数原形void HAL_PCD_ConnectCallback(PCD_HandleTypeDef *hpcd)
功能描述USB PCD 连接回调函数
输入参数hpcd:PCD 句柄,指向一个 PCD_HandleTypeDef 结构体
输出参数
返回值
先决条件
被调用函数

1.18 HAL_PCD_DisconnectCallback

函数名HAL_PCD_DisconnectCallback
函数原形void HAL_PCD_DisconnectCallback(PCD_HandleTypeDef *hpcd)
功能描述USB PCD 断开连接回调函数
输入参数hpcd:PCD 句柄,指向一个 PCD_HandleTypeDef 结构体
输出参数
返回值
先决条件
被调用函数

1.19 HAL_PCD_DevConnect

函数名HAL_PCD_DevConnect
函数原形void HAL_PCD_DevConnect(PCD_HandleTypeDef *hpcd)
功能描述通知 USB PCD 设备已连接
输入参数hpcd:PCD 句柄,指向一个 PCD_HandleTypeDef 结构体
输出参数
返回值
先决条件
被调用函数

1.20 HAL_PCD_DevDisconnect

函数名HAL_PCD_DevDisconnect
函数原形void HAL_PCD_DevDisconnect(PCD_HandleTypeDef *hpcd)
功能描述通知 USB PCD 设备已断开连接
输入参数hpcd:PCD 句柄,指向一个 PCD_HandleTypeDef 结构体
输出参数
返回值
先决条件
被调用函数

1.21 HAL_PCD_SetAddress

函数名HAL_PCD_SetAddress
函数原形void HAL_PCD_SetAddress(PCD_HandleTypeDef *hpcd,

uint8_t address) |
| 功能描述 | 设置 USB PCD 设备地址 |
| 输入参数 1 | hpcd:PCD 句柄,指向一个 PCD_HandleTypeDef 结构体 |
| 输入参数 2 | address:设备地址 |
| 输出参数 | 无 |
| 返回值 | 无 |
| 先决条件 | 无 |
| 被调用函数 | 无 |


1.22 HAL_PCD_EP_Open

函数名HAL_PCD_EP_Open
函数原形HAL_StatusTypeDef HAL_PCD_EP_Open(PCD_HandleTypeDef *hpcd, uint8_t ep_addr, uint8_t ep_type, uint16_t ep_mps)
功能描述打开 USB PCD 端点
输入参数 1hpcd:PCD 句柄,指向一个 PCD_HandleTypeDef 结构体
输入参数 2ep_addr:端点地址
输入参数 3ep_type:端点类型
输入参数 4ep_mps:最大包大小
输出参数
返回值HAL_StatusTypeDef:操作状态,可以是 HAL_OK 或 HAL_ERROR
先决条件
被调用函数

该文档修改记录:

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

总结

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

相关文章:

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

A36 STM32_HAL库函数 之PCD通用驱动 -- B -- 所有函数的介绍及使用 1 该驱动函数预览1.11 HAL_PCD_SOFCallback1.12 HAL_PCD_ResetCallback1.13 HAL_PCD_SuspendCallback1.14 HAL_PCD_ResumeCallback1.15 HAL_PCD_ISOOUTIncompleteCallback1.16 HAL_PCD_ISOINIncompleteCallbac…...

vue2 + element三级菜单实现模板

需求&#xff1a; 需要一个含有三级菜单的结构模板&#xff0c;用于业务快速开发。 解决&#xff1a; sidebar.vue <template><el-menu :default-active"defaultActive" class"el-menu-vertical-demo" active-text-color"#ffd04b"&…...

vue H5页面video 视频流自动播放, 解决ios不能自动播放问题

视频组件 <videostyle"width: 100%; height: 100%;object-fit: fill"class"player"refplayer_big_boxcontrolspreloadautoplay //自动播放muted //是否静音playsinline"true"x5-playsinline""webkit-playsinline"tru…...

自闭症儿童:探索症状背后的多彩内心世界

在星启帆自闭症康复中心&#xff0c;我们每天与一群独特而珍贵的孩子相遇——他们&#xff0c;是自闭症谱系障碍的患儿。自闭症&#xff0c;这一复杂的神经发育障碍&#xff0c;以其多样化的症状表现&#xff0c;为每个孩子的生活轨迹绘上了不同的色彩。 自闭症孩子的症状各异…...

在Centos7上安装PostgreSQL16的详细步骤

文章目录 环境一、准备二、postgresql下载方法一&#xff1a;wget下载方法二&#xff1a;下载压缩包解压 三、创建用户组、用户四、创建数据主目录五、配置环境变量六、initdb初使化数据库七、配置服务八、设置开机自启动九、设置防火墙十、启动数据库服务 环境 CPU: 4 核心或以…...

MySQL 图形化界面

填完信息之后&#xff0c;圆圈处可以验证是否可以连接数据库 展示所有数据库&#xff08;因为有的可能连上&#xff0c;却没有数据库显示&#xff09;...

【人工智能】GPT-5的即将到来:从高中生进化到,,,博士生?

GPT-5的即将到来&#xff1a;从高中生进化到,博士生&#xff1f; 随着近月GPT-4o的出世&#xff0c;OpenAI也在进行一系列的采访和介绍接下来的展望和目标。 在6月22日的采访中&#xff0c;美国达特茅斯工程学院公布了OpenAI首席技术官米拉穆拉蒂的访谈内容。穆拉蒂确认&#…...

【收录率高丨投稿范围广 | 往届均已EI检索】第四届光学与通信技术国际学术会议(ICOCT 2024,8月9-11)

欢迎参加第四届光学与通信技术国际学术会议&#xff08;ICOCT 2024&#xff09;&#xff0c;该会议将于2024年8月9-11日在南京举办。自2021年首次会议以来&#xff0c;ICOCT已经发展成为光学和通信领域较有影响力的国际会议之一&#xff0c;聚焦最前沿的技术进展与未来发展趋势…...

小阿轩yx-LVS负载均衡群集

小阿轩yx-LVS负载均衡群集 构建群集服务器—通过整合多台服务器使用 LVS 达到服务器的高可用和负载均衡并以同一个 IP 地址对外提供相同的服务 LVS 群集应用基础 群集称呼来自英文单词“Cluster”在服务器领域则表示大量服务器的集合体&#xff0c;区分单个服务器 Cluster …...

CPP知识点记录总结

1、类的const成员函数 const成员函数的const 实际修饰的是该成员函数隐含的this指针&#xff0c;表明在该成员函数中不能对类的任何成员进行修改。 class A {void fun() const {// 常成员函数&#xff0c;在函数名后用const修饰} } 一文带你入门C类和对象【十万字详解&#…...

Spring源码(一) 如何阅读 Spring 源码

学习 Spring 的源码&#xff0c;也可以通过 SpringBoot 搭环境。 不管是什么源码&#xff0c;最好写个 demo&#xff0c;跑起来&#xff0c;然后从常用的类和方法入手&#xff0c;跟踪调试。 配置对象 新建一个 SpringBoot 的项目&#xff0c; 详情见&#xff1a; https://b…...

【代码随想录训练营】【Day 63】【单调栈-2】| Leetcode 42, 84

【代码随想录训练营】【Day 63】【单调栈-2】| Leetcode 42, 84 需强化知识点 单调栈强化 题目 42. 接雨水 注意 python 数组反序用法 result [::-1] class Solution:def trap(self, height: List[int]) -> int:# n len(height)# leftMax, rightMax [0] * n, [0] * …...

CTF常用sql注入(一)联合注入和宽字节

0x01 前言 给自己总结一下sql注入的常用姿势吧&#xff0c;记录一下学习 0x02 联合 联合注入的关键词是union SQL的union联合注入原理是联合两个表进行注入攻击&#xff0c;使用union select关键词来进行联合查询。 那么为什么我们在题目中一般是只写一个呢 因为 $sql &quo…...

薄冰英语语法学习--冠词1

冠词有2个,the 和 a /an the 叫定冠词 常用形容一类事务、特指&#xff08;加强&#xff09;、放在转有名词前面。 就这3个 定冠词 1. 定冠词特指某个&#xff08;某些&#xff09;人或某个&#xff08;某些&#xff09;事物 Many people came here to visit the old cast…...

基于Java中的SSM框架实现野生动物公益保护系统项目【项目源码+论文说明】计算机毕业设计

基于Java中的SSM框架实现野生动物公益保护系统演示 摘要 本系统按照网站系统设计的基本流程&#xff0c;遵循系统开发生命周期法和结构化方法&#xff0c;基于Java语言设计并实现了野生动物公益保护系统。该系统基于浏览器/服务器模式&#xff0c;采用JSP技术&#xff0c;后台…...

c->c++(二):class

本文主要探讨C类的相关知识。 构造和析构函数 构造函数(可多个)&#xff1a;对象产生时调用初始化class属性、分配class内部需要的动态内存 析构函数&#xff08;一个&#xff09;&#xff1a;对对象消亡时调用回收分配动态内存 C提供默认构造和析构,…...

11 UDP的可靠传输协议QUIC

1.如何做到可靠性传输 2.UDP与TCP,我们如何选择 3.UDP如何可靠,KCP协议在哪些方面有优势 4.KCP协议精讲(重点讲解 5.OUIC时代是否已经到来 UDP如何做到可靠传输 ACK机制重传机制 重传策略序号机制(后发的包可能先到) 3 2 1-> 2 3 1重排机制 2 3 1-> 3 2 1窗口机制 流…...

14-20 Vision Transformer用AI的画笔描绘新世界

概述 毫无疑问,目前最受关注且不断发展的最重要的主题之一是使用人工智能生成图像、视频和文本。大型语言模型 (LLM) 已展示出其在文本生成方面的卓越能力。它们在文本生成方面的许多问题已得到解决。然而,LLM 面临的一个主要挑战是它们有时会产生幻觉反应。 最近推出的新模…...

LVS FILTER UNUSED OPTION

我正在「拾陆楼」和朋友们讨论有趣的话题,你⼀起来吧? 拾陆楼知识星球入口 过滤一些版图与spice网表对不上的器件。 一般后端遇不到这个问题,因为通常是需要写到网表中的decap没有写出来造成的,如下图。...

Python后端面试题

1. 文件操作w和r的区别 在Python中&#xff0c;文件操作模式中的w和r都表示对文件的读写操作&#xff0c;但它们在打开文件时的行为有所不同&#xff1a; r模式&#xff1a; 读写&#xff1a;这种模式允许你同时读取和写入文件。文件必须已经存在&#xff0c;否则会抛出一个Fi…...

C++ 模板与泛型编程入门

C 模板与泛型编程入门 模板把类型&#xff08;及非类型参数&#xff09;作为参数&#xff0c;在编译期由编译器按用法生成具体函数或类&#xff0c;是 C 泛型编程与 STL 的基础。下文以 Max、简单类模板、选择排序及可定制比较器为例说明常见写法&#xff1b;排序复杂度为 (O(…...

[2026 职场洗牌系列 01] 程序员正在“杀死”自己的工作?科技行业高危预警

长久以来&#xff0c;学计算机&#xff08;CS&#xff09;在很多年轻人眼里就等同于拿到了通往高薪和阶层跃升的金钥匙。大家都觉得&#xff0c;只要把代码敲得溜&#xff0c;这辈子在职场上基本就稳了。可惜&#xff0c;到了2026年的今天&#xff0c;生成式AI正在毫不留情地把…...

RSA宣布与Microsoft扩大合作,进一步巩固公司在无密码身份安全领域的领导地位

创新合作开启安全、基于人工智能的员工身份验证新时代 RSA今日在RSAC 2026大会上宣布&#xff0c;将扩大对全新Microsoft 365 E7&#xff1a;The Frontier Suite解决方案的支持。这一新增支持结合了额外的无密码功能&#xff0c;在企业拥抱人工智能驱动的生产力未来之际&#…...

网络安全这个技能学会了,不考研也能迅速找到高薪工作

网络安全这个技能学会了&#xff0c;不考研也能迅速找到高薪工作 近几年“考研热”持续升温&#xff0c;报名人数和报录比屡创新高。据数据显示&#xff1a;2003年全国考研人数仅仅才70万&#xff0c;直至2017年考研人数才刚刚突破200万。而今年考研人数居高达457万&#xff0…...

如何安全升级Cura软件版本:从风险规避到价值创造的全流程指南

如何安全升级Cura软件版本&#xff1a;从风险规避到价值创造的全流程指南 【免费下载链接】Cura 3D printer / slicing GUI built on top of the Uranium framework 项目地址: https://gitcode.com/gh_mirrors/cu/Cura UltiMaker Cura作为全球最受欢迎的3D打印切片软件&…...

Android音频输出流实战:从AudioFlinger到HAL层的完整调用链解析

Android音频输出流深度解析&#xff1a;从框架设计到硬件交互 1. Android音频系统架构概览 Android音频子系统采用分层设计&#xff0c;每一层都有明确的职责划分。理解这个架构是分析音频输出流的基础。 核心层级结构&#xff1a; 应用层&#xff1a;通过AudioTrack、MediaPla…...

新手零基础入门:借助快马AI生成你的第一个班级宠物园网页应用

作为一个刚接触编程的新手&#xff0c;想要快速上手开发一个班级宠物园网页应用&#xff0c;确实会遇到不少挑战。不过现在有了InsCode(快马)平台这样的工具&#xff0c;整个过程变得简单多了。下面我就分享一下自己从零开始构建这个项目的经验&#xff0c;希望能帮助到同样想入…...

DAMO-YOLO部署教程:SSL证书配置与HTTP自动跳转HTTPS设置

DAMO-YOLO部署教程&#xff1a;SSL证书配置与HTTP自动跳转HTTPS设置 1. 引言 当你成功部署了DAMO-YOLO智能视觉探测系统后&#xff0c;可能会发现浏览器提示"不安全"的警告。这是因为默认的HTTP协议缺乏加密保护&#xff0c;对于涉及图像处理的AI系统来说&#xff…...

Java 17 新特性实战:现代 Java 开发的优雅实践

Java 17 新特性实战&#xff1a;现代 Java 开发的优雅实践 前言 大家好。最近很多读者朋友询问 Java 17 的新特性以及如何在项目中应用这些特性。作为一个长期使用 Java 的架构师&#xff0c;今天我想分享一下 Java 17 的新特性以及在实际项目中的应用经验。 Java 17 的核心新特…...

SecGPT-14B实操手册:Gradio界面中temperature=0.3对安全答案确定性的影响

SecGPT-14B实操手册&#xff1a;Gradio界面中temperature0.3对安全答案确定性的影响 1. 引言&#xff1a;为什么安全问答需要“确定性”&#xff1f; 想象一下&#xff0c;你正在向一位网络安全专家咨询一个紧急的安全漏洞问题。你希望得到的回答是清晰、准确、且唯一的正确答…...