const uint8_t CustomHID_ReportDescriptor[CUSTOMHID_SIZ_REPORT_DESC] =
{
0x06, 0xFF, 0x00, /*全局项目 2字节 用途 USAGE_PAGE (Vendor Page: 0xFF00) */
0x09, 0x01, /*局部项目 1字节 用途 USAGE 数据0x01:通用桌面控制 (Demo Kit) */
0xa1, 0x01, /*主项目 1字节 集合开始 COLLECTION 数据0x01:用于包含多种报告、多种应用 */
0x85, 0x01, /*全局项目 1字节 报告ID REPORT_ID (2) */
0x15, 0x00, /*全局项目 1字节 逻辑最小 LOGICAL_MINIMUM (0) */
0x25, 0x01, /*全局项目 2字节 逻辑最大 LOGICAL_MAXIMUM (255) */
0x75, 0x08, /*全局项目 1字节 报告大小 REPORT_SIZE (8) */
0x95, 0x01, /*全局项目 1字节 报告数量 REPORT_COUNT (1) */
0x09, 0x01, /*局部项目 1字节 用途 USAGE 数据0x01: */
0x81, 0x82, /*主项目 1字节 输入 INPUT (Data,Var,Abs,Vol) */
0xc0 /*主项目 0字节 集合结束END_COLLECTION() */
}; /* CustomHID_ReportDescriptor */
这么配置 通过主函数发送数据到USB,计算机USB调试助手能收到数据。将0x95, 0x01 (报告数量 REPORT_COUNT )中1改为2或者其它值后,计算机USB调试助手就收不到任何数据了;是需要在什么地方设置吗?还是哪儿的问题,请指教
stm32f105的usb3.2.0库,
const uint8_t CustomHID_ConfigDescriptor[CUSTOMHID_SIZ_CONFIG_DESC] =
{
0x09, /* bLength: Configuation Descriptor size */
USB_CONFIGURATION_DESCRIPTOR_TYPE, /* bDescriptorType: Configuration */
CUSTOMHID_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: Bus powered */
0x32, /* MaxPower 100 mA: this current is used for detecting Vbus */
/************** Descriptor of Custom HID interface ****************/
/* 09 */
0x09, /* bLength: Interface Descriptor size */
USB_INTERFACE_DESCRIPTOR_TYPE,/* bDescriptorType: Interface descriptor type */
0x00, /* bInterfaceNumber: Number of Interface */
0x00, /* bAlternateSetting: Alternate setting */
0x02, /* bNumEndpoints */
0x03, /* bInterfaceClass: HID */
0x00, /* bInterfaceSubClass : 1=BOOT, 0=no boot */
0x00, /* nInterfaceProtocol : 0=none, 1=keyboard, 2=mouse */
0, /* iInterface: Index of string descriptor */
/******************** Descriptor of Custom HID HID ********************/
/* 18 */
0x09, /* bLength: HID Descriptor size */
HID_DESCRIPTOR_TYPE, /* bDescriptorType: HID */
0x10, /* bcdHID: HID Class Spec release number */
0x01,
0x00, /* bCountryCode: Hardware target country */
0x01, /* bNumDescriptors: Number of HID class descriptors to follow */
0x22, /* bDescriptorType */
CUSTOMHID_SIZ_REPORT_DESC,/* wItemLength: Total length of Report descriptor */
0x00,
/******************** Descriptor of Custom HID endpoints ******************/
/* 27 */
0x07, /* bLength: Endpoint Descriptor size */
USB_ENDPOINT_DESCRIPTOR_TYPE, /* bDescriptorType: */
0x81, /* bEndpointAddress: Endpoint Address (IN) */
0x03, /* bmAttributes: Interrupt endpoint */
0x20, /* wMaxPacketSize: 20 Bytes max */
0x00,
0x20, /* bInterval: Polling Interval (32 ms) */
/* 34 */
0x07, /* bLength: Endpoint Descriptor size */
USB_ENDPOINT_DESCRIPTOR_TYPE, /* bDescriptorType: */
/* Endpoint descriptor type */
0x01, /* bEndpointAddress: */
/* Endpoint Address (OUT) */
0x03, /* bmAttributes: Interrupt endpoint */
0x20, /* wMaxPacketSize: 20 Bytes max */
0x00,
0x20, /* bInterval: Polling Interval (20 ms) */
/* 41 */
}
|