HOST 数据结构
HOST库里面有很多数据类型,其中最重要的如下所示.
类型名 | 功能 |
---|
USBH_HandleTypeDef | 管理主机库 | HCD_HandleTypeDef | 管理硬件属性 | USBH_ClassTypeDef | 管理类处理方法 |
12.1、USBH_HandleTypeDef
管理主机库各种状态的结构体.成员变量及描述在官方文档中都有,如下所示.
一般情况下,针对MCU的HOST开发都是一个主机对应一个设备居多,我也是这种情况,所以重点关注device 、gstate 即可.
device 代表当前设备的所有信息,开发过程中需要核对当前变量保存内容是否和电脑读取内容一致.
备注: 电脑读取内容指的是比如USBlyzer 软件获取到的设备描述符.
gstate 代表当前设备在系统中到哪一阶段,该变量状态与usbh_core.c 文件中的USBH_Process 函数紧密结合.具体阶段如下图所示.
12.2 HCD_HandleTypeDef
管理硬件的结构体,主要关注其中的hc[16] 成员变量.
hc 内每个成员变量代表一个管道,每个管道内包括但不限于端点地址、端点方向、管道号、端点类型、发送缓冲区地址、发送数据长度、urb_state 等.
其中这个变量里面最需要关注的是urb_state ,因为很多问题都需要查看这个变量值才能找到对应问题.
12.3、USBH_ClassTypeDef
上节说的如果需要添加复合类,需要在类API层进行大量工作.其中抽象类API进行管理的结构体就是这个结构体.结构如下所示.
这个在理论方面没有什么好说的,具体到后续在细说.
|