打印

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

[复制链接]
3321|9
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
doob|  楼主 | 2007-10-10 11:58 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
    0x05    0x0c             ; USAGE_PAGE (Consumer Devices)
    0x09       0x01              ; USAGE (Consumer Control)
    0xa1    0x01                 ; COLLECTION (Application)
    0x85    0x01                 ;     
    0x15    0x00                 ;     LOGICAL_MINIMUM (0)
    0x25    0x01                ;    LOGICAL_MAXIMUM (1)    
    0x09    0xe9                 ;     USAGE (Volume Up)    
    0x09    0xea                 ;     USAGE (Volume Down)    
    0x09    0xb5                 ;     USAGE (Scan Next Track)    
    0x09    0xb6                 ;     USAGE (Scan Previous Track)    
    0x09    0xe2                 ;     USAGE (Mute)    
    0x09    0xcd                     ;     USAGE (play/pa)    
    0x09    0xb7                 ;     USAGE (Stop)
    0x75    0x01                 ;     REPORT_SIZE (1)
    0x95    0x07                 ;     REPORT_COUNT (7)
    0x81    0x02                 ;     INPUT (Data,Var,Abs)
    0x09    0x00                 ;     USAGE (Unassigned)
    0x95    0x01                 ;     REPORT_COUNT (1)
    0x81    0x03                 ;     INPUT (Cnst,Var,Abs)
    0xc0                      ; END_COLLECTION  39bytes

相关帖子

沙发
wahahaabc| | 2007-10-10 12:25 | 只看该作者

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

在下使用的硬件平台是ZLG 的SMART D12开发板,偶将.HEX文件上传,按下D12开发板的其中一个键就可以启动WINDOWS的media player(前提是你要先安装上media player),按下另一个键就可以暂停播放,你将.HEX文件写入D12开发板即可

使用特权

评论回复
板凳
wahahaabc| | 2007-10-10 12:29 | 只看该作者

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

你的报告描述符向PC机返回1个字节,这个字节的每个位的含义如下:
bit0:Volume Up按键
bit1:Volume Down按键
bit2:Scan Next Track按键
bit3:Scan Previous Track 按键
bit4:Mute按键
bit5:play按键
bit6:Stop按键
bit7:常量值,为0
如果有键按下,相应的位为1,否则为0

使用特权

评论回复
地板
doob|  楼主 | 2007-10-10 12:55 | 只看该作者

hi谢谢wahahaabc

 谢谢,多媒体按键都要安装media play才有效吗?
好像windows自带驱动,我没验证过,有空把mediaplay卸下试试!

使用特权

评论回复
5
doob|  楼主 | 2007-10-10 13:06 | 只看该作者

wahahaabc大侠

bit0:Volume Up按键
bit1:Volume Down按键
bit2:Scan Next Track按键
bit3:Scan Previous Track 按键
bit4:Mute按键
bit5:play按键
bit6:Stop按键
bit7:常量值,为0
这个定义,我看不明白,再解释一下好吗?
0x09    0xe9                 ;     USAGE (Volume Up)  
怎么就是bit0呢?呵呵
如果我再增加一个mic mute 又该怎么添加呢?

    再次感谢!

使用特权

评论回复
6
平常人| | 2007-10-10 18:24 | 只看该作者

我也来凑个热闹

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

使用特权

评论回复
7
doob|  楼主 | 2007-10-11 09:17 | 只看该作者

谢谢不平常的平常人

明白,那些0x09    0xe9                 ;     USAGE (Volume Up)
   等等为hid 协议定义好的!
   但是mic mute在协议里好像没找到定义。
   有phone mute 0x2f 不知是不是。

使用特权

评论回复
8
computer00| | 2007-10-11 09:21 | 只看该作者

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

使用特权

评论回复
9
isbit| | 2007-10-15 12:20 | 只看该作者

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

  否则不行!一定要掌握。

使用特权

评论回复
10
水蓝色的MCU| | 2019-6-11 10:57 | 只看该作者
最近也在做多媒体键,楼主做的怎么样了。是否可以请教一些问题

使用特权

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

本版积分规则

165

主题

1113

帖子

3

粉丝