vb串口通信界面

界面如上:

程序如下:

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

原文地址:https://www.cnblogs.com/liuyazhou11/p/3553196.html