#1楼主:报告描述符不是键盘就无法工作
文章发表于:2008-05-07 01:48
在圈圈的正确引导下,我的HID设备成功枚举了,现在有两个问题说一下。
我把报告描述符重新自己定义后,设备同样成功枚举。
(1)设备管理器里面出现“hid-compliant device”和我定义的设备两个新的HID设备。
(2)此时无法收到中断端点发出的连续不断请求了。
请问原因可能是哪里呢?是报告描述符吗?诚恳地向圈圈及各位高人求助。
#3
文章发表于:2008-05-07 16:45
噢,非常谢谢您的回复。
还有就是为什么枚举成键盘才可以收到中断端点的请求,别的HID设备比方Digitizer不
行吗?
#5
文章发表于:2008-05-08 13:09
谢谢您耐心的回复,
我这里有一段简单的报告描述符,烦请帮我看看,同样的程序,用下面这个报告描述符为什么无法收到终端端点的不断请求。但是键盘的报告描述符却可以。
各位牛人,谢谢你们啦!
code unsigned char HidReportDescriptor[21] =
{ 0x06, 0x00, 0xFF, //USAGE_PAGE (Vendor Defined Page 1)
0x09, 0x01, //USAGE (Vendor Usage 1)
0xA1, 0x01, //COLLECTION (Application)
0x09, 0x01, //USAGE (Vendor Usage 1)
0x15, 0x00, //LOGICAL_MINIMUM (0)
0x26, 0xFF,0xFF, //LOGICAL_MAXIMUM (65535)
0x75, 0x10, //REPORT_SIZE (16)
0x95, 0x0C, //REPORT_COUNT (12)
0x81, 0x02, //INPUT (Data,Var,Abs)
0xC0 //END_COLLECTION
};
#6
文章发表于:2008-05-08 16:50
是不是你的HID描述符没做对应的修改?那里指定了长度的。
#7
文章发表于:2008-05-09 21:50
我现在正在努力寻找问题的来源.
我发现了一个问题:
每次收到控制端点请求,然后read last transaction status,返回的值有
0x21 或是 0xA1,还有时候为0x41,好像只有 0x21 是正确的,那 0xA1 和 0x41怎么回
事儿呢?A1是说PREVIOUS STATUS NOT READ,就是说上次没有读走?
我的设备虽然枚举成功,但是问题多多啊。您能帮我考虑这个问题一下吗?
#8
文章发表于:2008-05-10 01:10
这个好象不影响吧。我估计还是你的报告描述符的问题。
你找我们小组里那个VC读写HID的例子来看看吧,
那个好象是可以的。那里也是用的自定义HID设备。
#9
文章发表于:2008-05-10 21:47
在您的帮助和小组这么好的氛围里,我的HID设备终于正常工作啦。
我十分爱好电子,圈圈帮了我这么多,真是十分的感谢!!!
这么无私的帮助别人,是我学习的榜样。