⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 usbdesc.c

📁 NXP网站上的基于LPC2141的直流无刷电机控制源代码及文档
💻 C
字号:

#include "type.h"

#include "usb.h"
#include "hid.h"
#include "usbcfg.h"
#include "usbdesc.h"


const BYTE HID_ReportDescriptor[] =            // HID Report Descriptor
{
    HID_UsagePageVendor(0x00),                             // 0x06,x,0xFF
    HID_Usage(0x01),                                       // 0x09,x
    HID_Collection(HID_Application),                       // 0xA1,01

// ** Input report
    HID_Usage(3),                                          // 0x09,x
    HID_LogicalMin(0),                                     // 0x15,x
    HID_LogicalMax(255),                                   // 0x25,x
    HID_ReportCount(3),                                    // 0x95,x
    HID_ReportSize(8),                                     // 0x75,x
    HID_Input(HID_Data | HID_Variable | HID_Absolute),     // 0x81,x

// ** Output report
    HID_Usage(4),                                          // 0x09,x
    HID_LogicalMin(0),                                     // 0x15,x
    HID_LogicalMax(255),                                   // 0x25,x
    HID_ReportCount(1),                                    // 0x95,x
    HID_ReportSize(8),                                     // 0x75,x
    HID_Output(HID_Data | HID_Variable | HID_Absolute),    // 0x91,x

    HID_EndCollection,                                     // 0xC0
};

const WORD HID_ReportDescSize = sizeof(HID_ReportDescriptor);


const BYTE USB_DeviceDescriptor[] =        // USB Standard Device Descriptor
{
    USB_DEVICE_DESC_SIZE,                  // bLength :        18 bytes
    USB_DEVICE_DESCRIPTOR_TYPE,            // bDescriptorType: 1
    WBVAL(0x0110),                         // bcdUSB:          1.1
    0x00,                                  // bDeviceClass
    0x00,                                  // bDeviceSubClass
    0x00,                                  // bDeviceProtocol
    USB_MAX_PACKET0,                       // bMaxPacketSize0: 8
//    WBVAL(0x04CC),                         // idVendor NXP:    0x04CC
    WBVAL(0xC251),                         // idVendor KEIL
    WBVAL(0x1301),                         // idProduct
    WBVAL(0x0099),                         // bcdDevice:       0.99
    0x04,                                  // iManufacturer
    0x20,                                  // iProduct
    0x42,                                  // iSerialNumber
    0x01                                   // bNumConfigurations
};

const BYTE USB_ConfigDescriptor[] =        // USB Configuration Descriptor
{
    USB_CONFIGURATION_DESC_SIZE,           // bLength:         9 bytes
    USB_CONFIGURATION_DESCRIPTOR_TYPE,     // bDescriptorType: 2
    WBVAL(                                 // wTotalLength
      USB_CONFIGURATION_DESC_SIZE +        // 9 +
      USB_INTERFACE_DESC_SIZE     +        // 9 +
      HID_DESC_SIZE               +        // 9 +
      USB_ENDPOINT_DESC_SIZE               // 7 = 34 (0x22)
    ),
    0x01,                                  // bNumInterfaces
    0x01,                                  // bConfigurationValue
    0x00,                                  // iConfigurationString
    USB_CONFIG_BUS_POWERED,                // bmAttributes
    USB_CONFIG_POWER_MA(100),              // bMaxPower

                                           // Interface Descriptor
    USB_INTERFACE_DESC_SIZE,               // bLength:         9 bytes
    USB_INTERFACE_DESCRIPTOR_TYPE,         // bDescriptorType: 4
    0x00,                                  // bInterfaceNumber
    0x00,                                  // bAlternateSetting
    0x01,                                  // bNumEndpoints
    USB_DEVICE_CLASS_HUMAN_INTERFACE,      // bInterfaceClass: 3
    HID_SUBCLASS_NONE,                     // bInterfaceSubClass: 0
    HID_PROTOCOL_NONE,                     // bInterfaceProtocol: 0
    0x5C,                                  // iInterfaceString

                                           // HID Class Descriptor
    HID_DESC_SIZE,                         // bLength:         9 bytes
    HID_HID_DESCRIPTOR_TYPE,               // bDescriptorType: 0x21
    WBVAL(0x0100),                         // bcdHID:          1.00
    0x00,                                  // bCountryCode
    0x01,                                  // bNumDescriptors
    HID_REPORT_DESCRIPTOR_TYPE,            // bDescriptorType: 0x22
    WBVAL(HID_REPORT_DESC_SIZE),           // wDescriptorLength

                                           // Endpoint, HID Interrupt In
    USB_ENDPOINT_DESC_SIZE,                // bLength:          7 bytes
    USB_ENDPOINT_DESCRIPTOR_TYPE,          // bDescriptorType:  5
    USB_ENDPOINT_IN(1),                    // bEndpointAddress: 0x81
    USB_ENDPOINT_TYPE_INTERRUPT,           // btransferType:    interrupt
    WBVAL(0x0004),                         // wMaxPacketSize
    0x20,                                  // bInterval:        32ms

    0                                      // Terminator
};

const BYTE USB_StringDescriptor[] =        // USB String Descriptor (optional)
{
/* Index 0x00: LANGID Codes */
    0x04,                                  // bLength
    USB_STRING_DESCRIPTOR_TYPE,            // bDescriptorType
    WBVAL(0x0409),                         // wLANGID US English
/* Index 0x04: Manufacturer */
    0x1C,                                  // bLength
    USB_STRING_DESCRIPTOR_TYPE,            // bDescriptorType
    'K',0,
    'e',0,
    'i',0,
    'l',0,
    ' ',0,
    'S',0,
    'o',0,
    'f',0,
    't',0,
    'w',0,
    'a',0,
    'r',0,
    'e',0,
/* Index 0x20: Product */
    0x22,                                  // bLength
    USB_STRING_DESCRIPTOR_TYPE,            // bDescriptorType
    'K',0,
    'e',0,
    'i',0,
    'l',0,
    ' ',0,
    'M',0,
    'C',0,
    'B',0,
    '2',0,
    '1',0,
    '4',0,
    '0',0,
    ' ',0,
    'H',0,
    'I',0,
    'D',0,
/* Index 0x42: Serial Number */
    0x1A,                                  // bLength
    USB_STRING_DESCRIPTOR_TYPE,            // bDescriptorType
    'D',0,
    'E',0,
    'M',0,
    'O',0,
    '0',0,
    '0',0,
    '0',0,
    '0',0,
    '0',0,
    '0',0,
    '0',0,
    '0',0,
/* Index 0x5C: Interface 0, Alternate Setting 0 */
    0x08,                                  // bLength
    USB_STRING_DESCRIPTOR_TYPE,            // bDescriptorType
    'H',0,
    'I',0,
    'D',0,                                 // sadfgadsf
};

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -