5# dqyubsh
//////////////////////定义
USBDeviceList^ user1;
CyUSBDevice^ myDev;
CyBulkEndPoint^ inendpoint;
CyBulkEndPoint^ outendpoint;
Int32 rd_bytes;
bool success;
/////////////////////////初始化
user1 = gcnew USBDeviceList(CyUSB::CyConst::DEVICES_CYUSB);
myDev =dynamic_cast<CyUSBDevice^> (user1[0x04B4,0x00BC]);
if (myDev!=nullptr)
MessageBox::Show(L"link success");
else
MessageBox::Show(L"no device");
bool blssFast = myDev->bSuperSpeed;
bool blhsFast = myDev->bHighSpeed;
if(blhsFast)
{
textBox3->Text=L"USB is working at usb2.0 mode!";
}
else if (blssFast)
{
textBox3->Text=L"USB is working at usb3.0 mode!";}
////////////////////////////////////////////////////
inendpoint=dynamic_cast<CyBulkEndPoint^>(myDev->EndPointOf(0x81));
if((inendpoint!=nullptr)&&(inendpoint->Attributes==2))
{
if (textBox1->Text=="")
{ MessageBox::Show(L"Please input the bytes you want to read");
return;
}
else
{
rd_bytes=Convert::ToInt32(textBox1->Text);
rd_buffer=gcnew array<unsigned char>(16384);
success=inendpoint->XferData(rd_buffer,rd_bytes); }
现象是只有rd_bytes是1024的整数倍时success=1,其他情况success都是0,会不会是因为USB3.0一次传输的最小单位是1024字节,我对固件配置不熟,不知道能不能把一次传输的数据量大小改小一些
}
|