VB控件MSComm串口通訊实例教程.docVIP

  • 10
  • 0
  • 约3.53千字
  • 约 6页
  • 2016-10-16 发布于重庆
  • 举报
VB控件MSComm串口通訊实例教程

现有电子秤一台,使用串口与计算机进行通讯。编写VB程序来访问串口,达到读取电子秤上显示的数据。该电子秤为BE01型仪表,输出为RS-232C标准接口,波特率为300-9600、偶校验、7个数据位、2个停止位。所有字符 ?????? 现有电子秤一台,使用串口与计算机进行通讯。编写VB程序来访问串口,达到读取电子秤上显示的数据。该电子秤为BE01型仪表,输出为RS-232C标准接口,波特率为300-9600、偶校验、7个数据位、2个停止位。所有字符均发送11位ASCII码,一个起始位。在VB中与串口通讯需要引入控件MSComm串口通讯控件(在Microsoft Comm Control 6.0中)。具体程序如下:控件简称:MSC Dim Out(12) As Byte 接收var中的值 Dim var As Variant 接收MSC.input中的数值 Dim nRece As Integer 计算MSC.inputbuffer的个数 Dim i As Integer, j As Integer 随即变量,计算循环 **************************************************************************** Private Sub Form_Load()  ClearText  With MSC   .CommPort = 1 设置Com1为通信端口   .Settings = 9600,E,7,2 设置通信端口参数 9600赫兹、偶校验、7个数据位、2个停止位.(这里需要进一步说明的是:.Setting=”BBBB,P,D,S”。   含义是:B:Baud Rate(波特率);P:Parity(奇偶);D:Data Bit;S:Stop Bit)   .InBufferSize = 40 设置缓冲区接收数据为40字节   .InputLen = 1 设置Input一次从接收缓冲读取字节数为1   .RThreshold = 1 设置接收一个字节就产生OnComm事件  End With End Sub **************************************************************************** Private Sub ClearText()  Text3.Text =  Text2.Text = 5  Text1.Text = End Sub Private Sub Command1_Click()  ClearText   nRece = 0 计数器清零  With MSC   .InputMode = comInputModeBinary 设置数据接收模式为二进制形式   .InBufferCount = 0 清除接收缓冲区   If Not .PortOpen Then    .PortOpen = True 打开通信端口   End If  End With End Sub Private Sub MSC_OnComm()  DelayTime ‘用来延续时间  ClearText  With MSC   Select Case .CommEvent 判断通信事件   Case comEvReceive: 收到Rthreshold个字节产生的接收事件    SwichVar 1    If Out(1) = 2 Then 判断是否为数据的开始标志     .RThreshold = 0 关闭OnComm事件接收    End If    Do     DoEvents    Loop Until .InBufferCount = 3 循环等待接收缓冲区=3个字节     nRece = nRece + 1    For i = 2 To 12     SwichVar i     Text1.Text = Text1.Text Chr(Out(i))    Next    Text1.Text = LTrim(Text1.Text)    Text2.Text = Text2.Text CStr(nRece)    .RThreshold = 1 打开MSComm事件接收   Case Else     .PortOpen = False   End Select  End With End Sub **************************************************************************** Private Sub DelayTime()  Dim bDT As Boolean  Dim sPrevious As Single, sL

文档评论(0)

1亿VIP精品文档

相关文档