打印

CYPRESS XferData False

[复制链接]
1030|1
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
dwindy|  楼主 | 2016-7-4 18:33 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
Hi, 我完全没有接触过USB的东西,所以问题有点门外汉。请见谅。

今天刚看完CYAPI的REFERENCE
自己写了一点代码,尝试简单的写入和读取一些数据
//创建ccyusbdevice实例
        CCyUSBDevice *USBDevice = new CCyUSBDevice(NULL);

//取两个bulk端口
        CCyBulkEndPoint *bulkIn = NULL;
        CCyBulkEndPoint *bulkOut = NULL;
        int index1=0, index2=0;
        for(int i=0; i<endpointNum; i++)
        {
                bool isIn = USBDevice->EndPoints[i]->bIn;
                bool isBulk = (USBDevice->EndPoints[i]->Attributes==2);
                if(isBulk&&isIn)
                {
                        bulkIn = (CCyBulkEndPoint *)USBDevice->EndPoints[i];
                        index1 = i;
                }
                if(isBulk&&!isIn)
                {
                        bulkOut =  (CCyBulkEndPoint *)USBDevice->EndPoints[i];
                        index2 = i;
                }
        }

////创建假数据
        LONG len = 512;
        unsigned char data1[512]={0};
        for(int i =0;i<len;i++)
        {
                data1[i]=1;
        }
        
        bool writeDone = bulkOut->XferData(data1, len);
        if(writeDone)
                std::cout<<"write "<<len<<" bytes successfully"<<std::endl;
        else
                std::cout<<"write failed !!!!!"<<std::endl;

        unsigned char data2[512]={0};
        bool readDone = bulkIn->XferData(data2, len);
        if(readDone)
                std::cout<<"read successfully"<<std::endl;
        else
                std::cout<<"read failed !!!!!"<<std::endl;

        for(int i=0;i<len;i++)
        {
                std::cout<<data2[i]<<" ";
        }



bulkout的操作是成功的。
bulkin就不行了。


ps:bulkout写入多次之后也会false。
pss:bulkout成功之后,用官方的ezusb-interface,bulk trans去读数据,并读不到。
psss:官方的ezusb-interface也经常能写入不能读取。
沙发
dwindy|  楼主 | 2016-7-6 16:13 | 只看该作者
原来是同事设定了4对端口中2对不可用。
刚好我bulkout是可用的端口
bulkin取的是不可用的。

使用特权

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

本版积分规则

4

主题

9

帖子

0

粉丝