接收單片機的數(shù)據(jù)沒有事件響應(yīng) 我在While循環(huán)中不停的判斷單片機所收到的數(shù)據(jù)是否等于我所發(fā)的數(shù)據(jù),若不相等,則我再發(fā)一次,然后再收,程序如下: Private Sub Write_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Write.Click '以下CWSerial是串口通信控件,Read和Write方法分別是收數(shù)據(jù)和發(fā)數(shù)據(jù) CWSerial1.Write(TextOut.Text) '發(fā)數(shù)據(jù) While (CWSerial1.Read() TextOut.Text) 'TextOut.Text是我要發(fā)的數(shù)據(jù) MsgBox( "未能正確收到! ") CWSerial1.Write(TextOut.Text) '再發(fā)一次 End While MsgBox( "已正確收到! ") End Sub 關(guān)鍵是在發(fā)和收之間有個延遲(TimeOut),不可能我剛發(fā)完數(shù)據(jù)后就可以馬上收到數(shù)據(jù),必須等待1s后才有可能收到數(shù)據(jù)(我設(shè)的TimeOut為1000ms),我想要做的就是讓程序等待1s 希望大哥能提供讓程序等待的代碼,例子也行
彭澤網(wǎng)站制作公司哪家好,找創(chuàng)新互聯(lián)建站!從網(wǎng)頁設(shè)計、網(wǎng)站建設(shè)、微信開發(fā)、APP開發(fā)、響應(yīng)式網(wǎng)站設(shè)計等網(wǎng)站項目制作,到程序開發(fā),運營維護。創(chuàng)新互聯(lián)建站于2013年成立到現(xiàn)在10年的時間,我們擁有了豐富的建站經(jīng)驗和運維經(jīng)驗,來保證我們的工作的順利進行。專注于網(wǎng)站建設(shè)就選創(chuàng)新互聯(lián)建站。
第一個for完成對delay_time參數(shù)的控制,即共循環(huán)多少次內(nèi)部循環(huán)
第二個for(內(nèi)部循環(huán)),完成對j從0到199的控制,共循環(huán)200次。
翻譯成匯編就是:
(R0為傳遞參數(shù))
DELAY:
MOV R1,#200
DJNZ R1,$
DJNZ R0,DELAY
RET
Dim so As Integer
Dim A As Integer
Private Sub Form_Load()
Timer1.Enabled = True
Timer1.Interval = 1000
A = 1
End Sub
Private Sub Timer1_Timer()
so = so + 1
If A = 0 Then
so = 0
Me.Caption = "正常運行"
Exit Sub
Else
Me.Caption = so
If so = 6 Then
so = 0
' 觸發(fā)button事件
End If
End If
End Sub
Threading.Thread.Sleep(500)這句是線程停止等待的,在這500毫秒的時間里你的任何動作都是不響應(yīng)的,理論上再SendKeys.Send(TextBox2.Text)這段時間內(nèi)你可以動作,但是send是毫秒級完成的,你還沒有來得及響應(yīng)就進入了下一次的循環(huán),所以跟卡死類似
解決方法:通過timer定時器延時
可以把button2里的程式碼雪成一個副程式,然後把button2和timer里的程式碼執(zhí)行時執(zhí)行那個副程式,這樣就不用自己點擊了,阿如果不把它寫成副程式的話,可以timer觸發(fā)時執(zhí)行button2.click 點擊事件,這樣也可以觸發(fā)button2下的程式碼