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

📄 frmbootload.frm

📁 PIC24FJ32GA002单片机bootloader rs485通信移植
💻 FRM
📖 第 1 页 / 共 4 页
字号:
    Err.Clear
End Sub



Private Sub M_About_Click()
    frmAbout.Show vbModal, frmBootload
End Sub





'******************************************************************************
'Data file related functions
'******************************************************************************
Private Sub EraseDataFiles()
    
    Open VB.App.Path & "\" & PicBootS.ProgMemFile For Output As #1
    Close #1
    
    Open VB.App.Path & "\" & PicBootS.EEDataFile For Output As #1
    Close #1

    Open VB.App.Path & "\" & PicBootS.ConfigFile For Output As #1
    Close #1
End Sub


Private Sub ViewDataFiles()
    
    If M_MemAccess(1).Checked = True Then
        test = Shell(PicBootS.EditorFile & " " & VB.App.Path & "\" & PicBootS.ProgMemFile, vbNormalFocus)
    End If
    
    If M_MemAccess(2).Checked = True Then
        test = Shell(PicBootS.EditorFile & " " & VB.App.Path & "\" & PicBootS.EEDataFile, vbNormalFocus)
    End If
    
    If M_MemAccess(3).Checked = True Then
        test = Shell(PicBootS.EditorFile & " " & VB.App.Path & "\" & PicBootS.ConfigFile, vbNormalFocus)
    End If

End Sub
'******************************************************************************







'******************************************************************************
'Port related setting functions
'******************************************************************************
Private Sub M_FPBaud_Click(Index As Integer)
    
    DisconnectDev
    
    M_FPBaud(1).Checked = Not CBool(Index Xor 1)
    M_FPBaud(2).Checked = Not CBool(Index Xor 2)
    M_FPBaud(3).Checked = Not CBool(Index Xor 3)
    M_FPBaud(4).Checked = Not CBool(Index Xor 4)
    M_FPBaud(5).Checked = Not CBool(Index Xor 5)
    M_FPBaud(6).Checked = Not CBool(Index Xor 6)
    M_FPBaud(7).Checked = Not CBool(Index Xor 7)
    M_FPBaud(8).Checked = Not CBool(Index Xor 8)
    
    PicBootS.BitRate = CLng(M_FPBaud(Index).Caption)
    
    StatusBar1.Panels(PANEL_BITRATE) = M_FPBaud(Index).Caption
    
    SetDisplayMode MODE_NOT_CONNECTED
            
End Sub


Private Sub M_FPPort_Click(Index As Integer)
        
    Dim tempStr As String
        
    DisconnectDev
            
    M_FPPort(1).Checked = Not CBool(Index Xor 1)
    M_FPPort(2).Checked = Not CBool(Index Xor 2)
    M_FPPort(3).Checked = Not CBool(Index Xor 3)
    M_FPPort(4).Checked = Not CBool(Index Xor 4)
    M_FPPort(5).Checked = Not CBool(Index Xor 5)
    M_FPPort(6).Checked = Not CBool(Index Xor 6)
    M_FPPort(7).Checked = Not CBool(Index Xor 7)
    M_FPPort(8).Checked = Not CBool(Index Xor 8)
    M_FPPort(9).Checked = Not CBool(Index Xor 9)
    M_FPPort(10).Checked = Not CBool(Index Xor 10)
    
    If Index < 10 Then
        PicBootS.CommPort = "\\.\" & M_FPPort(Index).Caption
        StatusBar1.Panels(PANEL_PORT) = M_FPPort(Index).Caption
    Else
        tempStr = InputBox("Enter Port Name (e.g. COM10)", "Enter Custom Port", Mid(PicBootS.CommPort, 5))
        If tempStr = "" Then
            MsgBox ("Invalid Entry")
        Else
            PicBootS.CommPort = "\\.\" & tempStr
            StatusBar1.Panels(PANEL_PORT) = tempStr
        End If
    End If
     
    
     
    SetDisplayMode MODE_NOT_CONNECTED
        
End Sub
'******************************************************************************




Private Sub M_MemAccess_Click(Index As Integer)
    If M_MemAccess(Index).Checked = True Then
        M_MemAccess(Index).Checked = False
                    
        Select Case Index
            Case 1
                cProgMem.Value = 0
            Case 2
                cDataEE.Value = 0
            Case 3
                cConfig.Value = 0
        End Select
    Else
        M_MemAccess(Index).Checked = True
                    
        Select Case Index
            Case 1
                cProgMem.Value = 1
            Case 2
                cDataEE.Value = 1
            Case 3
                cConfig.Value = 1
        End Select

    End If


    
End Sub









'******************************************************************************
'Toolbar related functions
'******************************************************************************
Private Sub Toolbar1_ButtonClick(ByVal Button As MSComctlLib.Button)
    Dim sFile As String
    Dim ProgMemAddrH As Long
    Dim command(5) As Byte
    Dim writeFail As Boolean

    Select Case Button.Key
        Case "Open"
                
            With CommonDialog1
                .DialogTitle = "Open HEX File"
                .CancelError = False
                .Flags = cdlOFNHideReadOnly
                .Filter = "INHEX32 Files (*.HEX)|*.HEX|All Files (*.*)|*.*"
                .ShowOpen
                If Len(.FileName) = 0 Then
                    Exit Sub
                End If
            
                PicBootS.InFileName = .FileName
                .FileName = ""
            End With


            RetStat = ImportP24HEXFile(PicBootS.InFileName)


            If RetStat = -2 Then
                StatusBar1.Panels(PANEL_STATUS).Text = STATUS_HEX_FORMAT
            Else
                If RetStat > 0 Then
                    StatusBar1.Panels(PANEL_STATUS).Text = STATUS_HEX_IMPORTED
                Else
                    StatusBar1.Panels(PANEL_STATUS).Text = STATUS_INVALID_HEX
                End If
            End If
            
        Case "Save"
            With CommonDialog1
                .DialogTitle = "Save HEX File"
                .CancelError = False
                .Flags = cdlOFNHideReadOnly
                .Filter = "INHEX32 Files (*.HEX)|*.HEX|All Files (*.*)|*.*"
                .ShowSave
                If Len(.FileName) = 0 Then
                    Exit Sub
                End If
                PicBootS.OutFileName = .FileName
                .FileName = ""
            End With


            ExportP24HEXFile PicBootS.OutFileName


            StatusBar1.Panels(PANEL_STATUS).Text = STATUS_HEX_EXPORTED
        
        
        Case "Clear"
            EraseDataFiles
            
        Case "View"
            ViewDataFiles
            
        Case "Abort"
            AbortFlag = 0
            
        Case "Connect"
            If Toolbar1.Buttons(9).Value = tbrUnpressed Then
                DisconnectDev
            Else
                ConnectToPIC
            End If
            
        Case "Read"
            frmBootload.MousePointer = 13
            SetDisplayMode MODE_WORKING
            
            'read program memory
            If M_MemAccess(1).Checked = True Then
                Select Case ReadRangeDevMem(PicBootS.ProgMemAddrL, PicBootS.ProgMemAddrH, PicBootS.DevBytesPerAddr, 1, PicBootS.ProgMemFile)
                    Case -100
                        StatusBar1.Panels(PANEL_STATUS).Text = STATUS_ABORT
                        SetDisplayMode MODE_DONE
                        frmBootload.MousePointer = 0
                        Exit Sub
                    Case 1
                        StatusBar1.Panels(PANEL_STATUS).Text = STATUS_FINISHED
                    Case Else
                        StatusBar1.Panels(PANEL_STATUS).Text = STATUS_READ_FAILURE
                End Select
            End If
                
            'read eedata
            If M_MemAccess(2).Checked = True Then
                Select Case ReadRangeDevMem(PicBootS.EEDataAddrL, PicBootS.EEDataAddrH, PicBootS.DevBytesPerAddr, 4, PicBootS.EEDataFile)
                    Case -100
                        StatusBar1.Panels(PANEL_STATUS).Text = STATUS_ABORT
                        SetDisplayMode MODE_DONE
                        frmBootload.MousePointer = 0
                        Exit Sub
                    Case 1
                        StatusBar1.Panels(PANEL_STATUS).Text = STATUS_FINISHED
                    Case Else
                        StatusBar1.Panels(PANEL_STATUS).Text = STATUS_READ_FAILURE
                End Select
            End If
            
            'read config
            If M_MemAccess(3).Checked = True Then
                Select Case ReadRangeDevMem(PicBootS.ConfigAddrL, PicBootS.ConfigAddrH, PicBootS.DevBytesPerAddr, 6, PicBootS.ConfigFile)
                    Case -100
                        StatusBar1.Panels(PANEL_STATUS).Text = STATUS_ABORT
                        SetDisplayMode MODE_DONE
                        frmBootload.MousePointer = 0
                        Exit Sub
                    Case 1
                        StatusBar1.Panels(PANEL_STATUS).Text = STATUS_FINISHED
                    Case Else
                        StatusBar1.Panels(PANEL_STATUS).Text = STATUS_READ_FAILURE
                End Select
            End If
 
                 
            SetDisplayMode MODE_DONE
            frmBootload.MousePointer = 0
        
            
        Case "Write"
            frmBootload.MousePointer = 13
            SetDisplayMode MODE_WORKING
            
            writeFail = False
            
            If M_MemAccess(1).Checked = True Then
                Select Case WriteRangeDevMem(PicBootS.DeviceWrtBlock, PicBootS.DevBytesPerAddr, 2, PicBootS.ProgMemFile)
                    Case -100
                        StatusBar1.Panels(PANEL_STATUS).Text = STATUS_ABORT
                        SetDisplayMode MODE_DONE
                        frmBootload.MousePointer = 0
                        writeFail = True
                        Exit Sub
                    Case -101
                        StatusBar1.Panels(PANEL_STATUS).Text = STATUS_VERIFY_ERROR
                        SetDisplayMode MODE_DONE
                        frmBootload.MousePointer = 0
                        test = Shell(PicBootS.EditorFile & " " & VB.App.Path & "\" & PicBootS.ErrorLogFile, vbNormalFocus)
                        writeFail = True
                        Exit Sub
                    Case 1
                        StatusBar1.Panels(PANEL_STATUS).Text = STATUS_FINISHED
           
                    Case Else
                        StatusBar1.Panels(PANEL_STATUS).Text = STATUS_WRITE_FAILURE
                        writeFail = True
                End Select
            End If
            
            If M_MemAccess(2).Checked = True Then
                Select Case WriteRangeDevMem(2, PicBootS.DevBytesPerAddr, 5, PicBootS.EEDataFile)
                    Case -100
                        StatusBar1.Panels(PANEL_STATUS).Text = STATUS_ABORT
                        SetDisplayMode MODE_DONE
                        frmBootload.MousePointer = 0
                        writeFail = True
                        Exit Sub
                    Case -101
                        StatusBar1.Panels(PANEL_STATUS).Text = STATUS_VERIFY_ERROR
                        SetDisplayMode MODE_DONE
                        frmBootload.MousePointer = 0
                        test = Shell(PicBootS.EditorFile & " " & VB.App.Path & "\" & PicBootS.ErrorLogFile, vbNormalFocus)
                        writeFail = True
                        Exit Sub
                    Case 1
                        StatusBar1.Panels(PANEL_STATUS).Text = STATUS_FINISHED
                    Case Else
                        StatusBar1.Panels(PANEL_STATUS).Text = STATUS_WRITE_FAILURE
                        writeFail = True
                End Select
            End If
            
            If M_MemAccess(3).Checked = True Then
                Select Case WriteRangeDevMem(1, PicBootS.DevBytesPerAddr, 7, PicBootS.ConfigFile)
                    Case -100
                        StatusBar1.Panels(PANEL_STATUS).Text = STATUS_ABORT
                        SetDisplayMode MODE_DONE
                        frmBootload.MousePointer = 0
                        writeFail = True
                        Exit Sub
                    Case -101

⌨️ 快捷键说明

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