📄 descriptor.h
字号:
/*****************************Copyright(c)****************************************************************
** Guangzhou ZHIYUAN electronics Co.,LTD.
**
** http://www.embedtools.com
**
**------File Info-----------------------------------------------------------------------------------------
** File Name: Chap_9.h
** Latest modified Date: 2007-10-20
** Latest Version: V1.0
** Description: USB规范第9章定义的一些描述符
**
**--------------------------------------------------------------------------------------------------------
** Created By: Longsui Wu
** Created date: 2007-10-20
** Version: V1.0
** Descriptions: 初始版本
**
**--------------------------------------------------------------------------------------------------------
** Modified by:
** Modified date:
** Version:
** Description:
**
**
**--------------------------------------------------------------------------------------------------------
** Modified by:
** Modified date:
** Version:
** Description:
**
*********************************************************************************************************/
#ifndef __DESCRIPTOR_H
#define __DESCRIPTOR_H
#include "USBHostConfig.h"
/*********************************************************************************************************
USB Descriptor structure and their member value
*********************************************************************************************************/
/*********************************************************************************************************
USB device descriptor structure
*********************************************************************************************************/
#if 1
#ifdef __cplusplus
extern "C" {
#endif
#ifndef __USB_DEVICE_DESCRIPTOR_TYPE_
#define __USB_DEVICE_DESCRIPTOR_TYPE_
typedef struct __tagUSB_DEVICE_DESCRIPTOR {
USB_INT8U bLength;
USB_INT8U bDescriptorType;
USB_INT8U bcdUSB0;
USB_INT8U bcdUSB1;
USB_INT8U bDeviceClass;
USB_INT8U bDeviceSubClass;
USB_INT8U bDeviceProtocol;
USB_INT8U bMaxPacketSize0;
USB_INT8U idVendor0;
USB_INT8U idVendor1;
USB_INT8U idProduct0;
USB_INT8U idProduct1;
USB_INT8U bcdDevice0;
USB_INT8U bcdDevice1;
USB_INT8U iManufacturer;
USB_INT8U iProduct;
USB_INT8U iSerialNumber;
USB_INT8U bNumConfigurations;
} USB_DEVICE_DESCRIPTOR, *PUSB_DEVICE_DESCRIPTOR;
#endif
/*********************************************************************************************************
USB configuration descriptor structure
*********************************************************************************************************/
#ifndef __USB_CONFIGURATION_DESCRIPTOR_TYPE_
#define __USB_CONFIGURATION_DESCRIPTOR_TYPE_
typedef struct __tagUSB_CONFIGURATION_DESCRIPTOR {
USB_INT8U bLength;
USB_INT8U bDescriptorType;
USB_INT8U wTotalLength0;
USB_INT8U wTotalLength1;
USB_INT8U bNumInterfaces;
USB_INT8U bConfigurationValue;
USB_INT8U iConfiguration;
USB_INT8U bmAttributes;
USB_INT8U MaxPower;
} USB_CONFIGURATION_DESCRIPTOR, *PUSB_CONFIGURATION_DESCRIPTOR;
#endif
/*********************************************************************************************************
USB interface descriptor structure
*********************************************************************************************************/
#ifndef __USB_INTERFACE_DESCRIPTOR_TYPE_
#define __USB_INTERFACE_DESCRIPTOR_TYPE_
typedef struct __tagUSB_INTERFACE_DESCRIPTOR {
USB_INT8U bLength;
USB_INT8U bDescriptorType;
USB_INT8U bInterfaceNumber;
USB_INT8U bAlternateSetting;
USB_INT8U bNumEndpoints;
USB_INT8U bInterfaceClass;
USB_INT8U bInterfaceSubClass;
USB_INT8U bInterfaceProtocol;
USB_INT8U iInterface;
} USB_INTERFACE_DESCRIPTOR, *PUSB_INTERFACE_DESCRIPTOR;
#endif
/*********************************************************************************************************
USB endpoint descriptor structure
*********************************************************************************************************/
#ifndef __USB_ENDPOINT_DESCRIPTOR_TYPE_
#define __USB_ENDPOINT_DESCRIPTOR_TYPE_
typedef struct __tagUSB_ENDPOINT_DESCRIPTOR {
USB_INT8U bLength;
USB_INT8U bDescriptorType;
USB_INT8U bEndpointAddress;
USB_INT8U bmAttributes;
USB_INT8U wMaxPacketSize0;
USB_INT8U wMaxPacketSize1;
USB_INT8U bInterval;
} USB_ENDPOINT_DESCRIPTOR, *PUSB_ENDPOINT_DESCRIPTOR;
#endif
/*********************************************************************************************************
USB string descriptor structure
*********************************************************************************************************/
#ifndef __USB_STRING_DESCRIPTOR_TYPE_
#define __USB_STRING_DESCRIPTOR_TYPE_
typedef struct __tagUSB_STRING_DESCRIPTOR {
USB_INT8U bLength;
USB_INT8U bDescriptorType;
USB_INT8U bString[1];
} USB_STRING_DESCRIPTOR, *PUSB_STRING_DESCRIPTOR;
#endif
/*********************************************************************************************************
USB OTG descriptor structure
*********************************************************************************************************/
#ifndef __USB_OTG_DESCRIPTOR_TYPE_
#define __USB_OTG_DESCRIPTOR_TYPE_
typedef struct __tagUSB_OTG_DESCRIPTOR {
USB_INT8U bLength;
USB_INT8U bDescriptorType;
USB_INT8U bmAttributes;
} USB_OTG_DESCRIPTOR, *PUSB_OTG_DESCRIPTOR;
#endif
#ifdef __cplusplus
}
#endif
#endif
#define __USB_MAXIMUM_STRING_LENGTH 255 /* USB max string length */
/*********************************************************************************************************
USB power descriptor structure
*********************************************************************************************************/
typedef __packed struct __tagUSB_POWER_DESCRIPTOR {
USB_INT8U bLength;
USB_INT8U bDescriptorType;
USB_INT8U bCapabilitiesFlags;
USB_INT16U EventNotification;
USB_INT16U D1LatencyTime;
USB_INT16U D2LatencyTime;
USB_INT16U D3LatencyTime;
USB_INT8U PowerUnit;
USB_INT16U D0PowerConsumption;
USB_INT16U D1PowerConsumption;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -