阅读:859回复:1
向各位大侠求救:USB设备不能配置!!
我用的是51单片机+D12,
用BUSBOUND抓到的图部分如下: 11.0 CTL 80 06 00 01 00 00 40 00 GET DESCRIPTOR 13.1.0 11.0 DI 12 01 10 01 dc 00 00 10 71 04 66 06 00 01 00 00 ....q.f..... 13.2.0 11.0 CTL a3 00 00 00 02 00 04 00 GET STATUS 14.1.0 11.0 DI 03 01 00 00 .... 14.2.0 11.0 CTL 23 03 04 00 02 00 00 00 SET FEATURE 15.1.0 11.1 DI 04 16.1.0 11.0 CTL a3 00 00 00 02 00 04 00 GET STATUS 17.1.0 11.0 DI 03 01 10 00 .... 17.2.0 11.0 CTL 23 01 14 00 02 00 00 00 CLEAR FEATURE 18.1.0 11.0 CTL 00 05 02 00 00 00 00 00 SET ADDRESS 19.1.0 11.0 CTL 80 06 00 01 00 00 12 00 GET DESCRIPTOR 20.1.0 11.0 DI 12 01 10 01 dc 00 00 10 71 04 66 06 00 01 00 00 ........q.f..... 20.2.0 00 01 .. 20.2.16 11.0 CTL 80 06 00 02 00 00 09 00 GET DESCRIPTOR 21.1.0 11.0 DI 09 02 12 00 01 01 00 e0 01 ......... 21.2.0 13.0 CTL 80 06 00 01 00 00 12 00 GET DESCRIPTOR 22.1.0 13.0 DI 12 01 10 01 dc 00 00 10 71 04 66 06 00 01 00 00 ........q.f..... 22.2.0 00 01 .. 22.2.16 13.0 CTL 80 06 00 02 00 00 09 01 GET DESCRIPTOR 23.1.0 13.0 DI 09 02 12 00 01 01 00 e0 01 09 04 00 00 04 dc a0 ................ 23.2.0 b0 00 .. 23.2.16 13.0 CTL 00 09 01 00 00 00 00 00 SET CONFIG 24.1.0 **************** 13.0 USTS 00 05 00 80 request failed 24.2.0 ?????????????? 请问出现问题是我的固件程序有问题,还是驱动有问题!! 大侠帮忙看看了!!! |
|
沙发#
发布于:2004-12-11 19:38
枚举终于可以通过了,是固件的问题。
1)在发送配置描述符时,长度错了:) 2)定义标准设备请求入口地址指针时,code void(code * …… 在*前没有code限定时,尽管可以编译过去,但是当鼠标放在这一行时会发现是错误指针。 3)在程序的一些地方加上了延时,因为用软件跟踪执行时,会发现有一些语句根本不执行,在这样的语句上下加上一点的延时就能执行了 4)将标准请求等全部放在中断执行,而不是在主程序里执行 程序基本上就改了这些,也不知道具体是哪个起作用了,然后就枚举通过了。 |
|