串口通信控件文档格式.docx
- 文档编号:15318985
- 上传时间:2022-10-29
- 格式:DOCX
- 页数:15
- 大小:190.51KB
串口通信控件文档格式.docx
《串口通信控件文档格式.docx》由会员分享,可在线阅读,更多相关《串口通信控件文档格式.docx(15页珍藏版)》请在冰豆网上搜索。
1.MSComm控件处理通信的方式
MSComm控件通过串行端口传输和接收数据,为应用程序提供串行通信功能。
它提供下列两种处理通信的方式:
1)事件驱动方式
该方式相当于一般程序设计中的中断方式。
当串口发生事件或错误时,MSComm控件会产生OnComm事件,用户程序可以捕获该事件进行相应处理。
它是处理串行端口交互作用的一种非常有效的方法。
在许多情况下,在事件发生时程序会希望得到通知,例如,在串口接收缓冲区中有一个字符到达或一个变化发生时,程序都可以利用MSComm控件的OnComm事件捕获并处理这些通信事件;
OnComm事件还可以检查和处理通信错误。
在程序的每个关键功能之后,可以通过检查CommEvent属性的值来查询事件和错误。
在程序设计中,可以在OnComm事件处理函数中加入自己的处理代码,一旦事件发生即可自动执行该段程序。
这种方法的优点是程序响应及时,可靠性高。
2)查询方式
在程序的每个关键功能之后,在用户程序中设计定时或不定时的查询,通过检查CommEvent属性的值来查询事件和错误,从而作出相应的处理。
在进行简单应用程序设计时可采用这种方法。
例如,如果写一个简单的电话拨号程序,则没有必要对每接收一个字符都产生事件,因为唯一等待接收的字符是调制解调器的“OK”响应。
查询方式的进行可用计时器Timer或Do…Loop程序实现。
查询方式实质上还是事件驱动,但在有些情况下,这种方式显得更为便捷。
2.MSComm控件的引用
开始一个项目的设计时,VB.NET、VC++.NET、C#.NET的工具箱中会有许多默认的控件让设计者选用,这些原本就出现在工具箱中的控件是内置控件,它提供了一些基本的系统设计组件给设计者,不过,功能比较特别的控件就不会出现在其中,而用来设计通信功能的控件MSComm就不在其中。
由于VB.NET、VC++.NET、C#.NET的串行通信组件MSComm并不会主动出现在工具箱里中,当我们需要MSComm控件时,首先要把它加入到工具箱中。
让MSComm控件出现在工具箱中的步骤如下:
执行“工具”菜单下的“选择工具箱…”子菜单,在弹出的对话框中,选择“COM组件”选项卡,选中“MicrosoftCommunicationControlversion6.0”复选框,如图A-1所示,单击“确定”按钮后,在工具箱“组件”栏中就出现了一个形似“电话”的图标,它就是MSComm控件,如图A-2所示。
工具箱中有了MSComm控件,就可以选择MSComm控件的图标后将其加到程序窗体上,利用该控件PC机就可以通过VB.NET、VC++.NET、C#.NET实现与串口设备的串口通信了。
如果打开的是以前的项目,项目中含有MSComm控件的引用记录,则项目会自动去搜寻MSComm控件,并将它载入,不需要以上的步骤。
每个使用的MSComm控件对应着一个串行端口,如果应用程序需要访问多个串行端口,必须使用多个MSComm控件。
3.MSComm控件的常用属性
MSComm控件的属性很多,这里介绍串口编程中经常用到的几个重要属性。
1)CommPort属性
语法:
MSComm1.CommPort[=Value]
作用:
设置或返回通信端口号。
CommPort属性值value可以设置为1到16之间的任何整数值(缺省值为1)表示串口COM1,COM2...。
如果用PortOpen属性打开一个并不存在的端口,MSComm控件会产生错误68(设备无效)。
注意:
必须在打开端口之前设置CommPort属性。
例如:
COM2上连接有一个调制解调器:
MSComm1.CommPort=2
2)Input属性
MSComm1.Input
返回并删除接收缓冲区中的数据流。
InputLen属性确定被Input属性读取的字符数。
设置InputLen为0,则Input属性读取缓冲区中全部的内容。
如果希望从接收缓冲区获取数据,并将其显示在一个文本框中,可以使用下面的代码:
TxtDisplay.Text=MSComm1.Input
该属性在设计时无效,在运行时为只读。
3)InputLen属性
MSComm1.InputLen[=value]
设置并返回Input属性从接收缓冲区读取的字符数。
Value是整型表达式,说明Input属性从接收缓冲区中读取的字符数。
说明:
InputLen属性的缺省值是0。
设置InputLen为0时,使用Input将使MSComm控件读取接收缓冲区中全部的内容。
若接收缓冲区中InputLen字符无效,Input属性返回一个零长度字符串("
"
)。
在使用Input前,用户可以选择检查InBufferCount属性来确定缓冲区中是否已有需要数目的字符。
该属性在从输出格式为定长数据的机器读取数据时非常有用。
如果读取以定长的数据块的形式格式化了的数据时,则需要将该属性设置为合适的值。
MSComm1.InputLen=10'
当程序执行该指令时,只会读取10个字符。
4)InputMode属性
MSComm1.InputMode[=Value]
设置或返回接收数据的数据类型。
InputMode属性的Value值可以设置为如下常数:
0-通过Input属性以文本方式取回传入的数据。
1-通过Input属性以二进制方式取回传入的数据。
MSComm1.InputMode=1表示以二进制方式读取数据。
5)OutPut属性
MSComm1.OutPut[=Value]
向传输缓冲区写数据流。
Output属性可以传输文本数据或二进制数据。
用Output属性传输文本数据,必须定义一个包含一个字符串的Variant;
发送二进制数据,必须传递一个包含字节数组的Variant到Output属性。
正常情况下,如果发送一个ANSI字符串到应用程序,可以以文本数据的形式发送;
如果发送包含嵌入控制字符、Null字符等数据,要以二进制形式发送。
可用Output属性发送命令、文字字符串或Byte数组数据。
MSComm1.Output="
ATDT551-5555"
'
发送AT命令串
MSComm1.Output="
Thisisatextstring"
发送文本字符串
6)PortOpen属性
MSComm1.PortOpen[=Value]
设置或返回通信端口的状态。
设置PortOpen属性为True即打开端口,设置为False则关闭端口,并清除接收和传输缓冲区。
当应用程序终止时,MSComm控件自动关闭串行端口。
在打开端口之前,确定CommPort属性设置为一个合法的端口。
如果CommPort属性设置为一个非法的端口,则当打开该端口时,MSComm控件产生错误68(设备无效)。
串行端口设备必须支持Settings属性当前的设置值。
如果Settings属性包含硬件不支持的通信设置值,硬件可能不会正常工作。
7)Settings属性
MSComm1.Settings[=Value]
设置并返回通信参数。
值Value为String型,说明通信端口的设置值。
Settings属性可以用来指定波特率、奇偶校验、数据位数和停止位数。
奇偶校验设置为了进行数据校验,通常是不用的,并设置为“N”。
数据位数指定了代表一个数据块的比特数。
停止位指出了何时接收到一个完整数据块。
MSComm1.Settings="
9600,N,8,1"
表示传输速率为9600bps,没有奇偶校验位,8位数据位,1位停止位。
注:
1)起始位:
在通信线上,没有数据传送时处于逻辑“1”状态。
当发送设备要发送一个字符数据时,首先发出一个逻辑“0”信号,这个逻辑低电平就是起始位。
起始位通过通信线传向接收设备,当接收设备检测到这个逻辑低电平后,就开始准备接收数据位信号。
因此,起始位所起的作用就是表示字符传送的开始。
2)数据位:
当接收设备收到起始位后,紧接着就会收到数据位,数据位的个数可以是5、6、7或8位数据。
在字符数据传送的过程中,数据位从最低有效位开始传送。
3)奇偶校验位:
数据位发送完之后,就可以发送奇偶校验位。
奇偶校验用于有限差错检验,通信双方在通信时约定一致的奇偶校验方式。
就数据传送而言,奇偶校验位是冗余位,但它表示数据的一种性质,这种性质用于检错,虽然有限但很容易实现。
4)停止位:
在奇偶校验位或者数据位(无奇偶校验位时)之后是停止位。
它可以是1位、1.5位或2位,停止位是一个字符数据的结束标志。
8)RThreshold属性
object.Rthreshold[=value]
OnComm事件发生之前,设置并返回接收缓冲区可接收的字符数。
Value是整型表达式,说明在产生OnComm事件之前要接收的字符数。
当接收字符后,若Rthreshold属性设置为0(缺省值)则不产生OnComm事件;
设置Rthreshold为1,接收缓冲区每收到一个字符都会使MSComm控件触发OnComm事件。
9)SThreshold属性
object.SThreshold[=value]
OnComm事件发生之前,设置并返回发送缓冲区中允许的最小字符数。
Value是整形表达式,代表在OnComm事件产生之前在传输缓冲区中的最小字符数。
若设置SThreshold属性为0(缺省值),数据传输事件不会产生OnComm事件;
若设置Sthreshold属性为1,当传输缓冲区完全空时,MSComm控件产生OnComm事件。
如果在传输缓冲区中的字符数小于value,CommEvent属性设置为comEvSend,并产生O
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 串口 通信 控件