阅读:1276回复:3
应用程序向USB发送数据的问题
我的应用程序如下:
USHORT outbBuffer[512]; for (int i=0;i<512;ki++) outbuBuffer=i; HANDLE handle=NULL; BOOLEAN success; ULONG nBytes=0; SET_INTERFACE_IN interfaceIn; BULK_TRANSFER_CONTROL bulkControl; WORD outPacketSize,inPacketSize; handle=CreateFile(".ezusb-0", GENERIC_WRITE, FILE_SHARE_WRITE, NULL, OPEN_EXISTING, 0, NULL); if (handle==INVALID_HANDLE_VALUE) {return; } interfaceIn.interfaceNum=0; interfaceIn.alternateSetting=1; success=DeviceIoControl(handle, IOCTL_Ezusb_SETINTERFACE, &interfaceIn, sizeof(SET_INTERFACE_IN), NULL, 0, &nBytes, NULL); if(success) { AfxMessageBox("succeeding in setting interface",MB_OK); } else { CloseHandle(handle); return; } bulkControl.pipeNum=0; outPacketSize=256; success=DeviceIoControl(handle, IOCTL_EZUSB_BULK_WRITE, &bulkControl, sizeof(BULK_TRANSFER_CONTROL), outBuffer, outPacketSize*2, &nBytes, NULL); if(success) { AfxMessageBox("succeeding in Writing",MB_OK); } else { CloseHandle(handle); return; } 我的应用程序在运行后能打开interface,能弹出对话框"succeeding in Writing",但是用逻辑分析仪看,发现实际发下去的数据全部都为0,并不是实际outBuffer中的从1到511。 请大侠帮忙看一下,这个问题到底出在哪里? 先谢谢了! [编辑 - 6/9/04 by dingdang] |
|
最新喜欢:![]() |
沙发#
发布于:2004-06-09 15:00
怎么没人理呢 :o
自己顶一下 |
|
板凳#
发布于:2004-06-09 15:04
个人觉得你用DeviceIoControl() 的用法有点问题。
本来想看一下,发现是斜体的,头有点疼了:) 怎么没人理呢 :o |
|
|
地板#
发布于:2004-06-10 17:01
大致看了一下,至少有一下错误
第一:第三行初始化outbBuffer有误,因为你只初始化了数组中的第一个元素 第二:DeviceIoControl() 中输出缓冲区拼写有误 |
|