我用VS2012编写了一个win32控制台的小程序与CyUSB3014
通信,只有控制传输,使用静态链接库,调用EZ-USB FX3 SDK 1.3.3裡面提供的CypressEZ-USB FX3 SDK1.3librarycpplibx86CyAPI.lib,程序在win7系统下运行正常,在win10下一运行到与控制端点通信的地方就崩溃。程式可以正常找到设备,但是一调用write API就崩溃。
报错 “程式已经停止运作”。
win10下 EZ-USB FX3 SDK 1.3.3(1.2.3.10)裡面自带的driver和官网上下的Cypress USB-Serial Driver(1.2.3.14) 都试过,现象一样。但是Cypress 官方的USB controller就能正常工作。
关键代码如下:在调用CyAPI.lib提供的API Write和Read时程序崩溃。
CCyUSBDevice *USBDevice = new CCyUSBDevice();
CCyControlEndPoint *ept = USBDevice->ControlEndPt;
//find out video card.
int devNum = USBDevice->DeviceCount();
int pID,vID;
int i = 0;
do
{
USBDevice->Open(i);
pID = USBDevice->Produc
tiD;
vID = USBDevice->VendorID;
i++;
}while((iTarget = TGT_DEVICE;
ept->ReqType = REQ_VENDOR;
ept->Index = 0x0000;
ept->Value = 0x0100;
ept->ReqCode = 0xba;//I2C write command
if(TRUE !=ept->Write(buf0,len))
{
_tprintf(_T("Write EEPROM error!n"));
return 0x04;//write i2c error.
}
Sleep(1000);
//verify
ept->ReqCode = 0xbb;//I2C read command
if(TRUE !=ept->Read(buf1,len))
{
_tprintf(_T("nRead EEPROM error!n"));
return 0x05;//read i2c error.
}
Sleep(1000);