USB模式下BF533设置
0赞
发表于 2012/8/4 1:03:24
阅读(1909)
/*定义标准的描述符类型,即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]; };