📄 usb_desc.c
字号:
/******************** (C) COPYRIGHT 2003 STMicroelectronics ********************
* File Name : usb_desc.c
* Author : MCD Application Team
* Date First Issued : 27/10/2003
* Description : Descriptors for USB Mouse
*
********************************************************************************/
#include "USB_lib.h"
#include "USB_desc.h"
const BYTE MOUSE_ReportDescriptor[MOUSE_SIZ_REPORT_DESC] = {
0x05, /* Usage Page(Generic Desktop) */
0x01,
0x09, /* Usage(Mouse) */
0x02,
0xA1, /* Collection(Logical) */
0x01,
0x09, /* Usage(Pointer) */
0x01,
/* 8 */
0xA1, /* Collection(Linked) */
0x00,
0x05, /* Usage Page(Buttons) */
0x09,
0x19, /* Usage Minimum(1) */
0x01,
0x29, /* Usage Maximum(3) */
0x03,
/* 16 */
0x15, /* Logical Minimum(0) */
0x00,
0x25, /* Logical Maximum(1) */
0x01,
0x95, /* Report Count(3) */
0x03,
0x75, /* Report Size(1) */
0x01,
/* 24 */
0x81, /* Input(Variable) */
0x02,
0x95, /* Report Count(1) */
0x01,
0x75, /* Report Size(5) */
0x05,
0x81, /* Input(Constant,Array) */
0x01,
/* 32 */
0x05, /* Usage Page(Generic Desktop) */
0x01,
0x09, /* Usage(X axis) */
0x30,
0x09, /* Usage(Y axis) */
0x31,
0x09, /* Usage(Wheel) */
0x38,
/* 40 */
0x15, /* Logical Minimum(-127) */
0x81,
0x25, /* Logical Maximum(127) */
0x7F,
0x75, /* Report Size(8) */
0x08,
0x95, /* Report Count(3) */
0x03,
/* 48 */
0x81, /* Input(Variable, Relative) */
0x06,
0xC0, /* End Collection */
0x09,
0x3c,
0x05,
0xff,
0x09,
/* 56 */
0x01,
0x15,
0x00,
0x25,
0x01,
0x75,
0x01,
0x95,
/* 64 */
0x02,
0xb1,
0x22,
0x75,
0x06,
0x95,
0x01,
0xb1,
/* 72 */
0x01,
0xc0
}; /* MOUSE_ReportDescriptor */
const BYTE MOUSE_DeviceDescriptor[MOUSE_SIZ_DEVICE_DESC] = { /* ST mouse */
0x12, /* bLength */
0x01, /* bDescriptorType */
0x00, /* bcdUSB */
0x01,
0x00, /* bDeviceClass */
0x00, /* bDeviceSubClass */
0x00, /* bDeviceProtocol */
0x08, /* bMaxPacketSize0 */
0x83, /* idVendor */
0x04,
0x03, /* idProduct */
0xFF,
0x04, /* bcdDevice rel. 1.04 */
0x01,
4, /* Index of string descriptor */
/* describing manufacturer */
42, /* Index of string descriptor */
/* describing product */
0, /*98,*/ /* Index of string descriptor */
/* describing the device's */
/* serial number */
0x01 /* bNumConfigurations */
}; /* MOUSE_DeviceDescriptor */
const BYTE MOUSE_ConfigDescriptor[MOUSE_SIZ_CONFIG_DESC] = {
0x09, /* bLength: Configuation Descriptor size */
0x02, /* bDescriptorType: Configuration */
MOUSE_SIZ_CONFIG_DESC,
/* wTotalLength: Bytes returned */
0x00,
0x01, /* bNumInterfaces: 1 interface */
0x01, /* bConfigurationValue: */
/* Configuration value */
0x00, /* iConfiguration: */
/* Index of string descriptor */
/* describing the configuration */
0xC0, /* bmAttributes: */
/* self powered */
0x32, /* MaxPower 00 mA */
/******************** Descriptor of mouse interface ********************/
/* 09 */
0x09, /* bLength: Interface Descriptor size */
0x04, /* bDescriptorType: */
/* Interface descriptor type */
0x00, /* bInterfaceNumber: Number of Interface */
0x00, /* bAlternateSetting: Alternate setting */
0x01, /* bNumEndpoints*/
0x03, /* bInterfaceClass: HID */
0x01, /* bInterfaceSubClass : 1=BOOT, 0=no boot*/
0x02, /* nInterfaceProtocol : 0=none, 1=keyboard, 2=mouse*/
0, /* iInterface: */
/* Index of string descriptor */
/******************** Descriptor of Mouse HID ********************/
/* 18 */
0x09, /* bLength: HID Descriptor size */
0x21, /* bDescriptorType: HID */
0x00, /* bcdHID: HID Class Spec release number */
0x01,
0x00, /* bCountryCode: Hardware target country */
0x01, /* bNumDescriptors: */
/* Number of HID class descriptors */
/* to follow */
0x22, /* bDescriptorType */
MOUSE_SIZ_REPORT_DESC,
/* wItemLength: Total length of Report descriptor */
0x00,
/******************** Descriptor of mouse endpoint ********************/
/* 27 */
0x07, /* bLength: Endpoint Descriptor size */
0x05, /* bDescriptorType: */
/* Endpoint descriptor type */
0x81, /* bEndpointAddress: */
/* Endpoint Address (IN) */
0x03, /* bmAttributes: Interrupt endpoint */
0x04, /* wMaxPacketSize: 4 Byte max */
0x00,
0x20, /* bInterval: Polling Interval (32 ms) */
/* 34 */
}; /* MOUSE_ConfigDescriptor */
const BYTE MOUSE_StringDescriptor[MOUSE_SIZ_STRING_DESC] = {
0x04,
0x03,
0x09,
0x04, /* LangID = 0x0409: U.S. English */
/* 4 */
38, /* Size of manufaturer string */
0x03, /* bDescriptorType = String descriptor */
/* Manufacturer: "STMicroelectronics" */
'S',0, 'T',0, 'M',0, 'i',0, 'c',0, 'r',0, 'o',0, 'e',0,
'l',0, 'e',0, 'c',0, 't',0, 'r',0, 'o',0, 'n',0, 'i',0,
'c',0, 's',0,
/* 42 */
58,
0x03,
/* Product name: "ARM7 : USB Mouse Tutorial" */
'A',0, 'R',0, 'M',0, '7',0, ' ',0, ' ',0, ' ',0, ':',0,
' ',0, 'U',0, 'S',0, 'B',0, ' ',0, 'M',0, 'o',0, 'u',0,
's',0, 'e',0, ' ',0, 'T',0, 'u',0, 't',0, 'o',0, 'r',0,
'i',0, 'a',0, 'l',0,' ',0,
/* 100 */
28,
0x03,
/* Serial number: "20072000-0001" */
'2',0, '0',0, '0',0, '7',0, '2',0, '0',0, '0',0, '0',0,
'-',0, '0',0, '0',0, '0',0, '1',0,
/* 128 */
26,
0x03,
/* Interface 0: "ST USB Mouse" */
'S',0, 'T',0, ' ',0, 'U',0, 'S',0, 'B',0, ' ',0, 'M',0,
'o',0, 'u',0, 's',0, 'e',0,
/* 154 */
}; /* MOUSE_StringDescriptor */
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -