请看多媒体报告描述符,谁来详细解释一下?谢谢

[复制链接]
 楼主| doob 发表于 2007-10-10 11:58 | 显示全部楼层 |阅读模式
&nbsp;&nbsp;&nbsp;&nbsp;0x05&nbsp;&nbsp;&nbsp;&nbsp;0x0c&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;;&nbsp;USAGE_PAGE&nbsp;(Consumer&nbsp;Devices)<br />&nbsp;&nbsp;&nbsp;&nbsp;0x09&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;0x01&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;;&nbsp;USAGE&nbsp;(Consumer&nbsp;Control)<br />&nbsp;&nbsp;&nbsp;&nbsp;0xa1&nbsp;&nbsp;&nbsp;&nbsp;0x01&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;;&nbsp;COLLECTION&nbsp;(Application)<br />&nbsp;&nbsp;&nbsp;&nbsp;0x85&nbsp;&nbsp;&nbsp;&nbsp;0x01&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;0x15&nbsp;&nbsp;&nbsp;&nbsp;0x00&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;LOGICAL_MINIMUM&nbsp;(0)<br />&nbsp;&nbsp;&nbsp;&nbsp;0x25&nbsp;&nbsp;&nbsp;&nbsp;0x01&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;;&nbsp;&nbsp;&nbsp;&nbsp;LOGICAL_MAXIMUM&nbsp;(1)&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;0x09&nbsp;&nbsp;&nbsp;&nbsp;0xe9&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;USAGE&nbsp;(Volume&nbsp;Up)&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;0x09&nbsp;&nbsp;&nbsp;&nbsp;0xea&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;USAGE&nbsp;(Volume&nbsp;Down)&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;0x09&nbsp;&nbsp;&nbsp;&nbsp;0xb5&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;USAGE&nbsp;(Scan&nbsp;Next&nbsp;Track)&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;0x09&nbsp;&nbsp;&nbsp;&nbsp;0xb6&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;USAGE&nbsp;(Scan&nbsp;Previous&nbsp;Track)&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;0x09&nbsp;&nbsp;&nbsp;&nbsp;0xe2&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;USAGE&nbsp;(Mute)&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;0x09&nbsp;&nbsp;&nbsp;&nbsp;0xcd&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;USAGE&nbsp;(play/pa)&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;0x09&nbsp;&nbsp;&nbsp;&nbsp;0xb7&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;USAGE&nbsp;(Stop)<br />&nbsp;&nbsp;&nbsp;&nbsp;0x75&nbsp;&nbsp;&nbsp;&nbsp;0x01&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;REPORT_SIZE&nbsp;(1)<br />&nbsp;&nbsp;&nbsp;&nbsp;0x95&nbsp;&nbsp;&nbsp;&nbsp;0x07&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;REPORT_COUNT&nbsp;(7)<br />&nbsp;&nbsp;&nbsp;&nbsp;0x81&nbsp;&nbsp;&nbsp;&nbsp;0x02&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;INPUT&nbsp;(Data,Var,Abs)<br />&nbsp;&nbsp;&nbsp;&nbsp;0x09&nbsp;&nbsp;&nbsp;&nbsp;0x00&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;USAGE&nbsp;(Unassigned)<br />&nbsp;&nbsp;&nbsp;&nbsp;0x95&nbsp;&nbsp;&nbsp;&nbsp;0x01&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;REPORT_COUNT&nbsp;(1)<br />&nbsp;&nbsp;&nbsp;&nbsp;0x81&nbsp;&nbsp;&nbsp;&nbsp;0x03&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;INPUT&nbsp;(Cnst,Var,Abs)<br />&nbsp;&nbsp;&nbsp;&nbsp;0xc0&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;;&nbsp;END_COLLECTION&nbsp;&nbsp;39bytes
wahahaabc 发表于 2007-10-10 12:25 | 显示全部楼层

这就是一个多媒体的USB HID键盘,在下原来做过一个 可以参考

在下使用的硬件平台是ZLG&nbsp;的SMART&nbsp;D12开发板,偶将.HEX文件上传,按下D12开发板的其中一个键就可以启动WINDOWS的media&nbsp;player(前提是你要先安装上media&nbsp;player),按下另一个键就可以暂停播放,你将.HEX文件写入D12开发板即可
wahahaabc 发表于 2007-10-10 12:29 | 显示全部楼层

解释一下你的HID报告描述符

你的报告描述符向PC机返回1个字节,这个字节的每个位的含义如下:<br />bit0:Volume&nbsp;Up按键<br />bit1:Volume&nbsp;Down按键<br />bit2:Scan&nbsp;Next&nbsp;Track按键<br />bit3:Scan&nbsp;Previous&nbsp;Track&nbsp;按键<br />bit4:Mute按键<br />bit5:play按键<br />bit6:Stop按键<br />bit7:常量值,为0<br />如果有键按下,相应的位为1,否则为0
 楼主| doob 发表于 2007-10-10 12:55 | 显示全部楼层

hi谢谢wahahaabc

&nbsp;谢谢,多媒体按键都要安装media&nbsp;play才有效吗?<br />好像windows自带驱动,我没验证过,有空把mediaplay卸下试试!
 楼主| doob 发表于 2007-10-10 13:06 | 显示全部楼层

wahahaabc大侠

bit0:Volume&nbsp;Up按键<br />bit1:Volume&nbsp;Down按键<br />bit2:Scan&nbsp;Next&nbsp;Track按键<br />bit3:Scan&nbsp;Previous&nbsp;Track&nbsp;按键<br />bit4:Mute按键<br />bit5:play按键<br />bit6:Stop按键<br />bit7:常量值,为0<br />这个定义,我看不明白,再解释一下好吗?<br />0x09&nbsp;&nbsp;&nbsp;&nbsp;0xe9&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;USAGE&nbsp;(Volume&nbsp;Up)&nbsp;&nbsp;<br />怎么就是bit0呢?呵呵<br />如果我再增加一个mic&nbsp;mute&nbsp;又该怎么添加呢?<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;再次感谢!
平常人 发表于 2007-10-10 18:24 | 显示全部楼层

我也来凑个热闹

&nbsp;&nbsp;&nbsp;&nbsp;0x05&nbsp;&nbsp;&nbsp;&nbsp;0x0c&nbsp;;&nbsp;USAGE_PAGE&nbsp;(Consumer&nbsp;Devices)<br />&nbsp;&nbsp;&nbsp;&nbsp;0x09&nbsp;&nbsp;&nbsp;&nbsp;0x01&nbsp;;&nbsp;USAGE&nbsp;(Consumer&nbsp;Control)<br />&nbsp;&nbsp;&nbsp;&nbsp;0xa1&nbsp;&nbsp;&nbsp;&nbsp;0x01&nbsp;;&nbsp;COLLECTION&nbsp;(Application)<br />&nbsp;&nbsp;&nbsp;&nbsp;0x85&nbsp;&nbsp;&nbsp;&nbsp;0x01&nbsp;;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;0x15&nbsp;&nbsp;&nbsp;&nbsp;0x00&nbsp;;&nbsp;&nbsp;&nbsp;LOGICAL_MINIMUM&nbsp;(0)&nbsp;<font color=#FF0000>&lt--&nbsp;以下数据最小逻辑值为0</font><br />&nbsp;&nbsp;&nbsp;&nbsp;0x25&nbsp;&nbsp;&nbsp;&nbsp;0x01&nbsp;;&nbsp;&nbsp;&nbsp;LOGICAL_MAXIMUM&nbsp;(1)&nbsp;<font color=#FF0000>&lt--&nbsp;以下数据最大逻辑值为1</font><br />&nbsp;&nbsp;&nbsp;&nbsp;0x09&nbsp;&nbsp;&nbsp;&nbsp;0xe9&nbsp;;&nbsp;&nbsp;&nbsp;USAGE&nbsp;(Volume&nbsp;Up)&nbsp;<font color=#FF0000>&lt--&nbsp;数据项Volume&nbsp;Up</font><br />&nbsp;&nbsp;&nbsp;&nbsp;0x09&nbsp;&nbsp;&nbsp;&nbsp;0xea&nbsp;;&nbsp;&nbsp;&nbsp;USAGE&nbsp;(Volume&nbsp;Down)&nbsp;<font color=#FF0000>&lt--&nbsp;数据项Volume&nbsp;Down</font><br />&nbsp;&nbsp;&nbsp;&nbsp;0x09&nbsp;&nbsp;&nbsp;&nbsp;0xb5&nbsp;;&nbsp;&nbsp;&nbsp;USAGE&nbsp;(Scan&nbsp;Next&nbsp;Track)&nbsp;<font color=#FF0000>&lt--&nbsp;数据项Scan&nbsp;Next&nbsp;Track</font><br />&nbsp;&nbsp;&nbsp;&nbsp;0x09&nbsp;&nbsp;&nbsp;&nbsp;0xb6&nbsp;;&nbsp;&nbsp;&nbsp;USAGE&nbsp;(Scan&nbsp;Previous&nbsp;Track)&nbsp;<font color=#FF0000>&lt--&nbsp;....</font><br />&nbsp;&nbsp;&nbsp;&nbsp;0x09&nbsp;&nbsp;&nbsp;&nbsp;0xe2&nbsp;;&nbsp;&nbsp;&nbsp;USAGE&nbsp;(Mute)&nbsp;<font color=#FF0000>&lt--&nbsp;....</font><br />&nbsp;&nbsp;&nbsp;&nbsp;0x09&nbsp;&nbsp;&nbsp;&nbsp;0xcd&nbsp;;&nbsp;&nbsp;&nbsp;USAGE&nbsp;(play/pa)&nbsp;<font color=#FF0000>&lt--&nbsp;....</font><br />&nbsp;&nbsp;&nbsp;&nbsp;0x09&nbsp;&nbsp;&nbsp;&nbsp;0xb7&nbsp;;&nbsp;&nbsp;&nbsp;USAGE&nbsp;(Stop)&nbsp;<font color=#FF0000>&lt--&nbsp;....</font><br />&nbsp;&nbsp;&nbsp;&nbsp;0x75&nbsp;&nbsp;&nbsp;&nbsp;0x01&nbsp;;&nbsp;&nbsp;&nbsp;REPORT_SIZE&nbsp;(1)&nbsp;<font color=#FF0000>&lt--&nbsp;每个数据项长度为1bit</font><br />&nbsp;&nbsp;&nbsp;&nbsp;0x95&nbsp;&nbsp;&nbsp;&nbsp;0x07&nbsp;;&nbsp;&nbsp;&nbsp;REPORT_COUNT&nbsp;(7)&nbsp;<font color=#FF0000>&lt--&nbsp;共有7个数据项</font><br />&nbsp;&nbsp;&nbsp;&nbsp;0x81&nbsp;&nbsp;&nbsp;&nbsp;0x02&nbsp;;&nbsp;&nbsp;&nbsp;INPUT&nbsp;(Data,Var,Abs)&nbsp;<font color=#FF0000>&lt--&nbsp;每个数据项为变量且传输的值为绝对值</font><br />&nbsp;&nbsp;&nbsp;&nbsp;0x09&nbsp;&nbsp;&nbsp;&nbsp;0x00&nbsp;;&nbsp;&nbsp;&nbsp;USAGE&nbsp;(Unassigned)&nbsp;<font color=#FF0000>&lt--&nbsp;未定义用途</font><br />&nbsp;&nbsp;&nbsp;&nbsp;0x95&nbsp;&nbsp;&nbsp;&nbsp;0x01&nbsp;;&nbsp;&nbsp;&nbsp;REPORT_COUNT&nbsp;(1)&nbsp;&nbsp;<font color=#FF0000>&lt--&nbsp;共有1个数据项</font><br />&nbsp;&nbsp;&nbsp;&nbsp;0x81&nbsp;&nbsp;&nbsp;&nbsp;0x03&nbsp;;&nbsp;&nbsp;INPUT&nbsp;(Cnst,Var,Abs)&nbsp;<font color=#FF0000>&lt--&nbsp;每个数据项为常数变量且传输的值为绝对值</font><br />&nbsp;&nbsp;&nbsp;&nbsp;0xc0&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;;&nbsp;END_COLLECTION&nbsp;&nbsp;39bytes<br />&nbsp;<br />要再增加一个mic&nbsp;mute,可在USAGE&nbsp;(Stop)加一个USAGE(mic&nbsp;mute),把后面的REPORT_COUNT改为REPORT_COUNT(8),并删除“未定义用途”数据项的描述。
 楼主| doob 发表于 2007-10-11 09:17 | 显示全部楼层

谢谢不平常的平常人

明白,那些0x09&nbsp;&nbsp;&nbsp;&nbsp;0xe9&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;USAGE&nbsp;(Volume&nbsp;Up)<br />&nbsp;&nbsp;&nbsp;等等为hid&nbsp;协议定义好的!<br />&nbsp;&nbsp;&nbsp;但是mic&nbsp;mute在协议里好像没找到定义。<br />&nbsp;&nbsp;&nbsp;有phone&nbsp;mute&nbsp;0x2f&nbsp;不知是不是。
computer00 发表于 2007-10-11 09:21 | 显示全部楼层

我以前写过一个关于报告描述符的帖,希望对楼主有点帮助

  <br /> 相关链接:<a href='http://computer00.21ic.org/user1/2198/archives/2007/36817.html'>http://computer00.21ic.org/user1/2198/archives/2007/36817.html</a>
isbit 发表于 2007-10-15 12:20 | 显示全部楼层

顶,只有深刻理解报告描述符才算理解了hid的精华

&nbsp;&nbsp;否则不行!一定要掌握。
水蓝色的MCU 发表于 2019-6-11 10:57 | 显示全部楼层
最近也在做多媒体键,楼主做的怎么样了。是否可以请教一些问题
您需要登录后才可以回帖 登录 | 注册

本版积分规则

165

主题

1113

帖子

3

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

165

主题

1113

帖子

3

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