自动化在线 自动化在线 数据加载中... 数据加载中...
首页 | 下载系统 | 供求信息 | 新闻系统 | 企业信息 | 产品信息 | 展会信息 | 论坛
首页 > 新闻系统 > 电子技术 > 方案 > 微处理器与DSP
 
在VC++中用ActiveX控件实现与单片机的串行通信
作者:李志刚 王以法   发布时间:2007-10-28 06:49:30 来源:单片机及嵌入式系统应用/ 繁体版
欢迎访问www.autooo.net

  在应用系统中,经常需要通过RS-232串行口与微机进行通信。目前在各种操作系统中,Microsoft的Windows较为常见,而且大多为Windows95/98等32位平台。以往在Windows平台上的多使用其提供的API函数来实现,这种方法使用起来需要许多底层设置,因而较为繁琐,并且难以理解。Microsoft推出的ActiveX技术提供了另外一种实现串行通信的方法。这种方法不仅相对较为简单,而且非常实用。尤其是Visual C++这种可视化面向对象的编程环境中,可以真正把串口看作一个对象,编程时只需简单的设置,理解起来也很容易。下面详细讨论Microsoft提供的串行通信的使用方法。该控件的相应文件是MSCOMM32.OCX,以下简称为MSCOMM控件。

  一、MSCOMM控件

  MSCOMM控件,即Microsoft Communication Control,是Microsoft为简化Windows下串行通信编程而提供的ActiveX控件。它提供了一系列标准通信命令的使用接口,利用它可以建立与串口的连接,并可以通过串口连接到其他通信 设备(如调制解调器),发出命令,交换数据以及监视和响应串行连接中发生的事件和错误。MSCOMM控件可用于创建电话拨号程序、串口通信程序和功能完备的终端程序。

  MSCOMM控件提供了两种处理通信的方式:

  (1)事件驱动方式。当通信事件发生时,MSCOMM控件会触发OnComm事件,调用者可以捕获该事件,通过检查其CommEvent属性便可确认发生的是哪种事件或错误,从而进行相应的处理。这种方法的优点是响应及时、可靠性高。

  (2)查询方式。在程序的每个关键功能之后,可以通过检查CommEvent属性的值来查询事件和错误。如果应用程序较小,这种方法可能更可取。例如,如果写一个简单的电话拨号程序,则没有必要每接收1个字符都产生事件,因为惟一等待接收的字符是调制解调器的"确定"响应。

  在使用MSCOMM控件时,1个MSCOMM控件只能同时对应1个串口。如果应用程序需要访问和控件多个串口,那么必须使用多个MSCOMM控件。

  在VC++中,MSCOMM控件只对应着1个C++类--CMSComm。由于MSCOMM控件本身没有提供方法,所以CMSComm类除了Create()成员函数外,其他的函数都是Get/Set函数对,用来获取或设置控件的属性。MSCOMM控件也只有1个OnComm事件,用来向调用者通知有通信事件发生。

  MSCOMM控件有许多很重要的属性,限于篇幅只给出几个较为重要和常用的属性,如表1所列。

表1 MSCOMM控件的重要属性

MSCOMM控件的重要属性

  二、编程实现

  从表1可以看到,MSCOMM可以两种不同的形式接收数据,即以文本形式和以二进制形式。用MSCOMM控件进行字符数据传输的文献和资料可以找到很多,在Microsoft的MSDN(Microsoft Developer Network)中就可以找到这样的例子,即VCTERM。可是几乎所有以单片机为核心的测量系统所得到的原始数据都是二进制形式的,所以,以二进制形式传输数据将是最为直接而又简洁的办法。不仅如此,由于MSCOMM控件在文本形式下,其传输的是宽字符格式的字符,要想得到有用信息,还要额外处理。因此本文主要讨论在二进制形式下的使用方法。

  在VC++6.0中,用APPWizard可以生成三种应用程序:单文档(SDI)、多文档(MDI)和基于对话框的应用程序。为了说明问题和省去不必要的细节,下面以基于对话框的应用程序为例。

  1.创建一个基于对话框的应用程序

  打开VC++6.0集成开发环境,选择菜单项File/New,在出现的对话框中选中Projects标签中的MFC AppWizard(exe),然后在Project Name框中填入MyCOMM(可根据需要命名),之后点OK按钮。在接着出现的对话框中选中Dialog Based项,然后点NEXT按钮。以下的各对话框都按照缺省设置,这样即可生成一个基于对话框的应用程序。在资源编程器中会出现其对话框模板。

  2.插入MSCOMM控件

  选择菜单项Project/Add to project/Components and Controls…,在弹出的对话框中选择Registered ActiveX Controls文件夹下的Microsoft Communications Control,version6.0,然后按下Insert按钮,接着会弹出一个对话框,提示生成的类名及文件名,按OK按钮即可实现控件的插入。这时在对话框的控件工具栏 上会多出一个电话机模样的控件图标,Workspace的Classview中也多了一个类CMSComm。  

欢迎访问www.autooo.net
 1/3    1 2 3 ›› ›|
  
评论】【加入收藏夹】【 】【打印】【关闭
来顶一下
近回首页
返回首页
※ 相关信息
无相关信息
关键:

※ 其他信息
单片机协处理器在电力系统中的应用
基于TMS34020的图形显示处理模块的设计
发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

 
 搜索新闻
 最新新闻
·航天测控公司推出PXI-E模块
·2009第六届中国唐山国际工业
·FL 引领KVM市场潮流---全新推
·2008第三届中国(郑州)国际
·伺服器维修,伺服驱动器维修,
·新售经济型16路无纸记录仪
·2008第二届中国郑州城市供热
·华北工控新型机箱获国家知识
·华北工控加入深圳市质量协会
·华北工控工业平板电脑,服务
 热点新闻 
·PLC课程设计课题——三层电梯
·先进控制技术及应用
·CK6432(FANUC-0TD)数控车床
·变频器原理
·一般变频器常见故障及处理
·集成温度传感器AD590及其应用
·基于PLC的机械手控制设计
·谈步进电机的PLC控制方法
·3G无线接入网IP化传送承载方
·浅谈单相电度表的反转
数据加载中..

网站地图
Autooo.Net 版权所有
Copyright © 2007 All rights reserved