阅读:1266回复:0
一个关于bulkloop的问题
我用的bulkloop示例程序:if(!(EP2468STAT & bmEP2EMPTY))
{ if(!(EP2468STAT & bmEP6FULL)) { APTR1H = MSB( &EP2FIFOBUF ); APTR1L = LSB( &EP2FIFOBUF ); AUTOPTRH2 = MSB( &EP6FIFOBUF ); AUTOPTRL2 = LSB( &EP6FIFOBUF ); count = (EP2BCH << 8) + EP2BCL; for( i = 0x0000; i < count; i++ ) { EXTAUTODAT2 = EXTAUTODAT1; } EP6BCH = EP2BCH; SYNCDELAY; EP6BCL = EP2BCL; SYNCDELAY; EP2BCL = 0x80; } 这个是从端点2发送,端点6直接接收的。 现在我想把端点2发送的数据存放到我自己设置的一个数组中,在对数组中的数据进行解析后,再由端点6发送出去。 if(!(EP2468STAT & bmEP2EMPTY)) { APTR1H = MSB( &EP2FIFOBUF ); APTR1L = LSB( &EP2FIFOBUF ); AUTOPTRH2 = MSB( &Sbuf ); AUTOPTRL2 = LSB( &Sbuf ); count = (EP2BCH << 8) + EP2BCL; for( i = 0x0000; i < count; i++ ) { EXTAUTODAT2 = EXTAUTODAT1; } SYNCDELAY; EP2BCL = 0x80; } if(!(EP2468STAT & bmEP6FULL)) { APTR1H = MSB( &Sbuf ); APTR1L = LSB( &Sbuf ); AUTOPTRH2 = MSB( &EP6FIFOBUF ); AUTOPTRL2 = LSB( &EP6FIFOBUF ); for( i = 0x0000; i < count; i++ ) { EXTAUTODAT2 = EXTAUTODAT1; } EP6BCH = EP2BCH; SYNCDELAY; EP6BCL = EP2BCL; } 改过之后端点6就不能使用了。显示: Read IOCTL failed 连到系统上的设备没有发挥作用。 这个是什么问题,怎么才能把发送和接收分开来写? |
|