21ic电子技术开发论坛
标题:
无法再写入新的数据
[打印本页]
作者:
ousj
时间:
2016-12-2 23:10
标题:
无法再写入新的数据
就是用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,表明状态仍然为满,无法再写入新的数据
作者:
chuxh
时间:
2016-12-2 23:12
数据能读出来吗
作者:
ousj
时间:
2016-12-2 23:16
读不出来,请问如何才能完整清空所有数据,包括已经提交的数据包
作者:
司徒老鹰
时间:
2016-12-2 23:18
if(!( EP2468STAT & bmEP2EMPTY )) // 如果 IN 端点有旧数据就复位这个端点, 丢掉这个数据包
{
FIFORESET = 0x02;
SYNCDELAY;
FIFORESET = 0x00;
SYNCDELAY;
}
作者:
ousj
时间:
2016-12-2 23:21
哦,那我就知道怎么回事了,多谢大家,结贴了哈
欢迎光临 21ic电子技术开发论坛 (https://bbs.21ic.com/)