C++ USB上位机开发

C++ USB上位机开发

ID:43484524

大小:430.78 KB

页数:40页

时间:2019-10-07

C++  USB上位机开发_第1页
C++  USB上位机开发_第2页
C++  USB上位机开发_第3页
C++  USB上位机开发_第4页
C++  USB上位机开发_第5页
资源描述:

《C++ USB上位机开发》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、第10章上位机程序开发在USB设备开发中,上位机程序是用于与用户进行接口的。上位机程序通过USB设备驱动程序和外部的USB硬件进行通信,USB固件程序执行所用的硬件操作。一般来说,根据选择开发平台的不同,可以使用VisualC++、VisualC#和LabVIEW等开发上位机程序。本章首先介绍了VisualC++中控制USB设备的相关函数,接着介绍了VisualC#中读写USB设备的主意函数,最后介绍了在LabVIEW中如何读写USB设备。本章内容包括:VisualC++读写USB设备;Visu

2、alC#读写USB设备;LabVIEW读写USB设备。10.1VisualC++读写USB设备在USB设备开发过程中,上位机程序可以采用广泛应用的VisualC++来实现。对于Cypress公司的EZ-USB系列芯片,其提供了全面的CY3684开发包。在该开发包中,可以使用CYIOCTL控制函数类和CyAPI控制函数类来实现VisualC++环境下对USB设备的读写。10.1.1CYIOCTL控制函数类CYIOCTL控制函数类为Cypress公司的EZ-USBFX2LP系列USB接口芯片,提供了

3、简单的控制接口。在使用Cypress公司提供的驱动程序基础上,只需在主机VisualC++程序中加入头文件cyioctl.h,然后便可以调用相应的控制函数。为了能够使用这些函数,主机程序必须首先获得USB设备的控制句柄。可以通过以下的代码在程序中获得连接到主机的USB设备句柄。CCyUSBDevice*USBDevice=newCCyUSBDevice();//USB设备HANDLEhDevice=USBDevice->DeviceHandle();//打开设备句柄其中,hDevice即为获得的

4、USB设备句柄。在退出程序的时候,需要释放该USB设备句柄,使用如下的语句即可:deleteUSBDevice;在主程序获得USB设备的控制句柄后,便可以调用CYIOCTL控制函数类提供的接口控制函数,下面分别进行介绍。1.中止I/O端点的请求接口IOCTL_ADAPT_ABORT_PIPE中止I/O端点的请求接口IOCTL_ADAPT_ABORT_PIPE用于中止I/O端点的请求,其使用示例代码如下:DWORDdwBytes=0;UCHARAddress=0x82;//地址DeviceIoCo

5、ntrol(hDevice,IOCTL_ADAPT_ABORT_PIPE,//DeviceIoControl函数&Address,sizeof(UCHAR),151NULL,0,&dwBytes,NULL);这里在DeviceIoControl函数中,参数hDevice表示当前USB设备的句柄,参数IOCTL_ADAPT_ABORT_PIPE表示使用该接口进行通信,参数Address为通信的端点号及传输方向。2.断开USB设备接口IOCTL_ADAPT_CYCLE_PORT断开USB设备接口IO

6、CTL_ADAPT_CYCLE_PORT用于将EZ-USB设备从USB总线上断开,并进行重连接。其使用代码示例如下:DWORDdwBytes=0;DeviceIoControl(hDevice,IOCTL_ADAPT_CYCLE_PORT,//DeviceIoControl函数NULL,0,NULL,0,&dwBytes,NULL);其中,参数hDevice表示当前USB设备的句柄,参数IOCTL_ADAPT_CYCLE_PORT表示使用该接口进行通信。3.获得设备地址接口IOCTL_ADAPT

7、_GET_ADDRESS获得设备地址接口IOCTL_ADAPT_GET_ADDRESS用于重新获得EZ-USB设备的地址,其使用示例代码如下:DWORDdwBytes=0;UCHARDevAddr;DeviceIoControl(hDevice,IOCTL_ADAPT_GET_ADDRESS,//DeviceIoControl函数&DevAddr,sizeof(UCHAR),&DevAddr,sizeof(UCHAR),&dwBytes,NULL);其中,参数hDevice表示当前USB设备的句

8、柄,参数IOCTL_ADAPT_GET_ADDRESS表示使用该接口进行通信,DevAddr为返回的USB设备地址。4.获取替换接口IOCTL_ADAPT_GET_ALT_INTERFACE_SETTING获取替换接口IOCTL_ADAPT_GET_ALT_INTERFACE_SETTING用于获得当前EZ-USB设备的可替换接口设置,其使用示例代码如下:DWORDdwBytes=0;UCHARintfc=0;UCHARalt;DeviceIoControl(hDevice,IOCTL_ADAP

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

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

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