新闻中心

EEPW首页 > 嵌入式系统 > 设计应用 > 基于VC的USB2.0数据采集系统设计

基于VC的USB2.0数据采集系统设计

作者:时间:2011-11-18来源:网络收藏
3客户应用软件

本文引用地址:http://www.eepw.com.cn/article/150051.htm

  开发应用软件的底层,需要极好的兼容性和稳定性。对于广大用户而言,与的交互是通过应用程序实现的,因此,如何出运行效率高、界面友好、稳定性高的应用程序是至关重要的因素。。++是开发Windows应用程序的主流开发工具,充分利用它的面向对象特性的C++和功能强大的MFC来开发专业级的应用程序,MFC是一个强大的、扩展的C++类层次结构,它能使开发Windows应用程序变得更加容易,而且在整个Windows家族中都是兼容的。Lab-Windows/CVI是以ANSI c为核心的交互式虚拟仪器开发环境,它将功能强大的C语言与测控技术有机结合,具有灵活的交互式编程方法和丰富的库函数。本就是采用Visual C++6.0和LabWindows/CV提供的Graph控件来开发应用程序的,应用程序的主要功能有:打开/关闭USB设备,检测USB设备,实现向USB设备发送指定数量的数据。

  下面是各部分的一些代码及说明:

  1)查找、打开USB设备

  

  2)线程(Thread)

  线程就是程序中单独顺序的流控制。线程是进程中的实体,一个进程可以拥有多个线程,一个线程必须有一个父进程。线程不拥有资源,只有运行必须的一些数据结构;它与父进程的其他线程共享该进程所拥有的全部资源。图3是线程的状态转换图。

  

线程的状态转换图

  线程被分为两种:用户界面线程和工作线程(又称为后台线程)。本程序主要使用工作线程来执行数据的读写操作等,它与用户界面线程的区别是不用从CWinThread类派生来创建,对它来说最重要的是如何实现工作线程任务的运行控制函数。

  对于工作线程来说,启动一个线程,首先需要编写一个希望与应用程序的其余部分并行运行的函数,如Fun(),接着定义一个指向CWinThread对象的指针变量*pThread,调用AfxBeginThread(Fun,param,priori-ty)函数,返回值赋给pThread变量的同时启动该线程执行上述Funl()函数,其中Fun是线程要运行的函数的名字,亦即控制函数的名字,param是准备传送给线程函数Fun的任意32位值,priority是定义该线程的优先级别,是预定义的常数,可参考MSDN。

  本程序设计中的关键代码如下:

  



评论


相关推荐

技术专区

关闭