USBD_HandleTypeDef
/* USB Device handle structure */
在DEVICE库里面,最主要的数据结构是USBD_HandleTypeDef,它将USB传输中的数据抽象到该数据结构内.该结构体包含所有变量和结构体,用以实时保存与设备、控制传输状态机以及端点的状态相关的所有信息.USB内核层所有的操作都围绕着该数据结构展开.
成员变量 描述
dev_config 枚举过程的最后会有一个SET_CONFIG的通用标准请求,该变量保存该请求内设置的配置值.
ep_in[16] STM32全系列最多由16个端点,可以全部作为单向端点,为了兼容所以定义了16个端点.该变量保存了端点的最大包长,发送/接收数据总长度,剩余发送/接收总长度,是否被使用,端点状态等属性.
ep_out[16] 同上
ep0_state EP0端点的状态,它控制着内核的状态机
dev_state 设备库里只支持连接、配置和上电 其余的统统认为时默认状态
dev_address 保存主机位设备分配的地址
request 标准请求存放
*pDesc 指向设备描述符,字符串描述符的管理接口结构体
*pClass 指向USB Device Class的操作接口,一般存放在USBD_XXX.C(XXX代表类名)文件.
*pClassData 指向USB Device Class的数据接口,初始化时候动态内存分配的,一般存放在USBD_XXX.H(XXX代表类名)文件
*pUserData 指向用户自己实现的应用层的函数集合,一般存放在USBD_XXX_IF.C文件
*pData 指向底层硬件驱动结构体,根据硬件平台也不一样.
————————————————
版权声明:本文为CSDN博主「embedded_w」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/a986096115/article/details/108304589
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
2019-10-31 电力采集
2019-10-31 工控