问题1:::::定义:MSComm1.InputMode = comInputModeBinary 为二进制
但是仪表发送是ASCII,有矛盾吗??
问提2: 我用的是指令方式,和耀华的磅秤通信,
断点跟踪:tmp = MSComm1.Input
显示tmp的数据为:┐AB+000000018L┌
怎么转换为10进制..??????????????????????????????/
程序:
Dim tmp As Variant
Dim Instring As String
Private Sub Command2_Click()
MSComm1.PortOpen = False
End SubPrivate Sub Form_load()
MSComm1.CommPort = 1 '使用COM1口
MSComm1.Settings = "1200,N,8,1" '波特率,无奇偶校验,8位数据位,1位停止位
MSComm1.InputLen = 0 '输入时读整个缓冲区
MSComm1.PortOpen = True '打开端口
'MSComm1.InputMode = comInputModeBinary
MSComm1.InBufferCount = 0
MSComm1.OutBufferCount = 0
MSComm1.InputLen = 14
MSComm1.RThreshold = 14
End Sub'数据读取及显示模块:
Private Sub Command1_Click()
ClearText
'变量定义
MSComm1.Output = Chr(2) + Chr(65) + Chr(66) + Chr(48) + Chr(51) + Chr(3) '计算机发送指令:
'读A(01)地址称重仪表的毛重值
End SubPrivate Sub MSComm1_OnComm()
With MSComm1 Select Case .CommEvent '判断通信事件
Case comEvReceive: '收到Rthreshold个字节产生的接收事件
'MsgBox "receive"
tmp = MSComm1.Input
Instring = tmp
End Select
End With
Text1.Text = Instring
End SubPrivate Sub ClearText() Text1.Text = ""
End Sub
但是仪表发送是ASCII,有矛盾吗??
问提2: 我用的是指令方式,和耀华的磅秤通信,
断点跟踪:tmp = MSComm1.Input
显示tmp的数据为:┐AB+000000018L┌
怎么转换为10进制..??????????????????????????????/
程序:
Dim tmp As Variant
Dim Instring As String
Private Sub Command2_Click()
MSComm1.PortOpen = False
End SubPrivate Sub Form_load()
MSComm1.CommPort = 1 '使用COM1口
MSComm1.Settings = "1200,N,8,1" '波特率,无奇偶校验,8位数据位,1位停止位
MSComm1.InputLen = 0 '输入时读整个缓冲区
MSComm1.PortOpen = True '打开端口
'MSComm1.InputMode = comInputModeBinary
MSComm1.InBufferCount = 0
MSComm1.OutBufferCount = 0
MSComm1.InputLen = 14
MSComm1.RThreshold = 14
End Sub'数据读取及显示模块:
Private Sub Command1_Click()
ClearText
'变量定义
MSComm1.Output = Chr(2) + Chr(65) + Chr(66) + Chr(48) + Chr(51) + Chr(3) '计算机发送指令:
'读A(01)地址称重仪表的毛重值
End SubPrivate Sub MSComm1_OnComm()
With MSComm1 Select Case .CommEvent '判断通信事件
Case comEvReceive: '收到Rthreshold个字节产生的接收事件
'MsgBox "receive"
tmp = MSComm1.Input
Instring = tmp
End Select
End With
Text1.Text = Instring
End SubPrivate Sub ClearText() Text1.Text = ""
End Sub
用 comInputModeBinary接收来的数值跟发送过来时的不一样,要经过处理。用comInputModeText接收应该很方便,你为什么选择用comInputModeBinary?