打印

求usb接口读写的资料

[复制链接]
2109|10
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
wangzsa|  楼主 | 2010-11-9 19:08 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
文档、代码均可。
沙发
zhuww| | 2010-11-9 19:10 | 只看该作者
你可以看看cypress公司EZUSB芯片AN2131QC全部的文档

使用特权

评论回复
板凳
ledone| | 2010-11-9 19:11 | 只看该作者
USBFS(Full Speed)设备数据手册.pdf (338.8 KB) 给你个CY8C24x94的usb中文资料,见附件。

使用特权

评论回复
地板
zhanglli| | 2010-11-9 19:15 | 只看该作者
你可以看看cypress公司EZUSB芯片AN2131QC全部的文档
zhuww 发表于 2010-11-9 19:10
对,有一个叫做EzMr的主机程序,是一个VC++程序

使用特权

评论回复
5
zhuww| | 2010-11-9 19:30 | 只看该作者
嗯,上面有访问这个芯片的全部程序

使用特权

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

使用特权

评论回复
7
guoyt| | 2010-11-9 19:39 | 只看该作者
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
);

使用特权

评论回复
8
jack_shine| | 2010-11-10 09:20 | 只看该作者
路过学习

使用特权

评论回复
9
mochou| | 2010-11-10 15:12 | 只看该作者
有没有  stm32  usb host  的资料,给发一份,mochou99@sina.cn.

使用特权

评论回复
10
mochou| | 2010-11-10 15:12 | 只看该作者
有没有  stm32  usb host  的资料,给发一份,mochou99@sina.cn.

使用特权

评论回复
11
大秦正声| | 2010-11-10 17:34 | 只看该作者
可以考虑用:
cy7c68013
c8051f320
c8051f340
stm32f103
等都很不错!

我的c8051f单片机开发工具、usb、RF 、CAN、NET学习板
http://c8051f-stm32f.5d6d.com
yang96381@163.com
手机:13002928013(杨工)

使用特权

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

本版积分规则

914

主题

9040

帖子

5

粉丝