阅读:1198回复:7
枚举问题6 DI 04 . 0us 1.1.0 6 CTL a3 00 00 00 - 02 00 04 00 CLASS 13us 2.1.0 6 DI 01 01 01 00 .... 14us 2.2.0 6 CTL a3 00 00 00 - 02 00 04 00 CLASS 14us 3.1.0 6 DI 01 01 01 00 .... 7us 3.2.0 6 CTL 23 01 10 00 - 02 00 00 00 CLASS 19us 4.1.0 6 CTL a3 00 00 00 - 01 00 04 00 CLASS 36us 5.1.0 6 DI 00 01 00 00 .... 5us 5.2.0 6 CTL a3 00 00 00 - 02 00 04 00 CLASS 15us 6.1.0 6 DI 01 01 00 00 .... 5us 6.2.0 6 CTL a3 00 00 00 - 02 00 04 00 CLASS 110ms 7.1.0 6 DI 01 01 00 00 .... 18us 7.2.0 6 CTL 23 03 04 00 - 02 00 00 00 CLASS 20us 8.1.0 6 DI 04 . 90ms 9.1.0 6 CTL a3 00 00 00 - 02 00 04 00 CLASS 14us 10.1.0 6 DI 03 01 10 00 .... 14us 10.2.0 6 CTL 23 01 14 00 - 02 00 00 00 CLASS 3us 11.1.0 6 CTL a3 00 00 00 - 02 00 04 00 CLASS 20ms 12.1.0 6 DI 03 01 00 00 .... 19us 12.2.0 6 CTL a3 00 00 00 - 02 00 04 00 CLASS 5.6sc 13.1.0 6 DI 03 01 00 00 .... 19us 13.2.0 6 CTL 23 03 04 00 - 02 00 00 00 CLASS 20us 14.1.0 6 DI 04 . 89ms 15.1.0 6 CTL a3 00 00 00 - 02 00 04 00 CLASS 14us 16.1.0 6 DI 03 01 10 00 .... 13us 16.2.0 6 CTL 23 01 14 00 - 02 00 00 00 CLASS 4us 17.1.0 6 CTL a3 00 00 00 - 02 00 04 00 CLASS 5.6sc 18.1.0 6 DI 03 01 00 00 .... 20us 18.2.0 6 CTL 23 03 04 00 - 02 00 00 00 CLASS 20us 19.1.0 6 DI 04 . 88ms 20.1.0 6 CTL a3 00 00 00 - 02 00 04 00 CLASS 14us 21.1.0 6 DI 03 01 10 00 .... 13us 21.2.0 6 CTL 23 01 14 00 - 02 00 00 00 CLASS 3us 22.1.0 6 CTL 23 01 01 00 - 02 00 00 00 CLASS 5.6sc 23.1.0 到这里就结束了,请大虾帮忙分析一下。 |
|
沙发#
发布于:2003-07-04 10:23
那就给分呀 :D
不给分下次不回答你的问题了 :P |
|
板凳#
发布于:2003-07-03 20:46
问题解决了。
我用的是16位的MCU,描述符的定义与要求不符,按要求改掉就可以了。在BUSHOUND的帮助下,枚举成功不是很困难。 |
|
地板#
发布于:2003-06-28 19:29
你如果给去掉了那就得手动修改描述符了,如果你的是16位的总线,那么最好自己拼接一下,如果遇到2个字节的元素不用修改,比如:设备描述符里的前两个字节一般是0x12,0x01,如果用16位的得是0x0112,对于8位的总线就不必了,但是在发送双字节的元素时,要先发低字节
另外,收到的setup包一般情况下也是颠倒的,比如80 06,设备收到的是06 80,你最好注意一点。 |
|
地下室#
发布于:2003-06-28 16:55
调试的时候,我发现接受的数据为WORD时,高低字节顺序反了(BIG ENDIAN/LITTLE ENDIAN),我用的是富士通的MCU,昨天回家路上我想了一下,我只是把接受数据中的SWAP去掉了,忘记把设备描述符中的SWAP去掉了,所以导致主机无法识别设备,下周一我到单位去在改一下,看看能否解决问题。
多谢jinghuiren指点。 |
|
5楼#
发布于:2003-06-28 10:50
出错了???
你自己的程序你问谁啊 出错了就检查原因呀 选择什么端点? 回复setup包只能用ep0tx端点,还需要选择端点吗? 不大明白你在说什么 |
|
6楼#
发布于:2003-06-27 13:14
我跟踪了一下,发现80 06 00 01 00 00 40 00收到了,可是在我回复get_descriptor时,执行到outportb(D12_COMMAND,endp),即输出时要选择端点的时候出错了。怎么回事呢?
|
|
7楼#
发布于:2003-06-27 11:10
你得到的数据里什么都没有,怎么帮你分析呀,你先把现象说一下吧
1,有没有收到总线复位中断 2,有没有收到get descriptor setup 包,也就是80 06 00 01 00 00 40 00 如果1没有就检查硬件和中断设置以及电缆是否有问题 如果收到1,但2没收到就检查中断设置以及一些寄存器设置看是否有问题。 |
|