利用VB实现PC机与多单片机通讯
Sub发送单片机命令过程(command As Byte)
Dim输出命令(1 To 1)As Byte
DoEvents
输出命令(1)=command
MSComm1.OutBufferCount=0
MSComm1.Output=输出命令
MSComm1.InBufferCount=0
End Sub
2.接收数据
接收数据是一个被动的过程,可以通过函数来实现,由定时器开启。在接收过程中,多数用特征字符,如“OK”、“#”等。这些需要在通讯协议中约定。
Function接收数据()
Do
DoEvents
In_buffer $=In_buffer$&MSComm2.Input
Loop Until InStr(_buffer$,“OK”)'从串行端口读“OK”响应'
In_buffer=Left(In_buffer,len(In_buffer)-2)
接收数据=In_buffer$
End Function
3.Timer控件控制
通过Timer控件来控制通讯中的发送命令和接收数据过程,在通讯程序中设置两个Timer控件分别控制发送单片机命令和接收单片机数据。为了实现一台PC机和多单片机之间的通讯,可在一个Timer控件的过程中,在发送命令之前设定命令参数和要接收数据的单片机号,然后发送单片机命令;在另一个Timer控件的过程中,根据发送前设定的单片机号,接收不同单片机的数据。
Timer控件控制程序如下:
'发送命令主控程序
Privata Sub TimerSend_Timer()
TimerSend.Enabled=False
Select Case command
Case 1]
Call发送单片机命令过程(任务1)
TimerReceive.Enabled=False'启动自动接收
Case2
Call发送单片机命令过程(任务2)
MSComm1.Rthreshold=0'关闭自动接收
TimerReceive.Interval=500
TimerReceive.Enabled=True'启动定时器接收机号=1
Case 3
Call发送单片机命令过程(任务3)
MSComm1.Rthreshold=0'关闭自动接收
《利用VB实现PC机与多单片机通讯(第2页)》