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

[复制链接]
2146|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 | 显示全部楼层
不是搞这个的,进来看看。。
wangzhihai1986 发表于 2015-4-12 21:03 | 显示全部楼层
这个报告描述符很复杂的,自己百度这个软件:HID Descriptor Tool,USB官方开发的生成报告描述符的。
myxiaonia 发表于 2015-4-13 08:02 | 显示全部楼层
香水城 发表于 2015-4-9 16:16
报告描述符, report descriptor,是设备向主机描述它要上传的数据(这里可以称作“报告”)的表达意义。

...

香水城好久没回复技术问题了呵呵
您需要登录后才可以回帖 登录 | 注册

本版积分规则

5

主题

28

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部