首页 文章

Windows USB HID报告长度

提问于
浏览
0

我正在使用STMicro微控制器开发USB HID设备 . 我开始使用STMicro的HID示例,该示例工作正常 . 我在Windows 7 64位上使用C作为PC端 . 我有一个适用于我的设备的应用程序 . 然而,有一点我无法弄清楚 .

示例固件仅允许一次发送和接收2个字节,这由HIDP_CAPS.OutputReportByteLength和InputReportByteLength确定 . 我想一次发送比这更多的数据,但我无法弄清楚如何增加报告长度 . 我成功地更改了 endpoints wMaxPacketSize,VID和PID以及其他一些东西,但我无法弄清楚Windows如何计算输入和输出报告长度 . 我的报告或设备描述中似乎没有任何字段表明这个长度,但我无法想象它可能来自哪里 .

谁能告诉我Windows如何确定HIDP_CAPS.OutputReportByteLength和HIDP_CAPS.InputReportByteLength?

我怎样才能增加这些长度?

1 回答

  • 0

    我想到了 . 我想我会发布在这里以防其他人需要知道 . 我不完全确定我真的理解这一切,所以如果我犯了错误,请有人纠正我 .

    我不得不在固件中更改报告说明 . 我有几个用法 . Windows获取报告描述并确定哪种使用需要最长的长度并使用该长度 . 在我的一个输入报告中,我做了以下更改(输入报告只是固件中的字节数组):

    0x27, 0xFF, 0xFF, 0xFF, 0xFF, //Logical maximum is 4 bytes long, and has a value of 0xFFFFFFFF 0x95, 0x01, //There is one report 0x75, 0x20, //There are 32 bits per report

    我为输出做了类似的事情,但没有报告编号字段(0x95) .

    Windows现在告诉我,我可以发送和接收5个字节,我相信这意味着终点加报告编号时间报告大小 .

相关问题