第一個for完成對delay_time參數(shù)的控制,即共循環(huán)多少次內(nèi)部循環(huán)
成都創(chuàng)新互聯(lián)成都網(wǎng)站建設(shè)按需求定制網(wǎng)站,是成都網(wǎng)站建設(shè)公司,為成都電動窗簾提供網(wǎng)站建設(shè)服務(wù),有成熟的網(wǎng)站定制合作流程,提供網(wǎng)站定制設(shè)計服務(wù):原型圖制作、網(wǎng)站創(chuàng)意設(shè)計、前端HTML5制作、后臺程序開發(fā)等。成都網(wǎng)站營銷推廣熱線:18982081108
第二個for(內(nèi)部循環(huán)),完成對j從0到199的控制,共循環(huán)200次。
翻譯成匯編就是:
(R0為傳遞參數(shù))
DELAY:
MOV R1,#200
DJNZ R1,$
DJNZ R0,DELAY
RET
Imports System.Threading
Thread.Sleep(1000)’延遲1秒
2.PauseWait(1000)’延遲1秒
Public Sub PauseWait(ByVal HowLong As Long)
Dim tick As Long
tick = My.Computer.Clock.TickCount
Do
My.Application.DoEvents()
Loop Until tick + HowLong My.Computer.Clock.TickCount
End Sub
Threading.Thread.Sleep(500)這句是線程停止等待的,在這500毫秒的時間里你的任何動作都是不響應(yīng)的,理論上再SendKeys.Send(TextBox2.Text)這段時間內(nèi)你可以動作,但是send是毫秒級完成的,你還沒有來得及響應(yīng)就進(jìn)入了下一次的循環(huán),所以跟卡死類似
解決方法:通過timer定時器延時
接收單片機(jī)的數(shù)據(jù)沒有事件響應(yīng) 我在While循環(huán)中不停的判斷單片機(jī)所收到的數(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 希望大哥能提供讓程序等待的代碼,例子也行