打印

手动模式读GPIF数据

[复制链接]
599|11
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
zwll|  楼主 | 2019-10-13 12:54 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
pi, gp
手动模式读GPIF数据

使用特权

评论回复
沙发
chuxh| | 2019-10-13 12:57 | 只看该作者
是不是只读了EP2的第一缓冲区

使用特权

评论回复
板凳
zwll|  楼主 | 2019-10-13 13:00 | 只看该作者

啊?我的EP2端点设置成1024,2倍缓冲

使用特权

评论回复
地板
juventus9554| | 2019-10-13 13:03 | 只看该作者
估计没有设置指针指向第二缓冲区,看看程序

使用特权

评论回复
5
zwll|  楼主 | 2019-10-13 13:10 | 只看该作者

   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;
          }

使用特权

评论回复
6
stly| | 2019-10-13 13:49 | 只看该作者

你这里只是完成了1024个字节的读取,你需要根据EP2的计数器中的数据对书操作     
count = (EP2BCH << 8) + EP2BCL;
for( i = 0x0000; i < count; i++ )
你试试呢

使用特权

评论回复
7
llljh| | 2019-10-13 13:52 | 只看该作者

常识错误,EP2端点的数据包大小是512字节,设置不了1024……

俺也犯过这种错。

使用特权

评论回复
8
dingy| | 2019-10-13 13:54 | 只看该作者

EP2的数据包大小可以设置为1024的,1024*4 buf

使用特权

评论回复
9
pengf| | 2019-10-13 13:58 | 只看该作者



可以看从datasheet的Endpoint Configuration 中查看到

使用特权

评论回复
10
renyaq| | 2019-10-13 14:13 | 只看该作者
误读。对BULK传输来说,最大包512,对同步和中断传输来说才能设置为1024。

使用特权

评论回复
11
zwll|  楼主 | 2019-10-13 14:15 | 只看该作者
嗯,我再好好缕一缕吧,有了好消息及时通知大家,结贴喽

使用特权

评论回复
12
chuxh| | 2019-10-13 14:18 | 只看该作者
本帖最后由 chuxh 于 2019-10-13 14:23 编辑

还是没看懂

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

885

主题

11314

帖子

5

粉丝