社区
硬件设计
帖子详情
ReadFile读USB
chinvader
2011-06-01 09:40:18
我道行甚浅,却答应了帮老师做USB,我的板子是C8051F320,固件程序是改好的,自定义的设备,在端点1上设置了中断传输的读和写,现在我用BUS HOUND能从读端口上读到板子上的数据,应用程序中设备CreateFile正常,但是用ReadFile怎么都读不到数据,读取的数据长度为0,大侠们能不能给指点一下问题能出在哪儿呀?
...全文
217
6
打赏
收藏
ReadFile读USB
我道行甚浅,却答应了帮老师做USB,我的板子是C8051F320,固件程序是改好的,自定义的设备,在端点1上设置了中断传输的读和写,现在我用BUS HOUND能从读端口上读到板子上的数据,应用程序中设备CreateFile正常,但是用ReadFile怎么都读不到数据,读取的数据长度为0,大侠们能不能给指点一下问题能出在哪儿呀?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
6 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
loobing
2011-07-23
打赏
举报
回复
是数据错误吧,重新格式化再试一下吧。
chinvader
2011-06-01
打赏
举报
回复
BOOL CUsbtt::OpenUsbDevice()
{
BOOL bRet=FALSE;
HDEVINFO hDevInfoList=SetupDiGetClassDevs(&m_GUID,NULL,NULL,(DIGCF_PRESENT|DIGCF_DEVICEINTERFACE));
if (hDevInfoList!=NULL)
{
SP_DEVICE_INTERFACE_DATA deviceInfoData;
for (int MemberIndex=0; MemberIndex<127; MemberIndex++)
{
ZeroMemory(&deviceInfoData,sizeof(deviceInfoData));
deviceInfoData.cbSize=sizeof(SP_DEVICE_INTERFACE_DATA);
if (SetupDiEnumDeviceInterfaces(hDevInfoList,NULL,&m_GUID,MemberIndex,&deviceInfoData))
{
PSP_DEVICE_INTERFACE_DETAIL_DATA functionClassDeviceData=NULL;
ULONG predictedLength,requiredLength;
predictedLength=requiredLength=0;
SetupDiGetDeviceInterfaceDetail(hDevInfoList,&deviceInfoData,NULL,0,&requiredLength,NULL);
predictedLength=requiredLength;
functionClassDeviceData=(PSP_DEVICE_INTERFACE_DETAIL_DATA)malloc(predictedLength);
functionClassDeviceData->cbSize=sizeof(SP_DEVICE_INTERFACE_DETAIL_DATA);
if (SetupDiGetDeviceInterfaceDetail(hDevInfoList,&deviceInfoData,functionClassDeviceData,predictedLength,NULL,NULL))
{
m_DeviceName=functionClassDeviceData->DevicePath;
free(functionClassDeviceData);
bRet=TRUE;
break;
}
free(functionClassDeviceData);
}
else
{
if (GetLastError()==ERROR_NO_MORE_ITEMS)
{
AfxMessageBox("find no device");
break;
}
}
}
}
SetupDiDestroyDeviceInfoList(hDevInfoList);
return bRet;
}
chinvader
2011-06-01
打赏
举报
回复
void CThenewDlg::OnTimer(UINT nIDEvent)
{
// TODO: Add your message handler code here and/or call default
// unsigned long ulBytesSucceed;
OVERLAPPED ReadOverlapped;
unsigned long length=0;
ReadFile(hUSBRead,&read_buffer,20,NULL,&ReadOverlapped);
GetOverlappedResult(hUSBRead,&ReadOverlapped,&length,TRUE);
if (length!=0)
{
AfxMessageBox("数据接收成功");
}
else
{
MessageBox("接收数据长度为0");
}
CString str;
unsigned long i=0;
for (i=0; i<length; i++)
{
str=itos(read_buffer[i],16).Right(2)+"";
}
SetDlgItemText(IDC_Data,str);
CDialog::OnTimer(nIDEvent);
}
chinvader
2011-06-01
打赏
举报
回复
hUSBRead=NULL;
hUSBWrite=NULL;
Usbtt.SetGuid(GUID_INTERFACE_SILABS_INTERRUPT);
if (Usbtt.OpenUsbDevice())
{
hUSBRead=Usbtt.open_file();
if (hUSBRead==INVALID_HANDLE_VALUE)
{
CString sMessage;
AfxMessageBox("open the device error");
sMessage.Format("Error opening the device:%s\n\nAppication error try again",SILABS_INT_READPIPE);
if (AfxMessageBox(sMessage,MB_OK|MB_ICONEXCLAMATION))
{
OnCancel();
}
}
if (hUSBRead!=INVALID_HANDLE_VALUE)
{
AfxMessageBox("读访问打开设备成功");
SetTimer(1,2000,NULL);
}
}
else
AfxMessageBox("device connect error");
return TRUE; // return TRUE unless you set the focus to a control
贝隆
2011-06-01
打赏
举报
回复
有代码吗?上代码看看
chinvader
2011-06-01
打赏
举报
回复
还有用ReadFile需要打开指定的管道么?为什么我给管道起任意一个名,用CreateFile打开都能成功?谢谢,谢谢大家了
vb.net
读
写
USB
接口数据
在VB.NET编程环境中,与
USB
设备进行交互是一个常见的任务,特别是在开发硬件驱动或者控制系统时。本文将详细讲解如何使用VB.NET来实现
USB
接口的数据
读
写,并自动检测
USB
设备的在线状态。 首先,我们需要理解
USB
通信...
HID
USB
设备通讯-源代码
Usb
Library
在IT领域,
USB
(Universal Serial Bus)是一种标准的接口,用于连接各种电子设备,如键盘、鼠标、打印机、扫描仪等。HID(Human Interface Device)是
USB
类设备的一个子集,专门设计用于人机交互设备,如输入设备...
usb
设备通讯,hid设备通讯,
读
写测试
读
文件(
ReadFile
)和写文件(WriteFile)是Windows API中进行数据传输的主要函数。在
USB
设备通讯中,我们利用这些函数向HID设备发送请求并接收响应。例如,我们可以编写命令到设备的输出报告缓冲区,然后通过...
usb
接口
读
取源码c#
对于
读
操作,可以使用`
ReadFile
`函数;对于写操作,使用`WriteFile`函数。这些函数会处理实际的数据传输过程。 5. **错误处理**:在处理
USB
设备时,必须对可能出现的错误进行妥善处理,如设备未连接、权限问题等。...
用Driverstudio生成的
USB
设备驱动程序
这里的
读
管道和写管道意味着驱动程序支持通过这两种方式与
USB
设备进行交互。 "中断传输"是
USB
通信中的一种重要机制,它用于处理那些需要快速响应和低延迟的数据传输。中断传输通常用于鼠标、键盘等需要实时反馈的...
硬件设计
6,169
社区成员
11,288
社区内容
发帖
与我相关
我的任务
硬件设计
硬件/嵌入开发 硬件设计
复制链接
扫一扫
分享
社区描述
硬件/嵌入开发 硬件设计
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章