状态仍然为满

[复制链接]
743|4
tian111 发表于 2015-2-26 19:35 | 显示全部楼层 |阅读模式
就是用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,表明状态仍然为满,无法再写入新的数据
宋倩2010 发表于 2015-2-26 19:36 | 显示全部楼层
数据能读出来吗
 楼主| tian111 发表于 2015-2-26 19:38 | 显示全部楼层
读不出来,请问如何才能完整清空所有数据,包括已经提交的数据包
chenho 发表于 2015-2-26 19:39 | 显示全部楼层
不懂,帮顶吧
huwr 发表于 2015-2-26 19:43 | 显示全部楼层
if(!( EP2468STAT & bmEP2EMPTY ))        // 如果 IN 端点有旧数据就复位这个端点, 丢掉这个数据包
        {
            FIFORESET = 0x02;
            SYNCDELAY;
            FIFORESET = 0x00;
            SYNCDELAY;
        }
您需要登录后才可以回帖 登录 | 注册

本版积分规则

797

主题

8878

帖子

7

粉丝
快速回复 在线客服 返回列表 返回顶部