打印

usb接口读写的资料

[复制链接]
10315|7
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
pangb|  楼主 | 2011-2-12 21:37 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
文档、代码均可。
沙发
小小猫咪| | 2011-2-12 21:52 | 只看该作者
你可以看看cypress公司EZUSB芯片AN2131QC全部的文档,有一个叫做EzMr的主机程序,是一个VC++程序,上面有访问这个芯片的全部程序

使用特权

评论回复
板凳
pangb|  楼主 | 2011-2-12 22:06 | 只看该作者
多谢,还有吗?

使用特权

评论回复
地板
juventus9554| | 2011-2-12 22:33 | 只看该作者
ddk下有不少例子
思路大体如下:
<1> .   打开设备,获取设备句柄CreateFile( "\\\\.\\ezusb-0 ",.......);
<2> .   设置Interface;获取   PipesInfo;
<3> .   用   Bulk   或其它方式传输数据;
<4> .   关闭设备。

使用特权

评论回复
5
小小猫咪| | 2011-2-12 22:58 | 只看该作者
HANDLE   OpenDevice(LPGUID   pGuid,   char   *outNameBuf)
{
HANDLE   hOut   =   INVALID_HANDLE_VALUE;
HDEVINFO   hardwareDeviceInfo;
SP_INTERFACE_DEVICE_DATA   deviceInfoData;

hardwareDeviceInfo   =   SetupDiGetClassDevs   (pGuid,   NULL,   NULL,   (DIGCF_PRESENT   |   DIGCF_INTERFACEDEVICE));

deviceInfoData.cbSize   =   sizeof   (SP_INTERFACE_DEVICE_DATA);

if   (SetupDiEnumDeviceInterfaces   (hardwareDeviceInfo,   0,   pGuid,   0,   &deviceInfoData))
{
hOut   =   OpenOneDevice   (hardwareDeviceInfo,   &deviceInfoData,   outNameBuf);

if   (hOut==INVALID_HANDLE_VALUE)
return   INVALID_HANDLE_VALUE;
}

DWORD   reErr   =   GetLastError(   );

SetupDiDestroyDeviceInfoList   (hardwareDeviceInfo);

return   hOut;
}

HANDLE   OpenOneDevice(HDEVINFO   HardwareDeviceInfo,   PSP_INTERFACE_DEVICE_DATA   DeviceInfoData,   char   *devName)
{
PSP_INTERFACE_DEVICE_DETAIL_DATA   functionClassDeviceData   =   NULL;
ULONG   predictedLength   =   0;
ULONG   requiredLength   =   0;
HANDLE   hOut   =   INVALID_HANDLE_VALUE;

//   allocate   a   function   class   device   data   structure   to   receive   the   goods   about   this   particular   device.
SetupDiGetInterfaceDeviceDetail   (HardwareDeviceInfo,   DeviceInfoData,   NULL,   0,   &requiredLength,   NULL);

predictedLength   =   requiredLength;
//   sizeof   (SP_FNCLASS_DEVICE_DATA)   +   512;

functionClassDeviceData   =   (PSP_INTERFACE_DEVICE_DETAIL_DATA)malloc   (predictedLength);
functionClassDeviceData-> cbSize   =   sizeof   (SP_INTERFACE_DEVICE_DETAIL_DATA);

//   Retrieve   the   information   from   Plug   and   Play.
if   (!SetupDiGetInterfaceDeviceDetail(
HardwareDeviceInfo,
DeviceInfoData,
functionClassDeviceData,
predictedLength,
&requiredLength,
NULL))
{
free(functionClassDeviceData);
return   INVALID_HANDLE_VALUE;
}

strcpy(devName,functionClassDeviceData-> DevicePath);
printf( "Attempting   to   open   %s\n ",   devName);

hOut   =   CreateFile   (functionClassDeviceData-> DevicePath,
GENERIC_READ   |   GENERIC_WRITE,
FILE_SHARE_READ   |   FILE_SHARE_WRITE,
NULL,
OPEN_EXISTING,
0,
NULL);

if   (INVALID_HANDLE_VALUE   ==   hOut)
printf( "FAILED   to   open   %s\n ",   devName);

free(functionClassDeviceData);

return   hOut;
}


HANDLE   hDEV   =   OpenDevice((LPGUID)&GUID_BUS_UMSS,   completeDeviceName);
if   (hDEV==INVALID_HANDLE_VALUE)
return;

DeviceIoControl   (
hDEV,
IOCTL_Vender_VCMD_WRITE,
buf,
31,   //CBW
buf,
13,   //   Data   +   CSW
(LPDWORD)&nBytes,
NULL
);

使用特权

评论回复
6
Go_PSoC| | 2011-2-14 17:26 | 只看该作者
CY网站上很丰富,呵呵

使用特权

评论回复
7
982927郝四| | 2011-3-5 18:18 | 只看该作者
多谢,还有吗?

使用特权

评论回复
8
xiaobangfu| | 2011-3-6 09:52 | 只看该作者
多谢

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

701

主题

7643

帖子

6

粉丝