vs2010u口api函数使用流程

vs2010u口api函数使用流程

ID:35478418

大小:63.40 KB

页数:12页

时间:2019-03-25

vs2010u口api函数使用流程_第1页
vs2010u口api函数使用流程_第2页
vs2010u口api函数使用流程_第3页
vs2010u口api函数使用流程_第4页
vs2010u口api函数使用流程_第5页
资源描述:

《vs2010u口api函数使用流程》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、上位机U口使用(USB2.0芯片)一、函数CCyUSBDevice*USBDveice=newCCyUSBDevice(handle);1.USBDevice->open(i),USBDevice->isopen(i)打开i号设备2.USBDevice->EndPointCount()获取用到的断点数口3.USBDevice->EndPointOf(0X82)直接使用指定的端点2,in传输USBDevice->EndPointOf(0X02)直接使用指定的端点2,out传输4.USBDevice—>DcviccCount()

2、返回连接到电脑的USB设备个数,从0,1,2.o开始命名5.USBDevice—>DeviceName()返冋USB设备名称,也就是固件中StringDscr2:字段字符串6.USBDevice—>VendorID返回USB设备VID7.USBDevice—>ProductTD返回USB设备PID8.BeginDataXfer(PUCHARbuf,LONGlen,OVERLAPPED*ov)读取len个数据到buf里9.WaitForXfcr(OVERLAPPED*ov,ULONGtout)等待数据发送完成10.Finish

3、DataXfer(PUCHARbuf,LONGlen,OVERLAPPED*ov,PUCHARpXmiBuf,CCyIsoPk11nfos=NULL)BeginDataXfer(),>WaitForXfer()和>FinishDataXfer()。这三个函数就完成一个完整的块传输。第一个启动块传输,第二个等待数据返回,第三句是完成块传输OVERLAPPED结构类型声明如下:typedefstructOVERLAPPED{ULONG.PTRInternal;//操作系统保留,指出一个和系统相关的状态ULONG.PTRInter

4、nalHigh;//指岀发送或接收的数据长度union{struct{DWORDOffset;//文件传送的开始位置DWORDOffsctlligh;//文件传送的字节偏移量的高位字};PVOIDPointer;//指针,指向文件传送位置};HANDLEhEvent;〃指定一个I/O操作完成后触发的事件}OVERLAPPED,^LPOVERLAPPED;OVERLAPPED结构主耍在一些重叠TO等异步操作中起作用。即:你需要操作系统传递一批数据,于是填了一个overlapped的订单,订单上写着从哪里(数据的偏移位置)开始传

5、输,于是你去干别的事去了。系统完成传输就打个电话(激活hEvent)叫你验收,你看到overlapped订单上系统写着的传输的数据数量验收接收的数据二、一般流程1>打开设备:USBDevice_>Open(Deviceindex);2、获得USB批量传输的断点:OutEndpt二USBDevice->EndPoints;3、确定设备打开则创建线程函数:AfxBeginThread(XferLoopw,this);4、打开事件对彖:outOvLap.hEvent=CrcatcEvcnt(?

6、YUSB_OUT");inOvLap.hEvent二CreateEvent(NULL,false,false,"CYUSBTN");5、开启异步传输并完成数据的传输:BeginDataXfer(data,outlen,&outOvLap);WaitForXfer(&outOvLap,500);FinishDataXfcr(data,outlcn,&outOvLap,outContcxt);6、关闭设备CloseHandle(outOvLap.hEvent);delete[]data;2.1数据传输将上述步骤5详解。2・1・:

7、L接收数据:1.UCHAR*inContext二USBDevice->BulkInEndPt->BeginDataXfer(inbuf,be,&inOvLap);//开始接收数据到2.USBDevice->BulkOutEndPt->WaitForXfer(&outOvLap,100);//等待发送完成3.Success=USBl)evice->BulkOutEndPt->Finishl)ataXfer(outbuf,be,&out0vLap,outContext);//这里才真正将outbuf里的数据发送出4.CloseH

8、andle(outOvLap.hEvent);//关闭句柄,释放资源2.1.2发送数据UCHAR*outContext=USBDevice->BulkOutEndPt->BeginDataXfer(outbuf,be,&outOvLap);//开始发送数据到USBDcvice->BulkI

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。