我用68013有两个问题:
1,就是用EP2作为bulk ,auto-in quad buffer, auto in length = 512,测试时发现当接收满所有数据后,此时EP2CS = 0x30, {EP2FIFOBCH,EP2FIFOBCL} = 0x1FE,EP2FIFO标志寄存器S = 0x1;此时我想复位清空buffer,代码如下:
FIFORESET = 0x80;
SYNCDELAY;
FIFORESET = 0x2;
SYNCDELAY;
FIFORESET = 0x0;
结果却是EP2FIFO标志寄存器S = 1, {EP2FIFOBCH,EP2FIFOBCL} = 0x1FE, EP2CS = 0x4,表明状态仍然为满,无法再写入新的数据,而且此时数据也读不出来,请问如何才能完整清空所有数据,包括已经提交的数据包。
2,就是执行控制传输时,返回的信息有6个字节,但偶尔只会返回一个字节,请问这是为什么?,代码如下
EP0BUF[ 0 ] = 0x20;
EP0BUF[ 1 ] = 0x12;
EP0BUF[ 2 ] = 0x09;
EP0BUF[ 3 ] = 0x25;
EP0BUF[ 4 ] = 0x0A;
EP0BUF[ 5 ] = buf[0];
EP0BCH = 0;
SYNCDELAY;
EP0BCL = 6;
SYNCDELAY; |