⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄

📁 串口调试软件,用VB6.0开发的,有兴趣的请下
💻
📖 第 1 页 / 共 4 页
字号:
Private Sub Form_Load()  ' 载入窗体

On Error GoTo Err
    LblWeb.FontUnderline = True                                                     ' WEB上加下划线
    LblWeb.ForeColor = vbBlue                                                       ' 蓝色显示WEB
    
    TxtSend.Text = "http://blog.163.com/zhaojun_xf/"                                ' 载入发送信息
    If MSComm.PortOpen = True Then MSComm.PortOpen = False                          ' 先判断串口是否打开,如果打开则先关闭
                                                                                    ' 初始化串口
    Call Comm_initial(Val(Mid(CboCom.Text, 4, 1)), CboBaudrate.Text, Left(CboParitybit.Text, 1), CboDatabit.Text, CboStopbit.Text)
Err:

End Sub

'=====================================================================================
'                   保存接收文本

'=====================================================================================

Private Sub CmdSaveDisp_Click()                                                     ' 保存显示数据

On Error GoTo Err                                                               ' 错误处理

    SaveTextPath = TxtSavePath                                                      ' 路径暂存
    Open TxtSavePath & "\1.txt" For Output As #1                                    ' 打开文件
                                                                                    ' 不存在的话 会创建文件,如已存在 会覆盖
                                                                                    ' output 改为append 为追加
                                                                                    ' 改为input 则只读
    Print #1, Year(Date) & "年" & Month(Date) & "月" & Day(Date) & _
    "日" & Hour(Time) & "时" & Minute(Time) & "分" & Second(Time) & _
    "秒" & vbCrLf & TxtReceive.Text + vbCrLf                                        ' 把接收区的文本保存 文本前加上保存时间 (0000年00月00日00时00分00秒)
                                                                                    ' vbcrlf 为回车换行
    Close #1                                                                        ' 关闭文件
    
    TxtSavePath = "OK,1.txt Save"                                                   ' 提示保存成功
    CmdSaveDisp.Enabled = False
        
    Savetime = Timer                                                                ' 记下开始的时间
    While Timer < Savetime + 5                                                      ' 循环等待 5 - 要延时的时间
        DoEvents                                                                    ' 转让控制权,以便让操作系统处理其它的事件。
    Wend

    TxtSavePath = SaveTextPath                                                      ' 显示保存路径
    CmdSaveDisp.Enabled = True
Err:
    
End Sub

'=====================================================================================
'               停止显示

'=====================================================================================

Private Sub CmdStopdisp_Click()

On Error GoTo Err
    If DisplaySwitch = False Then
        DisplaySwitch = True                                                        ' 关闭显示
        CmdStopdisp.Caption = "继续显示"
    Else
        DisplaySwitch = False                                                       ' 开启显示
        CmdStopdisp.Caption = "停止显示"
    End If
Err:
    
End Sub

'=====================================================================================
'               计数器清零

'=====================================================================================

Private Sub CmdClearCounter_Click()                                                 ' 清除计数器
     
On Error GoTo Err
    SendCount = 0                                                                   ' 发送计数器清零
    ReceiveCount = 0                                                                ' 接收计数器清零
    TxtRXCount.Text = "RX:" & 0                                                     ' 接收计数
    TxtTXCount.Text = "TX:" & 0                                                     ' 发送计数
Err:
        
End Sub

'=====================================================================================
'                更改保存显示数据的目录

'=====================================================================================

