界面如上:
程序如下:
Dim num As Byte '申明一個全局變量為單字節型
'單擊“清空接收緩沖區”按鈕時,將接收緩沖區清空,此過程為“清空接收緩沖區”的單擊事件
Private Sub Command1_Click()
Text1.Text = "" '將接收緩沖區清空
End Sub
'單擊“清空發送緩沖區”按鈕時,將發送緩沖區清空,此過程為“清空發送緩沖區”的單擊事件
Private Sub Command2_Click()
Text2.Text = "" '將發送緩沖區清空
End Sub
'單擊“發送”按鈕時,將發送緩沖區的單字節發送出去,並接收單片機發過來的數據並顯示
Private Sub Command3_Click()
MSComm1.Output = Text2.Text '將發送緩沖區的單字節發送出去
'等待接收數據,此語句為一個類似C語言中的Do......While()語句,即先接收一次,看看MSCOMM1接收緩沖區中是否有數據存在,如果沒有,則MSCOMM1接收緩沖的字節數為0,則繼續接收,直到其字節數大於0則退出
Do
num = 0
num = MSComm1.InBufferCount '獲取MSCOMM1接收緩沖區中的字符個數,如果沒有接收到內容則接收緩沖區字符個數為0
Loop While num = 0
'將接收緩沖區中的字符在text1中進行顯示
Text1.Text = Text1.Text + MSComm1.Input
End Sub
Private Sub Command4_Click()
'單擊“退出”按鈕時先關閉串口通訊控件,然后關閉軟件
MSComm1.PortOpen = False
End
End Sub
Private Sub Command5_Click()
'單擊“定時發送”按鈕時定時器每隔80ms向單片機發送一次數據並接收一次單片機發送回來的數據
Timer1.Interval = 80
End Sub
Private Sub Command6_Click()
'單擊“關閉定時”按鈕時定時器停止工作,不在每隔80ms向單片機發送數據
Timer1.Interval = 0
End Sub
Private Sub Form_Load()
'軟件加載到內存中時,即在軟件打開的過程中,對串口進行設置並對定時器進行設置
With MSComm1
.CommPort = 3 '設置串口通訊端口為COM2口
.DTREnable = False '關閉DTR檢測功能,因為我們只用到了發送數據線、接收數據線以及地線,沒有用到其他通訊線,所以這個對於我們來說沒有作用
.InputMode = comInputModeText '設置接收緩沖區接收的是字符數據,不是二進制數據
.Settings = "9600,n,8,1" '設置通訊波特率為9600,無奇偶校驗位,8位數據位,1位停止位
.PortOpen = True '打開串口通訊控件
.InBufferCount = 0 '清空MSCOMM1的接收緩沖區
End With
Timer1.Interval = 0 '關閉定時器
End Sub