wuroc
驱动牛犊
驱动牛犊
  • 注册日期2004-03-23
  • 最后登录2005-10-29
  • 粉丝0
  • 关注0
  • 积分10分
  • 威望2点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
阅读:1535回复:9

我Get_Descriptor都没有传完数据,怎么就收到Set_Address的命令呢

楼主#
更多 发布于:2004-04-22 14:02
我一开始收到要我传64个字节的Get_Descriptor的命令。
我才传了8个字节的IN包,就收到SETUP包是Set_Address的命令。
可是我应该要传18个字节才传完的呀。
会出现这种情况吗?

最新喜欢:

wangminwangmi...
LJ1978
驱动小牛
驱动小牛
  • 注册日期2004-02-25
  • 最后登录2011-06-08
  • 粉丝0
  • 关注0
  • 积分43分
  • 威望24点
  • 贡献值0点
  • 好评度4点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2004-04-22 14:23
小伙子要搞清原理呀。
第一次的取描述符的长度是给最大的。因为HOST还不知道USB的地址和具体参数,所以先给你最大长度。你回应只需要回16个BYTE就可以了。可不要画蛇添足啊。
wuroc
驱动牛犊
驱动牛犊
  • 注册日期2004-03-23
  • 最后登录2005-10-29
  • 粉丝0
  • 关注0
  • 积分10分
  • 威望2点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2004-04-22 15:17
可是我只传了8个byte就有中断了,是set_address的SETUP包。可是我18个byte都没有传完呀。
pineapple
驱动牛犊
驱动牛犊
  • 注册日期2003-04-17
  • 最后登录2004-04-22
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地板#
发布于:2004-04-22 16:54
你这个是没错的阿
主机第一次请求描述符的时候,只需要读取描述符的头8个B就行了,因为描述符的第8位给出了maxep0size,等到下次再请求getconfiguration时,主机才读出整个的设备描述符
wuroc
驱动牛犊
驱动牛犊
  • 注册日期2004-03-23
  • 最后登录2005-10-29
  • 粉丝0
  • 关注0
  • 积分10分
  • 威望2点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地下室#
发布于:2004-04-22 17:10
哦,谢谢。
那就是讲,我现在发了8个byte后收到这个命令,就把我的地址按PC的set_address设置好,在通信。
还是等我发送完18个byte后,再设置这个地址呢。

另外,设置了地址后是不是需要要给主机返回什么ACK包吗?
jinghuiren
驱动巨牛
驱动巨牛
  • 注册日期2002-06-01
  • 最后登录2008-10-27
  • 粉丝0
  • 关注0
  • 积分291分
  • 威望460点
  • 贡献值0点
  • 好评度428点
  • 原创分0分
  • 专家分0分
5楼#
发布于:2004-04-22 21:15
先设置地址,然后发送空包给主机,然后你才会第二次收到get descriptor的命令。
wuroc
驱动牛犊
驱动牛犊
  • 注册日期2004-03-23
  • 最后登录2005-10-29
  • 粉丝0
  • 关注0
  • 积分10分
  • 威望2点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
6楼#
发布于:2004-04-22 21:39
OK,我设好地址,然后发送空包,主机就发get_descriptor给我这次是0x12也就是要我发18个byte,我连发了18个byte,主机就没有反应了。请问这18个byte的结束需要有什么设置吗?难道还要发空包过去?我记得spec讲,如果一个包的数据大小小于设定的MAXPSIZE这里是8个byte主机就会认为这次数据通信结束了呀。

谢谢了。调这个好麻烦,主要是主机端没有办法抓包。
SUNSHANGXIN
驱动老牛
驱动老牛
  • 注册日期2002-11-19
  • 最后登录2009-08-01
  • 粉丝0
  • 关注0
  • 积分21分
  • 威望19点
  • 贡献值0点
  • 好评度9点
  • 原创分0分
  • 专家分0分
7楼#
发布于:2004-04-22 23:23
你用的是啥啊
这么麻烦
我来谈谈啊
第一次 只要发送你的最大字节量的就可以了
不要画se不会拼了 哈哈
主机就知道了 最小是8个
而第8个恰恰是端点0的大小  :D :D
最大就水便你呵呵
这样主要是为了主机知道你的短点0的大小
呵呵  明白吗????
以下就循规蹈矩
你看看 多简单的道理 搞那么复杂干吗 :D :D :D
我的msn sunshangxin@hotmai.com
有空帮帮我这个垃圾哦
[b]苍白的,不是文字,是人的思想 虚伪的,不是网络,是人的灵魂 伤心的,不是爱情,是人的心灵 难忘的,不是容貌,是人的思诀 黎明的曙光早已不见了夕日的辉煌 东方的日出早就失去了往日的灿烂 而我也尽脱了昨日的笑容去迎接明天的枯涩 [/b]
SUNSHANGXIN
驱动老牛
驱动老牛
  • 注册日期2002-11-19
  • 最后登录2009-08-01
  • 粉丝0
  • 关注0
  • 积分21分
  • 威望19点
  • 贡献值0点
  • 好评度9点
  • 原创分0分
  • 专家分0分
8楼#
发布于:2004-04-22 23:24
为啥老有人把我击倒呢
[b]苍白的,不是文字,是人的思想 虚伪的,不是网络,是人的灵魂 伤心的,不是爱情,是人的心灵 难忘的,不是容貌,是人的思诀 黎明的曙光早已不见了夕日的辉煌 东方的日出早就失去了往日的灿烂 而我也尽脱了昨日的笑容去迎接明天的枯涩 [/b]
jinghuiren
驱动巨牛
驱动巨牛
  • 注册日期2002-06-01
  • 最后登录2008-10-27
  • 粉丝0
  • 关注0
  • 积分291分
  • 威望460点
  • 贡献值0点
  • 好评度428点
  • 原创分0分
  • 专家分0分
9楼#
发布于:2004-04-23 11:26
搜一下以前的帖子吧,这个问题已经讨论过很多次,好像从网站建立的时候就开始讨论这个问题了。
游客

返回顶部