阅读:1000回复:5
为什么不响应了?
当我收到 80 06 00 01 00 00 40 00 GET DESCR 后。
给FIFO发送数据, 然后置发送位标志和相关的操作。 可我发现我不然收到下一个请求的响应了。 说明, 在响应上面的请求时, 我只给了 12H 长字节。 我想问一下是不是我给少了它就不运行了? 还是出在其它问题(我没有置好响应)? |
|
沙发#
发布于:2003-02-19 22:58
你早说呀,是有时间限制的,对于没有数据阶段的请求必须在50ms内完成,对于有数据阶段的请求必须在5s内完成。
|
|
板凳#
发布于:2003-02-19 19:28
to: jinghuiren & dacongtou
先谢谢两位的回复。 我得这个问题决解了, 可决解的有点不可思义。 我不知道是不是上位host对回复响应有一定的时间限制还是什么。 我把断点制到下一个请求的回应处(SetAddress),这样就可以了。 对这个我还不是很清楚, 我会去搞清楚的。 这是我第一次写usb方面的mcu, 也是第一次写mcu。 谢谢两位的支持。 ;) |
|
地板#
发布于:2003-02-18 12:23
有几种情况:
1。可能是你的描述符有问题,我的是12 01 00 02 00 00 00 40 cc 04 49 1b 00 00 00 00 00 01 我的是2。0的,通过了,如果是1。1的,把第三和第四字节改为10 01 2。你的数据根本就没写到fifo里,你可以跟踪一下试试。 3。可能是你写数据到了fifo里,但是没有使数据生效,不满的包要手动生效,或者写一个寄存器让设备自动计数。 4。你的状态阶段没完成,在状态阶段,按协议规定应该发送一个空的数据包给主机(有的是通过写一个寄存器自动完成的),然后主机才会发送下一个SetAddress命令来。 以上是我觉得可能出现的情况,要注意的一点是发送上字节的描述符时要先发低字节,再发高字节。你可以检查一下子。 |
|
地下室#
发布于:2003-02-18 11:49
你看看你发送的方法对不对,或者读一下“最后处理状态”寄存器,看是否发送成功。
|
|
5楼#
发布于:2003-02-17 21:21
upup
|
|