📄 chap9.h
字号:
#ifndef CHAP9_H
#define CHAP9_H
/*-------------------------------------------------------------------------
* Standard Chapter 9 definition
*-------------------------------------------------------------------------
*/
#define GET_STATUS 0x00
#define CLEAR_FEATURE 0x01
#define SET_FEATURE 0x03
#define SET_ADDRESS 0x05
#define GET_DESCRIPTOR 0x06
#define SET_DESCRIPTOR 0x07
#define GET_CONFIG 0x08
#define SET_CONFIG 0x09
#define GET_INTERFACE 0x0a
#define SET_INTERFACE 0x0b
#define SYNCH_FRAME 0x0c
#define DEVICE 0x01
#define CONFIGURATION 0x02
#define STRING 0x03
#define INTERFACE 0x04
#define ENDPOINT 0x05
#define STDCLASS 0x00
/****************************************************************************/
/* types */
/****************************************************************************/
/*
* Standard USB Descriptor Definitions
* Sec 9.6, page 261
*/
typedef struct std_dev_desc { /* Sec9.6.1, Table 9-8, p262 */
unsigned char bLength;
unsigned char bDescriptorType;
unsigned short bcdUSB;
unsigned char bDeviceClass;
unsigned char bDeviceSubClass;
unsigned char bDeviceProtocol;
unsigned char bMaxPacketSize0;
unsigned short idVendor;
unsigned short idProduct;
unsigned short bcdDevice;
unsigned char iManufacturer;
unsigned char iProduct;
unsigned char iSerialNumber;
unsigned char bNumConfigurations;
}
std_dev_descriptor;
typedef struct dev_qual_desc { /* Sec 9.6.2, Table 9-9, p264 */
/* This is for Hi-speed */
unsigned char bLength;
unsigned char bDescriptorType;
unsigned short bcdUSB;
unsigned char bDeviceClass;
unsigned char bDeviceSubClass;
unsigned char bDeviceProtocol;
unsigned char bMaxPacketSize0;
unsigned char bNumConfigurations;
}
dev_qualifier_descriptor;
typedef struct std_conf_desc { /* Sec9.6.3, Table 9-10, p265 */
unsigned char bLength;
unsigned char bDescriptorType;
unsigned short wTotalLength;
unsigned char bNumInterfaces;
unsigned char bConfigurationValue;
unsigned char iConfiguration;
unsigned char bmAttributes;
unsigned char bMaxPower;
}
std_conf_descriptor;
typedef std_conf_descriptor other_speed_conf_descriptor; /* Sec9.6.4, Table 9-11, p267 */
typedef struct std_if_desc { /* Sec9.6.5, Table 9-12, p268 */
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;
}
std_interface_descriptor;
typedef struct std_ep_desc { /* Sec9.6.6, Table 9-13, p269 */
unsigned char bLength;
unsigned char bDescriptorType;
unsigned char bEndpointAddress;
unsigned char bmAttributes;
unsigned short wMaxPacketSize;
unsigned char bInterval;
}
std_endpoint_descriptor;
typedef struct std_str_desc { /* Sec9.6.7, Table 9-15, p273 */
unsigned char bLength;
unsigned char bDescriptorType;
unsigned short bString; // bString[ (254) >> 1 ];
}
std_string_descriptor;
#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -