界面如上:
程序如下:
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