先上测试手记。
:
:
MyUSB_HID_KEIL
MyUSB_HID_KEIL目录下是STM32 USB可演示版MCU项目源代码;
1、HID模式USB工作模式;
2、用端点0,1,2;
1为输出端点,2为输入端点;数据长度64字节;
对STM32 USB来讲,1是接受数据;2是发送数据;
3、、注意更改报告描述符输入数据长度为64字节;
4....改为HID模式后,原键盘或mouse
_ReportDescriptor切忌不能再用!
这里借用网友的贡献!
const u8 CustomHID_ReportDescriptor[CUSTOMHID_SIZ_REPORT_DESC]
{
//#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
0x15,0x00, // LOGICAL_MINIMUM (0)
0x26,0x00, 0xFF, // LOGICAL_MAXIMUM (255)
0x75,0x08, // REPORT_SIZE (8)
0x95,0x40, // REPORT_COUNT (20)
0x81,0x02, // INPUT (Data,Var,Abs)
//19
// The Output report
0x09,0x04, // USAGE ID - Vendor defined
0x15,0x00, // LOGICAL_MINIMUM (0)
0x26,0x00,0xFF, // LOGICAL_MAXIMUM (255)
0x75,0x08, // REPORT_SIZE (8)
0x95,0x40, // REPORT_COUNT (20)
0x91,0x02, // OUTPUT (Data,Var,Abs)
//32
// The Feature report
/*
0x09, 0x05, // USAGE ID - Vendor defined
0x15,0x00, // LOGICAL_MINIMUM (0)
0x26,0x00,0xFF, // LOGICAL_MAXIMUM (255)
0x75,0x08, // REPORT_SIZE (8)
0x95,0x02, // REPORT_COUNT (2)
0xB1,0x02,
*/
/* 45 */
0xc0 /* END_COLLECTION */
//#endif
}; /* CustomHID_ReportDescriptor */
请注意,这里我也做了一点贡献,将REPORT_COUNT改为64;
否则 就只能上传22个字节,就如网友一直提的那样;
估计,是当初第一个人移植的不很彻底。总之,要谢谢各位网友的贡献。
5\另外切记:开发板上,不鞥插2个USB线,否则,不能捕获数据,这个暂时不懂,还请高手指点.
转载
|