打印

请问computer00(HID相关知识)

[复制链接]
2160|3
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
kknhg|  楼主 | 2011-1-26 16:21 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
computer00,你好!我现在想做一个多功能按键,USB枚举已经完成,按下按键时,数据可以发送到PC机上(用USB_Monitor进行分析数据时,发现数据已经转上去),但PC机无法识别我发的是什么数据!我自己生成HID:
  DB 0X05,0X01    ;0x05:usage page   0x01:普通桌面
  DB 0X09,0X06    ;0x09:usage 0x06:键盘
  DB 0XA1,0X01    ;0xA1:开集合,0x01:应用集合
  DB 0X85,0X0B    ;0x85:报告ID,0x0B:ID号为11
  DB 0X05,0X07    ;0x05:usage page 0x07:键盘
  DB 0X19,0X00    ;0x19:用途为最小值,0x00:最小值
  DB 0X29,0X91    ;0x19:用途为最大值,0x91:最大值
  DB 0X95,0X07    ;0x95:数据域数量,0x07:7个
  DB 0X81,0X00    ;0x81:输入,0x00:6个8位数据域
  DB 0XC0            ; end
我将部分按键做成多媒体键的形式,然后在上面的HID前面或后面加上:
  DB  05H ,  0CH          ; HID_UsagePage(HID_USAGE_PAGE_CONSUMER)
  DB  09H ,  01H          ; HID_Usage(HID_USAGE_CONSUMER_CONTROL)
  DB  0A1H,  01H         ; HID_Collection
  DB  85H ,  02H          ; HID_ReportID      报告ID:2
  DB  19H ,  01H          ; HID_UsageMin
  DB  2AH ,  0FFH        ; HID_UsageMaxS
  DB  03H ,  15H          ; logical minimum (1)
  DB  01H ,  26H          ; logical maximums (03FF)
  DB  0FFH,  03H          ;
  DB  95H ,  01H          ; report count (1)
  DB  75H ,  10H          ; report size (16位数据)
  DB  81H ,  00H          ; HID_Inpu
  DB  0C0H
这样多媒体键PC机是正常识别的,而别的键还是没有识别,翻开你写的玩USB之书,里面涉及HID如何设置后让PC机正确识别有点少,请您指点下应该注意哪些细节的!谢谢您

相关帖子

沙发
computer00| | 2011-2-22 17:12 | 只看该作者
应该是报告描述符不对引起的。直接抄书里的键盘报告描述符试试。

使用特权

评论回复
板凳
nevsayno| | 2011-2-22 17:30 | 只看该作者
这两天正好在拜读圈圈写的书  关于报告描述符部分的内容确实有点少 让人看得云里雾里的

使用特权

评论回复
地板
computer00| | 2011-2-22 22:56 | 只看该作者
多看代码,多实验。HID报告描述符比较难讲清楚... 要对这一章的每个字好好啃一遍。

使用特权

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

本版积分规则

0

主题

10

帖子

1

粉丝