利用vb通讯控件实现串行通讯

利用vb通讯控件实现串行通讯

ID:7782617

大小:49.50 KB

页数:6页

时间:2018-02-25

利用vb通讯控件实现串行通讯_第1页
利用vb通讯控件实现串行通讯_第2页
利用vb通讯控件实现串行通讯_第3页
利用vb通讯控件实现串行通讯_第4页
利用vb通讯控件实现串行通讯_第5页
资源描述:

《利用vb通讯控件实现串行通讯》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库

1、串行通讯6利用VB通讯控件实现串行通讯一、引言每台计算机都有多个串行端口,它们提供了计算机与外部串行设备之间的数据传输通道。要完成数据的传输,对Windows而言,可以使用标准的WindowsAPI函数发送和接收数据。但对一般应用人员来说,学习和应用API进行编程,可不是一件简单的事情。所以从VisualBasic5.0开始,VB提供了面向对象的设计方法和功能强大的串行通讯控件,而且VB本身具有使用简单方便、用户界面友好、编程快捷直观、实用性强等诸多优点,利用它可直接开发出功能强大的串行通讯控制软件。将本文介绍的方法与具体的应用结合

2、起来,可编写出完整的实用的控制软件,应用到各种实际场合中。二、VB通讯控件简介VB提供的串行通讯控件Mscomm屏蔽了通讯过程中的底层操作,在程序设计时只需设置、监控Mscomm控件的属性和事件来完成对串口的初始化和数据的输入输出工作,使用起来相当简单、方便。其主要属性如下:1、CommPort该属性设置或返回通讯端口号。设计时取值范围为1~16,缺省为1。如设置为2,即表示当前通讯端口是Com2。2、Settings该属性设置或返回串口通讯参数,它是一个含有四部分内容的字符串,格式为:Mscomm.Settings=“x1,x2,

3、x3,x4”。其缺省值为“9600,N,8,1”表示停止位位数,取值为1,1.5,2。表示数据位位数,取值为4,5,6,7,8。表示校验方式,取值为N=不校验,E=偶校验,O=奇校验,S=空格校验,M=符号校验。表示波特率,取值为1200,2400,9600等。3、PortOpen该属性设置或返回串行端口的状态,也用来打开和关闭串口,取值为:True=打开串口,False=关闭串口。串行通讯64、Input它返回并删除接收缓冲区中的数据流,运行时只读。5、InputLen该属性设置或返回Input属性每次从接收缓冲区中读取的字符数。

4、缺省值为0,表示Input属性将读取接收缓冲区的全部内容。6、InBufferCount它返回缓冲区已接收的字符个数。运行时可设置为0来清除接收缓冲区。7、InputMode它用来设置或返回Input属性取回数据的类型,取值为:0=文本数据,1=二进制数据。该属性对于控制过程中的数据流来说相当重要。由于大多数的此类数据流均含有控制字符,所以一定要将它设置为二进制数据类型。8、Output该属性用来向发送缓冲区写入控制指令或数据,它可以发送文本或二进制数据,但要注意应该用字符串变体类型发送文本数据,用Byte数组变体类型发送二进制数据

5、。9、OutBufferCount该属性监视发送缓冲区中的字节数目,将它设置为0可用来清空发送缓冲区。10、RthresHold该属性用来设置或返回输入缓冲区中存放接收字符的最小数目,取值为:0=不引发OnComm事件,n(>=1)=每收到n个字符就引发OnComm事件。11、CommEvent它返回最近的通讯事件或错误的数字代码。12、OnComm事件每当通讯错误或某事件发生时,产生该事件。三、程序设计要实现串口通讯,在VB开发环境下新建一个工程Project1,并加入一个窗体Form和一个程序模块Module1。串行通讯61、向

6、窗体Form1添加一个通讯控件Mscomm1,一个定时器控件Timer1,两个命令按钮:通讯开始按钮cmdBegin,退出按钮cmdExit,并编写相应的程序如下:’通讯开始按钮子程序SubcmdBegin_Click()WithMscomm1.CommPort=2’假定串口通讯为Com2.Settings=“9600,N,8,1”’使用缺省值.InputMode=1’置为二进制数据类型.PortOpen=True’打开串口If.PortOpen=FalseThenMsgBox“无法打开串口”ElseTimer1.Enabled=T

7、rue’定时器开始工作(开始通讯)EndIfEndWithEndSub’退出按钮子程序SubcmdExit_Click()Mscomm1.PortOpen=False’关闭串口Timer1.Enabled=False’关闭定时器UnloadMeEndSub’定时器子程序SubTimer1_Timer()Comm_Schedule’调用通讯调度程序EndSub2、在模块Module1中声明两个不定长Byte串行通讯6型数组,添加三个过程程序,具体如下:’定义发送、接收数组和通讯标志PUBLICSendBuf()AsBYTE,ReceB

8、uf()AsBYTEPUBLICComm_flagAsBoolean’发送数据子程序SubSendData_Route()DimSendCountsAsInteger’定义发送字节数变量IFMscomm1.PortOpen=False

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

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

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