RT:
我用CreateFile函数打开usb bulk设备时,返回无效的句柄,用GetLastError函数取得的返回值为1:表示功能错误。
自定义的bulk设备只有端点1,IN和OUT都用,纯bulk设备,用bushound发送IN的URB能正确返回数据。
if(g_DevFoundFlag==TRUE)
{
PrintfMessage("Device found!");
g_hDevHandle=CreateFile(g_DevPathName,
GENERIC_READ|GENERIC_WRITE,
FILE_SHARE_READ|FILE_SHARE_WRITE,
NULL,
OPEN_EXISTING,
FILE_ATTRIBUTE_NORMAL|FILE_FLAG_OVERLAPPED,
NULL);
if(g_hDevHandle != INVALID_HANDLE_VALUE)
{
PrintfMessage("Device connect success.");
}
else
{
if(GetLastError()==0x20)
PrintfMessage("Device connect failed! Device connected");
else
PrintfMessage("Device connect failed!");
//MessageBox(itos(GetLastError(), 16), "!!!!");
g_DevFoundFlag=FALSE;
}
}
else
{
PrintfMessage("Device not found!");
}
程序已经找到了设备,就是连接不上。
驱动和程序都是参考圈圈的书生成的,打开设备用GUID打开的,GUID用MessageBox检查过和DS生成的一致,希望各位能提供点建议。调试信息输出字符串:
Device found!
Device connect failed!
平台是STM32F4-discovery,发到USB区,半天没人回。。。 |