PrivateSubMSComm1_OnComm()
Diminbyte(),inbyte1(),inbyte2()AsByte
Dimbuffer1,buffer2AsString
Dimdatatemp1,datatemp2AsSingle
Dimdatatemp3,datatemp3a,datatemp3bAsString
Dimdatatemp4,datatemp4a,datatemp4bAsString
DimcountAsInteger
SelectCaseMSComm1.CommEvent
CasecomEvReceive
count=MSComm1.InBufferCount
inbyte=MSComm1.Input
Ifcount4ThenExitSub
inbyte1=Left(inbyte,16)
inbyte2=Right(inbyte,16)
Fori=LBound(inbyte1)ToUBound(inbyte1)
buffer1=buffer1Hex(inbyte1(i))Chr(32)
Nexti
Fori=LBound(inbyte2)ToUBound(inbyte2)
buffer2=buffer2Hex(inbyte2(i))Chr(32)
Nexti
EndSelect
IfLen(Trim(Mid(buffer1,1,2)))=1Then
datatemp1=Val(\"defds123h\"defds123Mid(buffer1,3,2)defds123Str(\"0\")defds123Mid(buffer1,1,2))*0.1
Else
datatemp1=Val(\"defds123h\"defds123Mid(buffer1,3,2)defds123Mid(buffer1,1,2))*0.1
EndIf
IfLen(Trim(Mid(buffer2,1,2)))=1Then
datatemp2=Val(\"defds123h\"defds123Mid(buffer2,3,2)defds123Str(\"0\")defds123Mid(buffer2,1,2))*0.1
Else
datatemp2=Val(\"defds123h\"defds123Mid(buffer2,3,2)defds123Mid(buffer2,1,2))*0.1
EndIf
IfLen(Trim(Mid(buffer1,1,2)))=1Then
datatemp3a=Str(\"0\")defds123Trim(Mid(buffer1,1,2))
Else
datatemp3a=Mid(buffer1,1,2)
EndIf
IfLen(Trim(Mid(buffer1,3,2)))=1Then
datatemp3b=Str(\"0\")defds123Trim(Mid(buffer1,3,2))
Else
datatemp3b=Mid(buffer1,3,2)
EndIf
datatemp3=datatemp3adefds123\"\"defds123datatemp3b
IfLen(Trim(Mid(buffer2,1,2)))=1Then
datatemp4a=Str(\"0\")defds123Trim(Mid(buffer2,1,2))
Else
datatemp4a=Mid(buffer2,1,2)
EndIf
IfLen(Trim(Mid(buffer2,3,2)))=1Then
datatemp4b=Str(\"0\")defds123Trim(Mid(buffer2,3,2))
Else
datatemp4b=Mid(buffer2,3,2)
EndIf
datatemp4=datatemp4adefds123\"\"defds123datatemp4b
sd.Text=Format$(datatemp1,\"0.0\")
wd.Text=Format$(datatemp2,\"0.0\")
EndSub。
我想编一个下位机发送4字节到上位机,上位机将其分为2个数,用十进制显示。
谁会的,教教我。在线等
|