📄 usb.h
字号:
// Public Constants
#define URB_LENGTH 32
#define BUFFER_LENGTH 1024
#define SETUP_REQUEST_LENGTH 8
// ******bmRequestType of USB Command**********
// Data Transfer Direction
#define RT_HOST_TO_DEVICE 0x00
#define RT_DEVICE_TO_HOST 0x80 // 10000000B
// Request Type
#define RT_STANDARD_REQ 0x00
#define RT_CLASS_REQ 0x20 // 00100000B
#define RT_VENDOR_REQ 0x60 // 01100000B
// Recipient
#define RT_DEVICE_RECI 0x00
#define RT_INTERFACE_RECI 0x01
#define RT_ENDPOINT_RECI 0x02
#define RT_OTHER_RECI 0x03
// ***********bRequest of USB Command*******************
#define REQ_GET_STATUS 0
#define REQ_CLEAR_FEATURE 1
#define REQ_SET_FEATURE 3
#define REQ_SET_ADDRESS 5
#define REQ_GET_DESCRIPTOR 6
#define REQ_SET_DESCRIPTOR 7
#define REQ_GET_CONFIGURATION 8
#define REQ_SET_CONFIGURATION 9
#define REQ_GET_INTERFACE 10
#define REQ_SET_INTERFACE 11
#define REQ_SYNCH_FRAME 12
// ***************Descriptor Type********************
#define DEVICE_DESCRIPTOR 0x01
#define CONFIGURATION_DESCRIPTOR 0x02
#define INTERFACE_DESCRIPTOR 0x04
#define ENDPOINT_DESCRIPTOR 0x05
#define STRING_DESCRIPTOR 0x03
#define HUB_DESCRIPTOR 0x29
#define HID_DESCRIPTOR 0x21
// ************URB Structure************************
#define URB_TRANSACTION_TOKEN 0 // byte
#define URB_CHAIN_END_FLAG 1 // byte
#define URB_DEV_ADD 2 // byte
#define URB_END_POINT 3 // byte
#define URB_ERROR_CODE 4 // byte
#define URB_STATUS 5 // byte
#define URB_TRANSACTION_FLAGS 6 // word
#define URB_BUFFER_OFF 8 // word
#define URB_BUFFER_SEG 10 // word
#define URB_BUFFER_LENGTH 12 // word
#define URB_ACTUAL_LENGTH 14 // word
#define URB_SETUP_BUFFER_OFF 16 // word
#define URB_SETUP_BUFFER_SEG 18 // word
#define URB_START_FRAME 20 // word
#define URB_NR_OF_PACKETS 22 // word
#define URB_INT_INTERVAL 24 // byte
#define URB_ERROR_COUNT 25 // byte
#define URB_TIMEOUT 26 // word
#define URB_NEXT_URB_OFF 28 // word
#define URB_NEXT_URB_SEG 30 // word
// ***********Setup_Request structure***************
#define SR_REQUEST_TYPE 0 // byte
#define SR_REQUEST 1 // byte
#define SR_VALUE 2 // word
#define SR_INDEX 4 // word
#define SR_LENGTH 6 // word
// *********Device Descriptor Structure***************
#define DD_LENGTH 0 // BYTE
#define DD_DESCRIPTOR_TYPE 1 // BYTE
#define DD_USB_VERSION 2 // WORD
#define DD_DEVICE_CLASS 4 // BYTE
#define DD_DEVICE_SUB_CLASS 5 // BYTE
#define DD_DEVICE_PROTOCOL 6 // BYTE
#define DD_MAX_PACKET_SIZE 7 // BYTE
#define DD_VENDOR_ID 8 // WORD
#define DD_PRODUCT_ID 10 // WORD
#define DD_DEVICE_BCD 12 // WORD
#define DD_MANUFACTURER_INDEX 14 // BYTE
#define DD_PRODUCT_INDEX 15 // BYTE
#define DD_SERIAL_NUMBER 16 // BYTE
#define DD_NUM_CONFIGURATION 17 // BYTE
// **********Configuration Descriptor Structure*********
#define CD_LENGTH 0 // BYTE
#define CD_DESCRIPTOR_TYPE 1 // BYTE
#define CD_TOTAL_LENGTH 2 // WORD
#define CD_NUM_INTERFACE 4 // BYTE
#define CD_CONFIGURATION_VALUE 5 // BYTE
#define CD_CONFIGURATION 6 // BYTE
#define CD_ATTRIBUTES 7 // BYTE
#define CD_MAX_POWER 8 // BYTE
// *********Interface Descriptor Structure*************
#define ID_LENGTH 0 // BYTE
#define ID_DESCRIPTOR_TYPE 1 // BYTE
#define ID_INTERFACE_NUM 2 // BYTE
#define ID_INTERFACE_SETTING 3 // BYTE
#define ID_NUM_ENDPOINTS 4 // BYTE
#define ID_INTERFACE_CLASS 5 // BYTE
#define ID_INTERFACE_SUB_CLASS 6 // BYTE
#define ID_INTERFACE_PROTOCOL 7 // BYTE
#define ID_INTERFACE 8 // BYTE
// *********Endpoint Descriptor Structure****************
#define ED_LENGTH 0 // BYTE
#define ED_DESCRIPTOR_TYPE 1 // BYTE
#define ED_ENDPOINT_ADDRESS 2 // BYTE
#define ED_ATTRIBUTES 3 // BYTE
#define ED_MAX_PACKET_SIZE 4 // WORD
#define ED_INTERVAL 6 // BYTE
// *************String Descriptor Structure************
#define SD_LENGTH 0 // BYTE
#define SD_DESCRIPTOR_TYPE 1 // BYTE
#define SD_STRING 2 // BYTE[]
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -