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 该驱动函数预览
| 序号 | 函数名 | 描述 |
|---|---|---|
| 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初始化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 端点 |
| 输入参数 1 | hpcd:PCD 句柄,指向一个 PCD_HandleTypeDef 结构体 |
| 输入参数 2 | ep_addr:端点地址 |
| 输入参数 3 | ep_type:端点类型 |
| 输入参数 4 | ep_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三级菜单实现模板
需求: 需要一个含有三级菜单的结构模板,用于业务快速开发。 解决: 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…...
自闭症儿童:探索症状背后的多彩内心世界
在星启帆自闭症康复中心,我们每天与一群独特而珍贵的孩子相遇——他们,是自闭症谱系障碍的患儿。自闭症,这一复杂的神经发育障碍,以其多样化的症状表现,为每个孩子的生活轨迹绘上了不同的色彩。 自闭症孩子的症状各异…...
在Centos7上安装PostgreSQL16的详细步骤
文章目录 环境一、准备二、postgresql下载方法一:wget下载方法二:下载压缩包解压 三、创建用户组、用户四、创建数据主目录五、配置环境变量六、initdb初使化数据库七、配置服务八、设置开机自启动九、设置防火墙十、启动数据库服务 环境 CPU: 4 核心或以…...
MySQL 图形化界面
填完信息之后,圆圈处可以验证是否可以连接数据库 展示所有数据库(因为有的可能连上,却没有数据库显示)...
【人工智能】GPT-5的即将到来:从高中生进化到,,,博士生?
GPT-5的即将到来:从高中生进化到,博士生? 随着近月GPT-4o的出世,OpenAI也在进行一系列的采访和介绍接下来的展望和目标。 在6月22日的采访中,美国达特茅斯工程学院公布了OpenAI首席技术官米拉穆拉蒂的访谈内容。穆拉蒂确认&#…...
【收录率高丨投稿范围广 | 往届均已EI检索】第四届光学与通信技术国际学术会议(ICOCT 2024,8月9-11)
欢迎参加第四届光学与通信技术国际学术会议(ICOCT 2024),该会议将于2024年8月9-11日在南京举办。自2021年首次会议以来,ICOCT已经发展成为光学和通信领域较有影响力的国际会议之一,聚焦最前沿的技术进展与未来发展趋势…...
小阿轩yx-LVS负载均衡群集
小阿轩yx-LVS负载均衡群集 构建群集服务器—通过整合多台服务器使用 LVS 达到服务器的高可用和负载均衡并以同一个 IP 地址对外提供相同的服务 LVS 群集应用基础 群集称呼来自英文单词“Cluster”在服务器领域则表示大量服务器的集合体,区分单个服务器 Cluster …...
CPP知识点记录总结
1、类的const成员函数 const成员函数的const 实际修饰的是该成员函数隐含的this指针,表明在该成员函数中不能对类的任何成员进行修改。 class A {void fun() const {// 常成员函数,在函数名后用const修饰} } 一文带你入门C类和对象【十万字详解&#…...
Spring源码(一) 如何阅读 Spring 源码
学习 Spring 的源码,也可以通过 SpringBoot 搭环境。 不管是什么源码,最好写个 demo,跑起来,然后从常用的类和方法入手,跟踪调试。 配置对象 新建一个 SpringBoot 的项目, 详情见: 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注入的常用姿势吧,记录一下学习 0x02 联合 联合注入的关键词是union SQL的union联合注入原理是联合两个表进行注入攻击,使用union select关键词来进行联合查询。 那么为什么我们在题目中一般是只写一个呢 因为 $sql &quo…...
薄冰英语语法学习--冠词1
冠词有2个,the 和 a /an the 叫定冠词 常用形容一类事务、特指(加强)、放在转有名词前面。 就这3个 定冠词 1. 定冠词特指某个(某些)人或某个(某些)事物 Many people came here to visit the old cast…...
基于Java中的SSM框架实现野生动物公益保护系统项目【项目源码+论文说明】计算机毕业设计
基于Java中的SSM框架实现野生动物公益保护系统演示 摘要 本系统按照网站系统设计的基本流程,遵循系统开发生命周期法和结构化方法,基于Java语言设计并实现了野生动物公益保护系统。该系统基于浏览器/服务器模式,采用JSP技术,后台…...
c->c++(二):class
本文主要探讨C类的相关知识。 构造和析构函数 构造函数(可多个):对象产生时调用初始化class属性、分配class内部需要的动态内存 析构函数(一个):对对象消亡时调用回收分配动态内存 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中,文件操作模式中的w和r都表示对文件的读写操作,但它们在打开文件时的行为有所不同: r模式: 读写:这种模式允许你同时读取和写入文件。文件必须已经存在,否则会抛出一个Fi…...
基于数字孪生的水厂可视化平台建设:架构与实践
分享大纲: 1、数字孪生水厂可视化平台建设背景 2、数字孪生水厂可视化平台建设架构 3、数字孪生水厂可视化平台建设成效 近几年,数字孪生水厂的建设开展的如火如荼。作为提升水厂管理效率、优化资源的调度手段,基于数字孪生的水厂可视化平台的…...
零基础设计模式——行为型模式 - 责任链模式
第四部分:行为型模式 - 责任链模式 (Chain of Responsibility Pattern) 欢迎来到行为型模式的学习!行为型模式关注对象之间的职责分配、算法封装和对象间的交互。我们将学习的第一个行为型模式是责任链模式。 核心思想:使多个对象都有机会处…...
【C++从零实现Json-Rpc框架】第六弹 —— 服务端模块划分
一、项目背景回顾 前五弹完成了Json-Rpc协议解析、请求处理、客户端调用等基础模块搭建。 本弹重点聚焦于服务端的模块划分与架构设计,提升代码结构的可维护性与扩展性。 二、服务端模块设计目标 高内聚低耦合:各模块职责清晰,便于独立开发…...
算法笔记2
1.字符串拼接最好用StringBuilder,不用String 2.创建List<>类型的数组并创建内存 List arr[] new ArrayList[26]; Arrays.setAll(arr, i -> new ArrayList<>()); 3.去掉首尾空格...
RSS 2025|从说明书学习复杂机器人操作任务:NUS邵林团队提出全新机器人装配技能学习框架Manual2Skill
视觉语言模型(Vision-Language Models, VLMs),为真实环境中的机器人操作任务提供了极具潜力的解决方案。 尽管 VLMs 取得了显著进展,机器人仍难以胜任复杂的长时程任务(如家具装配),主要受限于人…...
Python+ZeroMQ实战:智能车辆状态监控与模拟模式自动切换
目录 关键点 技术实现1 技术实现2 摘要: 本文将介绍如何利用Python和ZeroMQ消息队列构建一个智能车辆状态监控系统。系统能够根据时间策略自动切换驾驶模式(自动驾驶、人工驾驶、远程驾驶、主动安全),并通过实时消息推送更新车…...
Linux中《基础IO》详细介绍
目录 理解"文件"狭义理解广义理解文件操作的归类认知系统角度文件类别 回顾C文件接口打开文件写文件读文件稍作修改,实现简单cat命令 输出信息到显示器,你有哪些方法stdin & stdout & stderr打开文件的方式 系统⽂件I/O⼀种传递标志位…...
渗透实战PortSwigger Labs指南:自定义标签XSS和SVG XSS利用
阻止除自定义标签之外的所有标签 先输入一些标签测试,说是全部标签都被禁了 除了自定义的 自定义<my-tag onmouseoveralert(xss)> <my-tag idx onfocusalert(document.cookie) tabindex1> onfocus 当元素获得焦点时(如通过点击或键盘导航&…...
【笔记】AI Agent 项目 SUNA 部署 之 Docker 构建记录
#工作记录 构建过程记录 Microsoft Windows [Version 10.0.27871.1000] (c) Microsoft Corporation. All rights reserved.(suna-py3.12) F:\PythonProjects\suna>python setup.py --admin███████╗██╗ ██╗███╗ ██╗ █████╗ ██╔════╝…...
java 局域网 rtsp 取流 WebSocket 推送到前端显示 低延迟
众所周知 摄像头取流推流显示前端延迟大 传统方法是服务器取摄像头的rtsp流 然后客户端连服务器 中转多了,延迟一定不小。 假设相机没有专网 公网 1相机自带推流 直接推送到云服务器 然后客户端拉去 2相机只有rtsp ,边缘服务器拉流推送到云服务器 …...
