每2048个字节只读对前1024个字节

[复制链接]
1200|10
 楼主| yufe 发表于 2015-3-9 19:17 | 显示全部楼层 |阅读模式
pi, gp
在做一个项目,使用的是68013,用的是手动模式读GPIF数据,出现的情况是,每2048个字节只读对前1024个字节
llia 发表于 2015-3-9 19:18 | 显示全部楼层
是不是只读了EP2的第一缓冲区
 楼主| yufe 发表于 2015-3-9 19:22 | 显示全部楼层
啊?我的EP2端点设置成1024,2倍缓冲
llia 发表于 2015-3-9 19:24 | 显示全部楼层
估计没有设置指针指向第二缓冲区,看看程序
 楼主| yufe 发表于 2015-3-9 19:25 | 显示全部楼层

   AUTOPTRH1 = MSB( &EP2FIFOBUF );//自动指针地址高/低,APTR1H和AUTOPTRH1是同一个寄存器,前者是旧的
         AUTOPTRL1 = LSB( &EP2FIFOBUF );//EP2FIFOBUF 端点2缓冲区
            
         AUTOPTRH2 = MSB( &myBuffer1 );//目的单元
         AUTOPTRL2 = LSB( &myBuffer1 );
               
    for( i = 0x0000; i < 1024; i++ )
          {
              EXTAUTODAT2 = EXTAUTODAT1;
                 
                 SBUF1=myBuffer1[i];  //SBUF0:Serial Port 0 transmit/receive buffer.
              while(TI1 == 0);
              SYNCDELAY;
        TI1 = 0;
          }
wangpe 发表于 2015-3-9 19:27 | 显示全部楼层
你这里只是完成了1024个字节的读取,你需要根据EP2的计数器中的数据对书操作     
count = (EP2BCH << 8) + EP2BCL;
for( i = 0x0000; i < count; i++ )
你试试呢
langgq 发表于 2015-3-9 19:28 | 显示全部楼层
常识错误,EP2端点的数据包大小是512字节,设置不了1024……

俺也犯过这种错。
wangzsa 发表于 2015-3-9 19:29 | 显示全部楼层
EP2的数据包大小可以设置为1024的,1024*4 buf
zhuww 发表于 2015-3-9 19:30 | 显示全部楼层
可以看从datasheet的Endpoint Configuration 中查看到
zhanglli 发表于 2015-3-9 19:31 | 显示全部楼层
误读。对BULK传输来说,最大包512,对同步和中断传输来说才能设置为1024。
 楼主| yufe 发表于 2015-3-9 19:32 | 显示全部楼层
哦,我知道了,多谢大家
您需要登录后才可以回帖 登录 | 注册

本版积分规则

983

主题

10170

帖子

1

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