background image

冲区的字符多于设置的值时,则触发 OnComm 事件,并把 CommEvent 设为 MSCOMM
—EV—RECEIVE,当 RThreshold = 0 则禁止接收触发 OnComm 事件,当 RThreshold 
= 1 则接收缓冲区有一个或更多字符时就触发 OnComm 事件。利用这一属性,就可完成
对串口接收数据的处理。

2. 利用通信控件的实例
Sub Form1 —load ()
 form1. show
 ′设置 COM1
 comm1. commport = 1
 comm1. Setting = " 9600 ,o ,8 ,1" ′波特率:9600 奇校验,8 位数据,1 位停止位
 comm1. Inputlen = 0 ′读取接收缓冲区的所有字符
 comm1. OutBufferSize = 512 ′设置发送缓冲区为 512 字节
 comm1. InBufferSize = 512 ′设置接收缓冲区为 512 字节
 comm1. SThreshold = 0 ′禁止发送事件
 comm1. RThreshold = 1 ′每一个字符到接收缓冲区都触发接收事件
 ′设置 COM2
 comm2. commport = 2
 comm2. Setting = "2400 ,e ,8 ,1"

 ′波特率:2400 偶验,8 位数据,1 位停止位
 comm2. Inputlen = 0 ′读取接收缓冲区的所有字符
 comm2. OutBufferSize = 512 ′设置发送缓冲区为 512 字节
 comm2. InBufferSize = 512 ′设置接收缓冲区为 512 字节
 comm2. SThreshold = 1 ′发送缓冲区空触发发送事件
 comm2. RThreshold = 0 ′禁止接收事件
 ′打开 COM1 ,COM2
 comm1. Portopen = True
 comm2. Portopen = True
 Timer1. interval = 5000
End Sub

Sub Comm1 —OnComm()
 Dim Inbuff as string
 Dim i as integer ,n as integer ,t as integer
 Select Case Comm1. CommEven

 case MSCOMM—EV—RECEIVE
  Inbuff = Comm1. Input
  n = len ( Inbuff)