- 1、本文档共5页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
PAGE 1
PAGE 1
VisualBasic串口通讯调试方法
Visual Basic串口通讯调试方法 现有电子秤一台,使用串口与计算机进行通讯。编写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个数据位、1个停止位.(这里需要进一步说明的是:.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 WithEnd Sub Private Sub MSC_OnComm() DelayTime ‘用来连续时间 ClearText With MSCSelect Case .CommEvent 推断通信大事Case comEvReceive: 收到Rthreshold个字节产生的接收大事 SwichVar 1 If Out(1) = 2 Then 推断是否为数据的开头标志.RThreshold = 0 关闭OnComm大事接收 End If DoDoEvents Loop Until .InBufferCount Chr(Out(i)) Next Text1.Text = LTrim(Text1.Text) Text2.Text = Text2.Text CStr(nRece) .RThreshold = 1 打开MSComm大事接收Case Else .PortOpen = FalseEnd Select End With End Sub **************************************************************************** Private Sub DelayTime() Dim bDT As Boolean Dim sPrevious As Single, sLast As Single bDT = True sPrevious = Timer (Timer可以计算从半夜到现在所经过的秒数,在Microsoft Windows中,Timer函数可以返回一秒的小数部分) Do While bDT If Time
文档评论(0)