Private Sub CmdAmend_Click() '更改

    Dim spShell As Object                                                           ' 定义存放引用对象的变量
    Dim spFolder As Object                                                          ' 定义存放引用对象的变量
    Dim spFolderItem As Object                                                      ' 定义存放引用对象的变量
    Dim spPath As String                                                            ' 定义存放的变量
    
    On Error GoTo Err                                                               ' 错误处理,防止取消打开文件夹时报错
    Const WINDOW_HANDLE = 0
    Const NO_OPTIONS = 0
    
    Set spShell = CreateObject("Shell.Application")
    Set spFolder = spShell.BrowseForFolder(WINDOW_HANDLE, "选择目录:", NO_OPTIONS, "C:\Scripts")
    Set spFolderItem = spFolder.Self
    spPath = spFolderItem.Path
    spPath = Replace(spPath, "\", "\")                                              ' Replace函数的返回值是一个字符串
    TxtSavePath.Text = spPath                                                       ' 把文件夹路径显示在标签上
    SaveTextPath = TxtSavePath.Text                                                 ' 路径暂存
Err:

End Sub

'=====================================================================================
'                  串口设置

'=====================================================================================

Private Sub CboBaudrate_Click()                                                     ' 修改波特率
    
    Call Comm_reSet(Val(Mid(CboCom.Text, 4, 2)), CboBaudrate.Text, Left(CboParitybit.Text, 1), CboDatabit.Text, CboStopbit.Text)             '串口设置

End Sub

Private Sub CboCom_Click()                                                          ' 修改串口
    
    Call Comm_reSet(Val(Mid(CboCom.Text, 4, 2)), CboBaudrate.Text, Left(CboParitybit.Text, 1), CboDatabit.Text, CboStopbit.Text)             '串口设置

End Sub

Private Sub CboDatabit_Click()                                                      ' 修改数据位
    
    Call Comm_reSet(Val(Mid(CboCom.Text, 4, 2)), CboBaudrate.Text, Left(CboParitybit.Text, 1), CboDatabit.Text, CboStopbit.Text)             '串口设置

End Sub
        
Private Sub CboParitybit_Click()                                                    ' 修改校验位
    
    Call Comm_reSet(Val(Mid(CboCom.Text, 4, 2)), CboBaudrate.Text, Left(CboParitybit.Text, 1), CboDatabit.Text, CboStopbit.Text)             '串口设置

End Sub

Private Sub CboStopbit_Click()                                                      ' 修改停止位

    Call Comm_reSet(Val(Mid(CboCom.Text, 4, 2)), CboBaudrate.Text, Left(CboParitybit.Text, 1), CboDatabit.Text, CboStopbit.Text)             '串口设置

End Sub

'=====================================================================================
'             清空数据

'=====================================================================================

Private Sub CmdClearSend_Click()                                                    ' 清除发送区

    TxtSend.Text = ""
    
End Sub

Private Sub CmdClearReceive_Click()                                                 ' 清空接收区

    TxtReceive.Text = ""
    
End Sub

'=====================================================================================
'             选择要发送的文件并放入内存中

'=====================================================================================

Private Sub CmdSelectFile_Click()                                                   ' 选择要发送的文件

    On Error GoTo Err                                                               ' 错误处理

    CommonDialog1.Flags = cdlCFBoth
    CommonDialog1.ShowOpen
    TxtSendPath.Text = CommonDialog1.FileName                                       ' 把打开的文件名给于TxtSendPath
    
    Open TxtSendPath.Text For Input As 1                                            ' 打开选择的文件
    FileData = StrConv(InputB$(LOF(1), 1), vbUnicode)                               ' 显示打开的文件
    Close 1                                                                         ' 关闭文件
    
Err:
    
End Sub

'=====================================================================================
'                   文件数据发送

'=====================================================================================

Private Sub CmdSendFile_Click() '发送文件
    
On Error GoTo Err
    If MSComm.PortOpen = True Then                                                  ' 如果串口打开了,则可以发送数据
        If FileData = "" Then                                                       ' 判断发送数据是否为空
            MsgBox "发送的文件为空", 16, "串口调试助手"                             ' 发送数据为空则提示
        Else
            If ChkHexReceive.Value = 1 Then                                         ' 如果按十六进制接收时,按二进制发送,否则按文本发送
                MSComm.InputMode = comInputModeBinary                               ' 二进制发送
            Else
                MSComm.InputMode = comInputModeText                                 ' 文本发送
            End If
            
            MSComm.Output = Trim(FileData)                                          ' 发送数据
            
            ModeSend = True                                                         ' 设置文本发送方式
        End If
    Else
        MsgBox "串口没有打开,请打开串口", 48, "串口调试助手"                       ' 如果串口没有被打开,提示打开串口
    End If
Err:
  
End Sub

'====================================================================================
'                     发送文本数据

'====================================================================================

Private Sub CmdSend_Click()                                                         ' 发送按钮

On Error GoTo Err
    If MSComm.PortOpen = True Then                                                  ' 如果串口打开了,则可以发送数据
        If TxtSend.Text = "" Then                                                   ' 判断发送数据是否为空
            MsgBox "发送数据不能为空", 16, "串口调试助手"                           ' 发送数据为空则提示
        Else
            If ChkHexSend.Value = 1 Then                                            ' 发送方式判断
                MSComm.InputMode = comInputModeBinary                               ' 二进制发送
                Call hexSend                                                        ' 发送十六进制数据
            Else                                                                    ' 按十六进制接收文本方式发送的数据时,文本也要按二进制发送发送
                If ChkHexReceive.Value = 1 Then
                    MSComm.InputMode = comInputModeBinary                           ' 二进制发送
                Else
                    MSComm.InputMode = comInputModeText                             ' 文本发送
                End If
                
                MSComm.Output = Trim(TxtSend.Text)                                  ' 发送数据
                ModeSend = False                                                    ' 设置文本发送方式
            End If
        End If
    Else
        MsgBox "串口没有打开,请打开串口", 48, "串口调试助手"                       ' 如果串口没有被打开,提示打开串口
    End If
Err:

End Sub

'====================================================================================
'                 通信触发事件

'====================================================================================

Private Sub MSComm_OnComm()                                                         ' 设置oncomm事件,读取片机内存的值
    
On Error GoTo Err
    Select Case MSComm.CommEvent                                                    ' 每接收1个数就触发一次
        Case comEvReceive
            If ChkHexReceive.Value = 1 Then
                Call hexReceive                                                     ' 十六进制接收
            Else
                Call textReceive                                                    ' 文本接收
        End If
            
        Case comEvSend                                                              ' 每发送1个数就触发一次
            If ChkHexSend.Value = 1 Then
            Else
                Call textSend                                                       ' 文本发送
            End If
            
        Case Else
    End Select
Err:
  
End Sub

'====================================================================================
'                 文本接收

'====================================================================================
Private Sub textReceive()

On Error GoTo Err
    InputSignal = MSComm.Input
    ReceiveCount = ReceiveCount + LenB(StrConv(InputSignal, vbFromUnicode))        ' 计算总接收数据
    If DisplaySwitch = False Then                                                  ' 显示接收文本
        TxtReceive.Text = TxtReceive.Text & InputSignal                            ' 单片机内存的值用TextReceive显示出
        TxtReceive.SelStart = Len(TxtReceive.Text)                                 ' 显示光标位置

    End If
    TxtRXCount.Text = "RX:" & ReceiveCount                                         ' 接收字节数显示
    
    If ChkAutoClear.Value = 1 Then                                                 ' 自动清空判断
        If ReceiveCount >= 65535 Then
            TxtReceive.Text = ""
        End If
    End If
Err:
            
End Sub

'====================================================================================
'                 文本发送

'====================================================================================

Private Sub textSend()

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -