USB模式下BF533设置
0赞
发表于 8/4/2012 1:03:24 AM
阅读(3155)
/*定义标准的描述符类型,即bDescriptorType字段的值*/
enum {
DEVICE_DESCRIPTOR = 0x1,
CONFIGURATION_DESCRIPTOR,
STRING_DESCRIPTOR,
INTERFACE_DESCRIPTOR,
ENDPOINT_DESCRIPTOR,
POWER_DESCRIPTOR,
OTG_DESCRIPTOR = 0x9
};
/*定义标准的usb请求命令,即usb分配的各种请求的编号,即bRequest字段的值*/
enum {
GET_STATUS = 0x0,
CLEAR_FEATURE,
SET_FEATURE = 0x3,
SET_ADDRESS = 0x5,
GET_DESCRIPTOR,
SET_DESCRIPTOR,
GET_CONFIGURATION,
SET_CONFIGURATION,
GET_INTERFACE,
SET_INTERFACE,
SYNCH_FRAME
};
/*定义端点类型*/
enum {
ENDPOINT_TYPE_CONTROL,
ENDPOINT_TYPE_ISOCHRONOUS,
ENDPOINT_TYPE_BULK,
ENDPOINT_TYPE_INTERRUPT
};
#define NUM_INTERFACE 0x01
#define NUM_ENDPOINT 0x02
#pragma pack(1)
struct dev_descriptor {
unsigned char bLength;
unsigned char bDescriptorType;
unsigned short bcdUSB;
unsigned char bDeviceClass;
unsigned char bDeviceSubClass;
unsigned char bDeviceProtocol;
unsigned char bMaxPacketize0;
unsigned short idVendor;
unsigned short idProduct;
unsigned short bcdDevice;
unsigned char iManufacturer;
unsigned char iProduct;
unsigned char iSerialNumber;
unsigned char bNumConfigurations;
};
struct dev_qualifier_descriptor {
unsigned char bLength;
unsigned char bDescriptorType;
unsigned short bcdUSB;
unsigned char bDeviceClass;
unsigned char bDeviceSubClass;
unsigned char bDeviceProtocol;
unsigned char bMaxPacketSize0;
unsigned char bNumConfigurations;
unsigned char bReserved;
};
struct string_descriptor {
unsigned char bLength;
unsigned char bDescriptorType;
unsigned char SomeDescriptor[36];
};
struct endpoint_descriptor {
unsigned char bLength;
unsigned char bDescriptorType;
unsigned char bEndpointAddress;
unsigned char bmAttributes;
unsigned short wMaxPacketSize;
unsigned char bInterval;
};
struct interface_descriptor {
unsigned char bLength;
unsigned char bDescriptorType;
unsigned char bInterfaceNumber;
unsigned char bAlternateSetting;
unsigned char bNumEndpoints;
unsigned char bInterfaceClass;
unsigned char bInterfaceSubClass;
unsigned char bInterfaceProtocol;
unsigned char iInterface;
struct endpoint_descriptor endpoint[NUM_ENDPOINT];
};
