我把我的截图和我的描述符发给大家. // 设备描述符号 const USB_DEVICE_DESCRIPTOR DeviceDescr = { sizeof(USB_DEVICE_DESCRIPTOR), USB_DEVICE_DESCRIPTOR_TYPE, 0x00010000, 0, //USB分配的类代码 (已更改用于HID设备) 0, //USB分配的子类代码 0, //USB分配的协议代码 EP0_PACKET_SIZE, 0x00040071, //idVendor 0x00060066, //idProduct 0x00010000, //bcdDevce 0,//1, //iManufactor 0,//2, //iProduct 0,//3, //iSerialNumber 1 //bNumConfigurations };
// 配置描述符 const USB_CONFIGURATION_DESCRIPTOR ConfigDescr = { sizeof(USB_CONFIGURATION_DESCRIPTOR), //09 USB_CONFIGURATION_DESCRIPTOR_TYPE, //02 CONFIG_DESCRIPTOR_LENGTH, //29 1, //0x0001 1, //1 0, //0 0xa0, //总线供电,支持远程唤醒 //0xa0 0xc8 //400mA //0xc8 };
// 接口描述符 const USB_INTERFACE_DESCRIPTOR InterfaceDescr = { sizeof(USB_INTERFACE_DESCRIPTOR), //09 USB_INTERFACE_DESCRIPTOR_TYPE, //04 0, //00 0, //00 NUM_ENDPOINTS, //02 0x03,//原来是USB_CLASS_CODE_TEST_CLASS_DEVICE, 0x01,//原来是USB_SUBCLASS_CODE_TEST_CLASS_D12, 0x01,//原来是USB_PROTOCOL_CODE_TEST_CLASS_D12, 0 }; //HID描述符 const USB_HID_DESCRIPTOR HidDescr= { sizeof(USB_HID_DESCRIPTOR), //09 0x21, //HID描述符 0x00010010, //HID版本号 0x21, //国家代码 0x01, //随后的描述符数,这里只有一个报告描述符 0x22, //随后的描述符类型,这里为报表描述符 (unsigned long int)sizeof(ReportDescr) //报表描述符的长度 }; // 端点1输入描述符 const USB_ENDPOINT_DESCRIPTOR EP1_TXDescr = { sizeof(USB_ENDPOINT_DESCRIPTOR), //07 USB_ENDPOINT_DESCRIPTOR_TYPE, //05 0x81, //输入端点 USB_ENDPOINT_TYPE_INTERRUPT, EP1_PACKET_SIZE, //16字节 0x0a //中断扫描时间:10ms };
// 端点1输出描述符 const USB_ENDPOINT_DESCRIPTOR EP1_RXDescr = { sizeof(USB_ENDPOINT_DESCRIPTOR), USB_ENDPOINT_DESCRIPTOR_TYPE, 0x01, //输出端点 USB_ENDPOINT_TYPE_INTERRUPT, EP1_PACKET_SIZE, 0x0a //中断扫描时间:10ms }; 我用的是凌阳的16位单片机,是小端格式的.所以和51有点不一样. |