b5cbb3ac
驱动牛犊
驱动牛犊
  • 注册日期2003-01-23
  • 最后登录2004-01-10
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
阅读:1538回复:6

USB协议求救

楼主#
更多 发布于:2003-03-24 17:17
我所控制的是USB主机,
我向设备发出如下的数据包,目的是获取device descriptor
发出的数据如下:80h 06h 00h 01h 00h 00h 00h 08h
发出的是标准请求0x80, PID 是SETUP,数据的长度是8个bytes,
为什么发送完以后设备就死掉没有任何反应呢?
bunnyh
驱动牛犊
驱动牛犊
  • 注册日期2002-04-25
  • 最后登录2005-09-03
  • 粉丝1
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2003-03-24 17:55
>发出的数据如下:80h 06h 00h 01h 00h 00h 00h 08h
长度错了!最后两个字节应当是\"08h 00h\"
b5cbb3ac
驱动牛犊
驱动牛犊
  • 注册日期2003-01-23
  • 最后登录2004-01-10
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2003-03-25 09:44
好象不对,数据顺序是按照LSB 在前,MSB在后的,
最后四个字节是表示长度,长度是8,8在最左边,最早发送,
应该没有问题。
flyfree
驱动牛犊
驱动牛犊
  • 注册日期2002-12-26
  • 最后登录2007-09-16
  • 粉丝0
  • 关注0
  • 积分40分
  • 威望4点
  • 贡献值0点
  • 好评度4点
  • 原创分0分
  • 专家分0分
地板#
发布于:2003-03-25 14:19
同bunnyh。

另外,b5cbb3ac,你的理解有问题。
mikal
驱动牛犊
驱动牛犊
  • 注册日期2002-11-19
  • 最后登录2007-10-19
  • 粉丝0
  • 关注0
  • 积分1分
  • 威望1点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地下室#
发布于:2003-03-25 14:49
发出的数据如下:80h 06h 00h 01h 00h 00h 40h 00h


this is the standards !
b5cbb3ac
驱动牛犊
驱动牛犊
  • 注册日期2003-01-23
  • 最后登录2004-01-10
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
5楼#
发布于:2003-03-25 15:08
请问 flyfree:
我错在那?
jinghuiren
驱动巨牛
驱动巨牛
  • 注册日期2002-06-01
  • 最后登录2008-10-27
  • 粉丝0
  • 关注0
  • 积分291分
  • 威望460点
  • 贡献值0点
  • 好评度428点
  • 原创分0分
  • 专家分0分
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,所以设备当然不会返回数据给你了!否则你可以在固件里进行相应的修改,当然也能达到要求。不知道我说的你还满意吗,这些东西你看一下固件里的标准请求的处理函数就明白了。
游客

返回顶部