VC++中用通讯控件开发串行通信程序

VC++中用通讯控件开发串行通信程序

ID:38170916

大小:38.72 KB

页数:6页

时间:2019-05-24

VC++中用通讯控件开发串行通信程序_第1页
VC++中用通讯控件开发串行通信程序_第2页
VC++中用通讯控件开发串行通信程序_第3页
VC++中用通讯控件开发串行通信程序_第4页
VC++中用通讯控件开发串行通信程序_第5页
资源描述:

《VC++中用通讯控件开发串行通信程序》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、本文详细介绍了VisualC++5.0版中有关通讯控件的使用方法,并给出了一个利用该控件编写的简单通用的通信示例程序。关键词:串行通信      通讯控件随着Win95的逐步普及,程序员们越来越愿意在Win95下编程,而VisualC++正成为主要的开发工具。然而用VC在Win95下开发串行通讯程序是程序员们经常会遇到确又令人头痛的一件事,不但要理解许多复杂的API函数,还要掌握多线程编程。令人高兴的是VisualC++中提供的通讯控件帮助我们解决了这一难题,通过对这一控件的正确使用,我们可以轻松地编写出所需的串行通信程序。下面

2、,我们将结合一个具体的例子来说明。本程序的编程环境是Win95和VisualC++5.0。这个编程示例的功能比较强,它可以由用户选定进行传输的通信端口,并设定这个端口的相关参数,包括波特率、数据位、停止位、奇偶校验和流量控制等。还具有发送数据和接收数据的双重功能。一.  在程序中嵌入通讯控件启动VisualC++5.0,利用MFCAppWizard(exe)新建一个项目文件,并命名为CommTest,在AppWizard第一步选择基于对话框的应用程序类型(Dialogbased),在第二步将ActiveXControls复选框选

3、中,表示本程序支持ActiveX控件。其他均接收缺省设置,AppWizard将自动生成一个以对话框为主窗口的应用程序。下面我们将在该程序中加入通讯控件。在ResourceView中打开对话框(IDD_COMMTEST_DIALOG),将其修改为如图一所示的对话框。注意将对话框的语言属性改为Chinese(P.R.C)。单击Project菜单,从菜单中选择AddtoProject,再单击ComponentsandControls,从弹出的对话框中单击RegisteredActiveXControls,然后在列表框中选择Micros

4、oftCommunicationsControl,version5.0,单击OK。这时会询问你是否加入CMSComm类,单击OK,返回后就会看到控件工具条上添加了一个通讯控件(形状如电话机),将其拖放到对话框上,同时注意到Project中新增加了一个类。通过查看类MSComm的源文件mscomm.cpp,我们可以了解这个控件的属性和使用方法,其中的Get…函数可以用来访问该属性的当前值,而Set…函数则用来设置该属性的新值。二.  设置通讯控件的属性值激活通讯控件的属性对话框,一些重要的属性及其说明如表一所示:属 性设定值说 明

5、CommPort2串口号,一般串口为鼠标所用,故用串口2InBufferSize1024接收缓冲区大小InputLen0从接收缓冲区读取的字节数,0表示全部读取InputMode1接收数据的类型,0表示文本类型,1表示二进制类型OutBufferSize1024发送缓冲区大小RThreshold1设定当接收几个字符时触发OnComm事件,0表示不产生事件,1表示每接收一个字符就产生一个事件SThreshold0设定在触发OnComm事件前,发送缓冲区内所允许的最少的字符数,0表示发送数据时不产生事件,1表示当发送缓冲区空时产生O

6、nComm事件Settings9600,n,8,1串口的参数设置,依次为波特率、奇偶校验(n-无校验,e-偶校验,o-奇校验)、数据位数、停止位数表1串口属性及说明上面表中的属性设定值是本例程中所用的值,可根据需要灵活设定。至于其它的属性可采用缺省值,其说明可参考联机帮助文件。通讯控件的工作原理类似与中断方式,当有通讯事件发生时(如发送数据、接收数据等),就会触发OnComm事件,在该事件的处理函数中调用GetCommEvent()函数,通过返回值即可确定是那类事件,再做出相应的处理。三.  主程序的编制首先我们为对话框中的控件

7、添加对应的变量和响应函数。具体做法如表二所示:控件名称控件ID对应变量或函数发送数据编辑框IDC_SENDDATAm_SendData接收数据编辑框IDC_RECEIVEDATAm_   ReceiveData发送按钮IDC_SENDOnSend()清除按钮IDC_CLEAROnClear()通讯控件IDC_MSCOMMm_Comm表2添加控件表再打开ClassWizard,选中IDC_MSCOMM,可看到该控件能响应的消息为OnComm,添加改函数并将其改名为OnComm(),在该函数中添加代码,就能实现对串口事件的处理。其中

8、一个需要注意的问题是函数GetInput()返回的是VARIANT型变量,而在编辑框中显示的是CString型变量,因此必需进行转换。先将VARIANT型变量转换为COleSafeArray型变量,再将其转换为BYTE型数组,然后将数组转换为CString型变量

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

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

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