RT,
我使用cube生成的usb custom_HID工程,如果hid描述符中不加下面的信息的话,
STM32可以发送数据,但收不到PC发送的数据。
0x85, 0x01, // REPORT_ID (1)
0x09, 0x01, // USAGE (Vendor Usage 1)
0x91, 0x03, // OUTPUT (Data,Var,Abs,Vol)
加了上面的代码后,使用st的usb hid demonstrator工具选择SET_FEATURE才能接收到PC的数据,而使用SET_REPORT则不能收到数据。
下面贴出完整的HID描述符,请大神指点。
__ALIGN_BEGIN sta
tic uint8_t CUSTOM_HID_ReportDesc_FS[USBD_CUSTOM_HID_REPORT_DESC_SIZE] __ALIGN_END =
{
//#ifdef 0
0x05, 0x8c, /* USAGE_PAGE (ST Page) */
0x09, 0x01, /* USAGE (Demo Kit) */
0xa1, 0x01, /* COLLECTION (Application) */
/* 6 */
// The Input report
0x09,0x03, // USAGE ID - Vendor defined
0x85, 0x07, // REPORT_ID (7)
0x15,0x00, // LOGICAL_MINIMUM (0)
0x26,0x00, 0xFF, // LOGICAL_MAXIMUM (255)
0x75,0x08, // REPORT_SIZE (8)
0x95,0x08, // REPORT_COUNT (20)
0x81,0x02, // INPUT (Data,Var,Abs)
//19
// The Output report
0x09,0x04, // USAGE ID - Vendor defined
0x85, 0x01, // REPORT_ID (7)
0x15,0x00, // LOGICAL_MINIMUM (0)
0x26,0x00,0xFF, // LOGICAL_MAXIMUM (255)
0x75,0x08, // REPORT_SIZE (8)
0x95,0x08, // REPORT_COUNT (20)
0xb1,0x82, // FEATURE (Data,Var,Abs,Vol)
0x85, 0x01, // REPORT_ID (1)
0x09, 0x01, // USAGE (Vendor Usage 1)
0x91, 0x03, // OUTPUT (Data,Var,Abs,Vol)
// 0x91,0x02, // OUTPUT (Data,Var,Abs)
/* USER CODE END 0 */
0xC0 /* END_COLLECTION */
};
数据收发又不在这里,数据格式要按描述符给定的长度、格式、ID往出发。发送的长度一般是包含EPORT_ID 序号的。
一周热门 更多>