小弟是一个VB初学者,有一台电子秤,想将电子秤的数据采集后在电脑上显示出来,但是每次显示的都是3个字节的乱码。
电子秤的数据格式如下:
每次发送6帧,每帧定义如下:
每10Bit为一数据帧,Bit1:起始位,Bit2-Bit9:数据位,Bit10:停止位
第一帧:D0-D7——OFFH(起始位)
第二帧:D0-D2——为小数点位
D3-D4——当前工作模式:00-记重模式,01-记数模式,10-百分比模式
D5 ——1表示重量为负,0表示重量为正
D6 ——1表示重量稳定,0表示重量不稳定
D7 ——1表示重量溢出,0表示重量未溢出
第三帧:D0-D7——BCD码1(显示数值的最低字节)
第四帧:D0-D7——BCD码2(显示数值的中间字节)
第五帧:D0-D7——BCD码3(显示数值的最高字节)
第六帧:D0-D7——记重模式下的单位:1表示单位是磅,0表示单位是公斤
下面是小弟的程序,希望各位高手指点一下小弟。
Dim indata As Variant
Private Sub Form_Load()
MSComm1.CommPort = 1 '...使用Com1口
MSComm1.Settings = "9600,n,8,1" '...设置通讯参数
MSComm1.InBufferSize = 40
MSComm1.InputMode = comInputModeBinary
MSComm1.InputLen = 0
MSComm1.RThreshold = 1
MSComm1.SThreshold = 1
MSComm1.PortOpen = True '...打开串口
End Sub
Private Sub MSComm1_OnComm()
Select Case MSComm1.CommEvent
Case comEvReceive '...有接收事件发生
indata = MSComm1.Input
Text1.Text = indata '…text1实时显示数显表的数据
MSComm1.InBufferCount = 0 '...清空输入寄存器
End Select
End Sub