- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
VC中用通信控件开发串行通信程序
VC++中用通讯控件开发串行通信程序?曾明???摘???要:???????本文详细介绍了Visual?C++5.0版中有关通讯控件的使用方法,并给出了一个利用该控件编写的简单通用的通信示例程序。关键词:串行通信?????????????通讯控件随着Win?95的逐步普及,程序员们越来越愿意在Win95下编程,而Visual?C++正成为主要的开发工具。然而用VC在Win95下开发串行通讯程序是程序员们经常会遇到确又令人头痛的一件事,不但要理解许多复杂的API函数,还要掌握多线程编程。令人高兴的是Visual?C++中提供的通讯控件帮助我们解决了这一难题,通过对这一控件的正确使用,我们可以轻松地编写出所需的串行通信程序。下面,我们将结合一个具体的例子来说明。本程序的编程环境是Win95和Visual?C++5.0。这个编程示例的功能比较强,它可以由用户选定进行传输的通信端口,并设定这个端口的相关参数,包括波特率、数据位、停止位、奇偶校验和流量控制等。还具有发送数据和接收数据的双重功能。?一.?????在程序中嵌入通讯控件启动Visual?C++5.0,利用MFC?AppWizard(exe)新建一个项目文件,并命名为CommTest,?在AppWizard第一步选择基于对话框的应用程序类型(Dialog?based),在第二步将ActiveX?Controls复选框选中,表示本程序支持ActiveX控件。其他均接收缺省设置,AppWizard将自动生成一个以对话框为主窗口的应用程序。下面我们将在该程序中加入通讯控件。在Resource?View中打开对话框(IDD_COMMTEST_DIALOG),将其修改为如图一所示的对话框。注意将对话框的语言属性改为Chinese(P.R.C)。???图?1?对话框界面?单击Project菜单,从菜单中选择Add?to?Project,再单击Components?and?Controls,从弹出的对话框中单击Registered?ActiveX?Controls,然后在列表框中选择Microsoft?Communications?Control,version?5.0,单击OK。这时会询问你是否加入CMSComm类,单击OK,返回后就会看到控件工具条上添加了一个通讯控件(形状如电话机),将其拖放到对话框上,同时注意到Project中新增加了一个类。通过查看类MSComm的源文件mscomm.cpp,我们可以了解这个控件的属性和使用方法,其中的Get…函数可以用来访问该属性的当前值,而Set…函数则用来设置该属性的新值。?二.?????设置通讯控件的属性值?激活通讯控件的属性对话框,一些重要的属性及其说明如表一所示:?属??性??设定值??说??明??CommPort??2??串口号,一般串口1为鼠标所用,故用串口2??InBufferSize??1024??接收缓冲区大小??InputLen??0??从接收缓冲区读取的字节数,0表示全部读取??InputMode??1??接收数据的类型,0表示文本类型,1表示二进制类型??OutBufferSize??1024??发送缓冲区大小??RThreshold??1??设定当接收几个字符时触发OnComm事件,0表示不产生事件,1表示每接收一个字符就产生一个事件??SThreshold??0??设定在触发OnComm事件前,发送缓冲区内所允许的最少的字符数,0表示发送数据时不产生事件,1表示当发送缓冲区空时产生OnComm事件??Settings??9600,n,8,1??串口的参数设置,依次为波特率、奇偶校验(n-无校验,e-偶校验,o-奇校验)、数据位数、停止位数?表1?串口属性及说明?上面表中的属性设定值是本例程中所用的值,可根据需要灵活设定。至于其它的属性可采用缺省值,其说明可参考联机帮助文件。?通讯控件的工作原理类似与中断方式,当有通讯事件发生时(如发送数据、接收数据等),就会触发OnComm事件,在该事件的处理函数中调用GetCommEvent()函数,通过返回值即可确定是那类事件,再做出相应的处理。?三.?????主程序的编制?首先我们为对话框中的控件添加对应的变量和响应函数。具体做法如表二所示:?控件名称??控件ID??对应变量或函数??发送数据编辑框??IDC_SENDDATA??m_SendData?接收数据编辑框??IDC_RECEIVEDATA??m_?ReceiveData??发送按钮??IDC_SEN
您可能关注的文档
最近下载
- 急性冠脉综合征的护理.pptx VIP
- 工学一体化课程《小型网络安装与调试》工学一体化课程教学进度计划.pptx VIP
- 土石方工程安全培训课件(汇编).ppt VIP
- 2024年全球及中国电子级全氟聚醚(PFPE)行业头部企业市场占有率及排名调研报告.docx
- 城市社区建设中的居民自治问题及其对策研究——以岳阳市社区为例.docx VIP
- 河北省承德市事业单位招聘考试(职业能力倾向测验)题库审定版.docx VIP
- 最新苏教版五年级数学上册单元测试题及答案全套8全.pdf VIP
- 危险化学品安全风险智能化管控平台数据交换规范 2025版.pdf VIP
- 市政工程 室外管道工程施工.ppt VIP
- 口腔正畸健康知识讲座.pptx VIP
文档评论(0)