您的位置 首页 培训

在VC++顶用ActiveX 控件完成与单片机的串行通讯

在单片机应用系统中,经常需要通过RS-232串行口与微机进行通信。目前在各种操作系统中,Microsoft的Windows较为常见,而且大多为Windows95

在单片机运用体系中,常常需求经过RS-232串行口与微机进行通讯。现在在各种操作体系中,Microsoft的Windows较为常见,并且大多为Windows95/98等32位渠道。以往在Windows渠道上的串行通讯多运用其供给的API函数来完成,这种办法运用起来需求许多底层设置,因而较为繁琐,并且难以了解。Microsoft推出的ActiveX技能供给了别的一种完成串行通讯的办法。这种办法不只相对较为简略,并且十分有用。尤其是Visual C++这种可视化面向目标的编程环境中,能够真实把串口看作一个目标,编程时只需简略的设置,了解起来也很简略。下面具体评论Microsoft供给的串行通讯ActiveX控件的运用办法。该控件的相应文件是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控件的重要特点

特点 说 明
CommPort 通讯端口号
Settings 以字符串方式表明的波特率、奇偶校验、数据位
PortOpen 通讯端口的状况,翻开或是封闭
Input 接纳数据
Output 发送数据
InputMode 接纳数据的类型:0为文本;1为二进制

二、编程完成

  从表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按钮。在接着呈现的对话框中选中DialogBased项,然后点NEXT按钮。以下的各对话框都依照缺省设置,这样即可生成一个根据对话框的运用程序。在资源编程器中会呈现其对话框模板。

2.刺进MSCOMM控件

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

  此刻即可将MSCOMM控件参加到对话框模板,参加办法与其他控件相同。然后还要在对话框类中相应参加一个成员变量,此处咱们将其命名为 m_comm。参加办法为:首要,在对话框模板中,用鼠标右键点击该控件,挑选ClassWizard,在呈现的对话框的Member Variables标签的Control Ids项下,选中IDC_MSCOMM1。然后,按Add Variable…按钮,在呈现的对话框的Member Variable Name项中输入m_comm。最终,按OK按钮即可。

声明:本文内容来自网络转载或用户投稿,文章版权归原作者和原出处所有。文中观点,不代表本站立场。若有侵权请联系本站删除(kf@86ic.com)https://www.86ic.net/changshang/peixun/254485.html

为您推荐

联系我们

联系我们

在线咨询: QQ交谈

邮箱: kf@86ic.com

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

返回顶部