Private Sub CmdConfig_Click()
Dim k As Boolean If Option_on = True And Option_off = False Then
k = True
ElseIf Option_on = False And Option_off = True Then
k = True
End If queryDetectorP = False Sleep (100) '释放总线 Call MDIForm1.SetOnlyDetect(AddrMain1, DetectAdrr, k) Sleep (900) '等待设置返回
queryDetectorP = True If TextVal.text <> "" Then
Set_alarm_value = Val(TextVal.text) / 10
queryDetectorP = False
Call MDIForm1.setAlarmVal(AddrNum, DetectAdrr, Set_alarm_value) queryDetectorP = True
End IfEnd Sub
以下代码,按下一个按键 ,然后使用串口发送两次命令(红字部分),第二次命令必须在第一次命令收到返回值以后发送 不然会出错。但是无论我怎样增加延迟,第二条指令总是紧接着第一条指令出现,而未在第一条指令的返回之后出现。(用BUSBOUND观察)请问,用sleep()做接收延迟不合适么?我的问题出在哪?怎样解决?
Dim k As Boolean If Option_on = True And Option_off = False Then
k = True
ElseIf Option_on = False And Option_off = True Then
k = True
End If queryDetectorP = False Sleep (100) '释放总线 Call MDIForm1.SetOnlyDetect(AddrMain1, DetectAdrr, k) Sleep (900) '等待设置返回
queryDetectorP = True If TextVal.text <> "" Then
Set_alarm_value = Val(TextVal.text) / 10
queryDetectorP = False
Call MDIForm1.setAlarmVal(AddrNum, DetectAdrr, Set_alarm_value) queryDetectorP = True
End IfEnd Sub
以下代码,按下一个按键 ,然后使用串口发送两次命令(红字部分),第二次命令必须在第一次命令收到返回值以后发送 不然会出错。但是无论我怎样增加延迟,第二条指令总是紧接着第一条指令出现,而未在第一条指令的返回之后出现。(用BUSBOUND观察)请问,用sleep()做接收延迟不合适么?我的问题出在哪?怎样解决?
你看看这个:http://download.csdn.net/source/1262066串口通信的详细例子
If delayNum >= 10 Then
Timer1.Enabled = False
delayNum = 0
Exit Do
End If
DoEvents
LoopPrivate Sub Timer1_Timer()
delayNum = delayNum + 1
End Sub