|
最近在搞一個車庫上位機的,用VB編寫。上位機界面如圖:
問題1:當單片機P21腳檢測到低電平時,通過串口,發送“si ”,在上位機對應位置顯示“是”,表示車已經進庫。
因為我的這道檢測程序是放在while(1)里面的,單片機不斷檢測,當P21為0時,單片機不斷發送“si ”,而上位機對應位置則
交替顯示“是”和"否"(默認),而我只想要第一次接收到的“si ”,從而當P21=0時,只能顯示"是",怎么解決。以下是部分程序:
VB:Dim rec As String
Select Case MSComm1.CommEvent
Case comEvReceive
rec = MSComm1.Input
51: while(1)
{
if(miso==0)
{
for(i=0;i<3;i++)
{
SBUF=table1[i]; //串口發送標志位,table1[]="si "
while(!TI);
TI=0;
}
// miso=1;//已經進庫則清除標志
}
}
問題2:我想只有當按了路線1按鈕后,并且rec=“si ”時,text1.text="是";當按了路線2按鈕時,并且rec="si "時,text2.text="是"
怎么編程?以下是我的一個程序:
Private Sub Command1_Click()
MSComm1.OutBufferCount = 0
MSComm1.Output = Chr(&HC)
a = 1
'If rec = "si " Then
'Text1.Text = "是"
'End If
End Sub
|
|