打印

谁能讲解下usb中报告描述符的相关情况啊 ,头都大了

[复制链接]
1885|5
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
zbchengfei|  楼主 | 2015-4-2 09:58 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
如题
沙发
香水城| | 2015-4-9 16:16 | 只看该作者
报告描述符, report descriptor,是设备向主机描述它要上传的数据(这里可以称作“报告”)的表达意义。

比如说鼠标这个HID设备向主机回复的4字节数据中,第一个字节中的前3位表示三个鼠标按键的状态;后5个位是填充位
    0x05,          /*Usage Page(Buttons)*/
    0x09,
    0x19,          /*Usage Minimum(1)*/
    0x01,
    0x29,          /*Usage Maximum(3)*/
    0x03,
    /* 16 */
    0x15,          /*Logical Minimum(0)*/
    0x00,
    0x25,          /*Logical Maximum(1)*/
    0x01,
    0x95,          /*Report Count(3)*/
    0x03,
    0x75,          /*Report Size(1)*/
    0x01,
    /* 24 */
    0x81,          /*Input(Variable)*/
    0x02,
    0x95,          /*Report Count(1)*/
    0x01,
    0x75,          /*Report Size(5)*/
    0x05,
    0x81,          /*Input(Constant,Array)*/


后面3个字节,分别表示此时鼠标在X、Y轴以及滚轮轴上的位置信息,取值范围是[-127,127]
    0x05,          /*Usage Page(Generic Desktop)*/
    0x01,
    0x09,          /*Usage(X axis)*/
    0x30,
    0x09,          /*Usage(Y axis)*/
    0x31,
    0x09,          /*Usage(Wheel)*/
    0x38,
    /* 40 */
    0x15,          /*Logical Minimum(-127)*/
    0x81,
    0x25,          /*Logical Maximum(127)*/
    0x7F,
    0x75,          /*Report Size(8)*/
    0x08,
    0x95,          /*Report Count(3)*/


使用特权

评论回复
板凳
zbchengfei|  楼主 | 2015-4-10 17:19 | 只看该作者
香水城 发表于 2015-4-9 16:16
报告描述符, report descriptor,是设备向主机描述它要上传的数据(这里可以称作“报告”)的表达意义。

...

你是个好人 我研究下

使用特权

评论回复
地板
搞IT的| | 2015-4-12 11:42 | 只看该作者
不是搞这个的,进来看看。。

使用特权

评论回复
5
wangzhihai1986| | 2015-4-12 21:03 | 只看该作者
这个报告描述符很复杂的,自己百度这个软件:HID Descriptor Tool,USB官方开发的生成报告描述符的。

使用特权

评论回复
6
myxiaonia| | 2015-4-13 08:02 | 只看该作者
香水城 发表于 2015-4-9 16:16
报告描述符, report descriptor,是设备向主机描述它要上传的数据(这里可以称作“报告”)的表达意义。

...

香水城好久没回复技术问题了呵呵

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

5

主题

28

帖子

0

粉丝