版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、用VisuaBasic的Communications控件实现串行通信1. 引言VisualBasic(以下简称VB)是一般程序设计人员在Windows环境下最常用的编程语言。在VB中除了可以调用API函数,完成串行通信的任务之外,更常用、更简便的是使用提供VB的Communications控件(以下简称Comn控件)来完成各种串行通信任务。2. VB的Comr控件3. 1Comm控件的添加Comm控件并不是VB的基本控件,刚进入VB环境中时,在控件工具箱上是找不到Comn控件的,要使用它必须另行添加,添加的方法如下:用鼠标右击VB的控件工具箱,在弹出菜单中选择部件菜单项,会出现一个部件”对话框
2、,勾选其中的“MicrosoftCommControl6.0选项,在VB的控件工具箱中会出现一个电话机形状的控件图标,它就是进行串行通信要使用的Comr控件。4. 2Comm控件概述Comm控件用于进行串行通信,既可以用来提供简单的串行端口通信功能,也可以用来创建功能完备的、事件驱动的高级通信工具。Comm空件提供了一系列标准通信命令的使用界面。使用它可以建立与串行端口的连接,通过串行端口连接到其他通信设备(如MODEM,发出命令,交换数据以及监视和响应串行连接中发生的事件和错误。利用它可以进行诸如拨打电话、监视串行端口的输入数据乃至创建功能完备的终端程序等功能。5. 3Comm空件的重要属性
3、DCommPor:t设置或返回通信端口号,其取值范围为199,缺省为1。当把这个属性设置成1,表示利用COM1端口进行串行通信。在程序运行时也可以读取该属性,用来了解串行端口的使用情况。2)Settings:用字符串的形式设置或返回串行通信的帧格式。例如将Settings设置为9600,n,8,1,表示采用的串行通信波特率是9600、无奇偶校验、数据位是8位、1位停止位。(3)PortOpen:设置或打开通信端口的状态,打开和关闭端口。在开始进行串行通信前,要把它设置为True,表示打开通信端口;通信结束后,要把它设置成Flase,表示关闭通信端口。4) Input:从输入缓冲区读取数据,并删
4、除输入缓冲区中的字符。当串行端口接收到数据后,就把它放入输入缓冲区,在程序中利用Input属性可以读取这些数据。5) InputLen:设置或返回接收缓冲区内用Input读入的个数。若取0,则INPUT读取整个缓冲区的内容。6)InputMode:设置或返回Input属性取回的数据的类型。0:(缺省)数据通过Input属性以文本形式取回;1:数据通过Input属性以二进制形式取回。7)InBufferSize:设置或返回接收缓冲区中的字符数。可以通过设置该属性为0来清除接收缓冲区。8)Output:向发送缓冲区传送一字符串数据。9)OutBufferSize:设置或返回发送缓冲区大小,缺省为5
5、12字节。10) OutBufferCount:返回发送缓冲区内等待发送的字符数,可用来清空缓冲区。lDSthreshold:设置或返回发送缓冲区中允许的最小字符数。当该属性是0(缺省)时,数据发送不会产生OnComm事件;当该属性为1时,每发送一个字符都会产生OnCom事件。12)Rthreshold:设置或返回要接收的字符数。当该属性为0(缺省),数据接收不会产生OnCom事件;当该属性为1时,每接收一个字符都会产生OnCom事件。13)CommEven:t返回最近的通信事件或错误,它通常可能是下面的一些取值。ComEventBreaklOOl;接收到一个中断信号ComEventFrame
6、l004;帧错误ComEventRxover1008;接收缓冲区溢出ComEventRxParity1009;奇偶校验错误ComEvSendl在传输缓冲区中有比Sthreshold数少的字符ComEvReceive2;收到Rthreshold个字符。该事件将持续产生直到用;Input属性从接收缓冲区中删除数据ComEvCTS3;CTS线的状态发生变化ComEvDSR4;DSR线的状态从1至U0变化ComEvCD5;载波信号发生变化ComEvEOF7;收到文件结束(ASCH字符为1AH字符2.4Comm控件的事件Comm控件只有一个事件,即OnCom事件。当发生接收错误、因收至数据使得接收缓冲区
7、的字符数等于或多于规定值、因发送数据使得发送缓冲区中的字符数少于规定数、从MODE传递来的各信号线发生变化等等,都会产生OnCom事件。所以当发生OnCom事件后,在其处理程序中,首先要检查Comn控件的CommEven属性,然后根据不同的情况分别进行处理。6. 一个较完备的串行通信程序在这个较完备的程序中,可以允许用户设置串行通信端口、波特率、数据位的位数、校验方式、停止位位数等串行通信的基本参数。当用户进行选择后单击确定按钮,就可以进行串行数据的发送和接收,程序的主界面如图1所示。图1较完备的串行通信程序主界面演练这个程序时,需要将串口的TXD和RXD短接,在图1左边的文本框中输入要发送的
8、字符,单击发送按钮,就会把这个文本框中的内容发送出去;当串口接收到这个串行数据后,就会把收到的数据显示在右边的文本框中。在窗体的Load事件处理程序中放置如下代码:PrivateSubForm_Load()Optionl.Value=True0ption3.Value=Trueoption6.Value=Truecommand2.Enabled=FalseEndSub在确定按钮的点击事件处理程序中放置如下代码:PrivateSubCommandl_Click()DimfOAsStringfO=Combo1.TextIf0ption3.Value=TrueThenfO=fO+,n如果用户选择无校
9、验,则fO添上,nEndIfIf0ption4.Value=TrueThenfO=fO+,o如果用户选择奇校验,则fO添上,oEndIfIf0ption5.Value=TrueThenfO=fO+,e如果用户选择偶校验,则fO添上,孑EndIf位数添上用户选择的数据位fO=fO+,+Combo2.TextfOIf0ption6.Value=TrueThenfO=fO+,1如果用户选择1位停止位,则fO添上,1EndIfIfOption?.Value=TrueThenfO=fO+,1.5如果用户选择1.5位停止位,则fO添上,1.5EndIfIf0ption8.Value=TrueThenfO=
10、fO+,2如果用户选择2位停止位,则fO添上,2EndIfMSComml.Settings=fO把fO送给通信控件的settings属性If(Optionl.Value=True)And(MSCommlmport=2)ThenMSCommlmPort=1EndIfIf(0ption2.Value=True)And(MSCommlmport=1)ThenMSCommlmPort=2EndIfIfMSComml.PortOpen=FalseThenMSComml.PortOpen=True打开串行口EndIfMSComml.InputLen=1每次从接收缓冲区读取一个字符MSComml.RThre
11、shold=1每收到一个字符就引发“OnComnT事件Command2.Enabled=TrueEndSub在发送按钮的点击事件处理程序中放置如下代码:PrivateSubCommand2_Click()MSComml.Output=Textl.TextEndSub在窗体的UnLoad事件处理程序中放置如下代码:PrivateSubForm_Unload(CancelAsInteger)IfMSComml.PortOpen=TrueThenMSComml.PortOpen=False如果关闭窗体时串行端口是打开的,就把它关闭EndIfEndSub在Comr控件的OnCom事件处理程序中放置如下
12、代码:PrivateSubMSCommlOnComm()SelectCaseMSCommlmEventCasecomEvReceiveTextl.Text=MSComml.Input如果是收到规定的字符数,就在右边的文本框中显示出来CasecomEventBreakMsgBox线路中断,vbExclamation,“error!”如果收到中断信号,就用对话框显示线路中断信息CasecomEventFrame,comEventRxOver,comEventRxParityMsgBox数据接收发生错误!,vbExclamation,error!如果收到的数据格式错误、接收缓冲区溢出、接收的数据奇偶校验错,都用对话框显示数据接收发生错误!信息EndSelectEndSub在清除按钮的点击事件处理程序中放置如下代码:PrivateSubCommand3_Clic
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年版卫生院防疫工作聘用合同书3篇
- 2024版设备维修与技术支持合同3篇
- 2025年度文化产业担保合同会计处理及文化创意产业扶持3篇
- 年度汽车电子竞争策略分析报告
- 二零二五版集装箱运输保险代理服务合同范本3篇
- 2025年度互联网医疗信息服务合同纠纷解决书模板4篇
- 贪吃蛇课程设计论文c
- 2025年酒店住宿服务销售合同修订与客户满意度提升3篇
- 二零二五年都市白领租房代理服务合同样本3篇
- 2025年水电站经营权承包与电力销售收入分成合同2篇
- 企业会计准则、应用指南及附录2023年8月
- 谅解书(标准样本)
- 2022年浙江省事业编制招聘考试《计算机专业基础知识》真题试卷【1000题】
- 认养一头牛IPO上市招股书
- GB/T 3767-2016声学声压法测定噪声源声功率级和声能量级反射面上方近似自由场的工程法
- GB/T 23574-2009金属切削机床油雾浓度的测量方法
- 西班牙语构词.前后缀
- 动物生理学-全套课件(上)
- 河北省衡水市各县区乡镇行政村村庄村名居民村民委员会明细
- DB32-T 2665-2014机动车维修费用结算规范-(高清现行)
- 智能消防设备公司市场营销方案
评论
0/150
提交评论