这些天在研究PC机通过485控制多个下位机。上位机软件用VB做的,下位机是51单片机。发现了几个问题,打算请教各位前辈们。
一、PC机发送指令时,比如说发送"05H 58H 43H 04H 1AH"时,下位机能正常收到。但是下位机反馈给上位机,比如发送"06H 58H 59H 04H 03H"时,上位机则不能完全接收,只能收到最后的"03H"。
其中单片机反馈时:就是SBUF=发送的内容;while(TI==0);TI=0;依次把各个字节传到上位机。
上位机接收的程序如下:
Private Sub MSComm1_OnComm()
Dim inbyte() As Byte
Dim buffer As String
Select Case MSComm1.CommEvent
Case comEvReceive
inbyte = MSComm1.Input
For i = LBound(inbyte) To UBound(inbyte)
buffer = buffer + Hex(inbyte(i))
Next i
Case comEvSend
End Select |