阅读:2287回复:11
30分请教 sl811发送数据总是time out 是什么原因
枚举成功后 使用usbxfer函数发送数据时,总是出现time out,查看intr为04h,不知大家有没有遇到这种情况,后来是怎么解决的。
|
|
沙发#
发布于:2004-01-08 11:23
使用48M的有源晶振,
就不会04了 |
|
板凳#
发布于:2004-01-08 12:05
我用的已经是40M的有源晶振了,枚举有时成功有时不行,bulk方式发送数据时有时也能发送,但u盘接受的数据是错的
枚举和发送不成共时查看ep0status,发现时04h,为超时。我觉得软件应该没什么问题,不知那位高手指点一下 |
|
地板#
发布于:2004-01-08 12:41
48M的有源晶振,811供电3V
|
|
地下室#
发布于:2004-01-08 12:54
我测了下电源为3.3v 不知道有没影响。有时枚举成功,我觉得应该不会是软件问题吧
|
|
5楼#
发布于:2004-01-08 13:18
TIMEOUT 时是要软件处理的!重发试一试!
|
|
6楼#
发布于:2004-01-08 13:24
是有重发的处理的 程序如下 不知有没什么问题 关键是有时能枚举有时不能成功 不够稳定 大家帮忙分析一下 //-----------------------TIMEOUT--------------------------
if (result & EP0_TIMEOUT) // TIMEOUT Detected { if(usbstack.endpoint==0) // happens when hub enumeration { if(++timeout >= TIMEOUT_RETRY) { timeout--; break; // exit on the timeout detected } SL811Write(IntStatus,INT_CLEAR); // clear interrupt status, need to SL811Write(EP0Control,cmd); // re-arm and request for last cmd again } else { // all other data endpoint, data transfer bXXGFlags.bits.TIMEOUT_ERR = TRUE; // failed, set flag to terminate transfer break; // happens when data transfer on a device } // through the hub } |
|
7楼#
发布于:2004-01-08 18:51
我也遇到了同样的问题,请高手指点一下啊
|
|
8楼#
发布于:2004-01-10 08:21
顶一下
|
|
9楼#
发布于:2004-01-13 08:43
先假设你的硬件部分没有问题
看发一个数据包后,硬件中断有没有产生,对不对?如果没有产生或不是传输完成中断,那么你前面的代码有问题。 |
|
|
10楼#
发布于:2004-01-13 09:37
谢谢大家 问题已解决。不过具体的原因现在还在寻找,改动了一些地方,但究竟是那个改动在起作用还不知道。
|
|
11楼#
发布于:2004-11-18 18:24
顶,坚决支持说出原因在,因我也是同样的情况!!!顶顶顶!!!
|
|
|