阅读:1538回复:6
USB协议求救
我所控制的是USB主机,
我向设备发出如下的数据包,目的是获取device descriptor 发出的数据如下:80h 06h 00h 01h 00h 00h 00h 08h 发出的是标准请求0x80, PID 是SETUP,数据的长度是8个bytes, 为什么发送完以后设备就死掉没有任何反应呢? |
|
沙发#
发布于:2003-03-24 17:55
>发出的数据如下:80h 06h 00h 01h 00h 00h 00h 08h
长度错了!最后两个字节应当是\"08h 00h\" |
|
板凳#
发布于:2003-03-25 09:44
好象不对,数据顺序是按照LSB 在前,MSB在后的,
最后四个字节是表示长度,长度是8,8在最左边,最早发送, 应该没有问题。 |
|
地板#
发布于:2003-03-25 14:19
同bunnyh。
另外,b5cbb3ac,你的理解有问题。 |
|
地下室#
发布于:2003-03-25 14:49
发出的数据如下:80h 06h 00h 01h 00h 00h 40h 00h
this is the standards ! |
|
5楼#
发布于:2003-03-25 15:08
请问 flyfree:
我错在那? |
|
6楼#
发布于:2003-03-25 16:35
其实你既然知道发80 06,为什么不知道把00 08改为08 00呢,其实按照80 06 00 01 00 00 08 00发送给设备,那么设备收到的应该是高低字节转换后的,即06 80 01 00 00 00 00 08,因此在固件中对这些数据进行了处理,如果你发送00 08到设备,那么设备收到的应该是08 00,但是设备方只会根据收到的最后一个字节来确定要返回多少数据,按照你的方法,那么是00,所以设备当然不会返回数据给你了!否则你可以在固件里进行相应的修改,当然也能达到要求。不知道我说的你还满意吗,这些东西你看一下固件里的标准请求的处理函数就明白了。
|
|