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也经常能写入不能读取。 |