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

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
现有电子秤一台,使用串口与计算机进行通讯。编写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)

82393aa + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档