- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
利用VB通讯控件实现串行通讯
一、引言
每台计算机都有多个串行端口,它们提供了计算机与外部串行设备之间的数据传输通道。要完成数据的传输,对Windows而言,可以使用标准的Windows API函数发送和接收数据。但对一般应用人员来说,学习和应用API进行编程,可不是一件简单的事情。所以从Visual Basic 5.0开始,VB提供了面向对象的设计方法和功能强大的串行通讯控件,而且VB本身具有使用简单方便、用户界面友好、编程快捷直观、实用性强等诸多优点,利用它可直接开发出功能强大的串行通讯控制软件。将本文介绍的方法与具体的应用结合起来,可编写出完整的实用的控制软件,应用到各种实际场合中。
二、VB通讯控件简介
VB提供的串行通讯控件Mscomm屏蔽了通讯过程中的底层操作,在程序设计时只需设置、监控Mscomm控件的属性和事件来完成对串口的初始化和数据的输入输出工作,使用起来相当简单、方便。其主要属性如下:
1、CommPort
该属性设置或返回通讯端口号。设计时取值范围为1~16,缺省为1。如设置为2,即表示当前通讯端口是Com2。
2、Settings
该属性设置或返回串口通讯参数,它是一个含有四部分内容的字符串,格式为:
Mscomm.Settings=“x1, x2, 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=关闭串口。
4、Input
它返回并删除接收缓冲区中的数据流,运行时只读。
5、InputLen
该属性设置或返回Input属性每次从接收缓冲区中读取的字符数。缺省值为0,表示Input属性将读取接收缓冲区的全部内容。
6、InBufferCount
它返回缓冲区已接收的字符个数。运行时可设置为0来清除接收缓冲区。
7、InputMode
它用来设置或返回Input属性取回数据的类型,取值为:0=文本数据,1=二进制数据。该属性对于控制过程中的数据流来说相当重要。由于大多数的此类数据流均含有控制字符,所以一定要将它设置为二进制数据类型。
8、Output
该属性用来向发送缓冲区写入控制指令或数据,它可以发送文本或二进制数据,但要注意应该用字符串变体类型发送文本数据,用Byte 数组变体类型发送二进制数据。
9、OutBufferCount
该属性监视发送缓冲区中的字节数目,将它设置为0可用来清空发送缓冲区。
10、RthresHold
该属性用来设置或返回输入缓冲区中存放接收字符的最小数目,取值为:0=不引发OnComm事件,n(=1)=每收到n个字符就引发OnComm事件。
11、CommEvent
它返回最近的通讯事件或错误的数字代码。
12、OnComm事件
每当通讯错误或某事件发生时,产生该事件。
三、程序设计
要实现串口通讯,在VB开发环境下新建一个工程Project1,并加入一个窗体Form和一个程序模块Module1。
1、向窗体Form1添加一个通讯控件Mscomm1,一个定时器控件Timer1,两个命令按钮:通讯开始按钮cmdBegin,退出按钮cmdExit,并编写相应的程序如下:
’通讯开始按钮子程序
Sub cmdBegin_Click( )
With Mscomm1
.CommPort = 2 ’假定串口通讯为Com2
.Settings = “ 9600 , N , 8 , 1 ” ’使用缺省值
.InputMode = 1 ’置为二进制数据类型
.PortOpen = True ’打开串口
文档评论(0)