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

📄 frmbootload.frm

📁 PIC24FJ32GA002单片机bootloader rs485通信移植
💻 FRM
📖 第 1 页 / 共 4 页
字号:
                        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
            
            'Send VerifyOk Command to indicate bootloading finised successfully
            If writeFail = False Then
                 
                command(0) = 8 'command
                
                RetStat = SendGetPacket(PicBootS.PortHandle, command(0), 1, 255, 5)
                If RetStat < 0 Then
                    StatusBar1.Panels(PANEL_STATUS).Text = STATUS_VERIFYOK_ERROR
                End If
            End If
            
            
            SetDisplayMode MODE_DONE
            frmBootload.MousePointer = 0
        
            
        Case "Erase"
            frmBootload.MousePointer = 13
            SetDisplayMode MODE_WORKING
            
            If M_MemAccess(1).Checked = True Then
                
                ProgMemAddrH = PicBootS.ProgMemAddrH
            
                'Don't erase last page on PIC24FJ devices if box is checked
                If cFlashConfig.Value = 1 Then
                    ProgMemAddrH = ProgMemAddrH - 1024
                End If
                
                Select Case EraseRangeDevMem(PicBootS.ProgMemAddrL, ProgMemAddrH)
                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_WRITE_FAILURE
                End Select
            End If
                   
            SetDisplayMode MODE_DONE
            frmBootload.MousePointer = 0
                
        Case "Run"
            
            MyButtons = MsgBox("Disabling the bootloader will lock out boot mode. Be sure to have re-entry" & vbCrLf & "code within your firmware to use the bootloader in the future." & vbCrLf & vbCrLf & "Do you want to continue?", vbYesNo, "Disable Bootloader...")
            If MyButtons = vbNo Then   ' User chose Yes.
                Exit Sub   ' Perform some action.
            End If
            
            GotoRunMode
            DisconnectDev
            StatusBar1.Panels(PANEL_STATUS).Text = STATUS_RUNMODE_SET
            
    End Select
End Sub




Private Sub Toolbar1_MouseUp(Button As Integer, Shift As Integer, x As Single, y As Single)
    If Button = 2 Then
        MsConFlag = 2
        PopupMenu M_Program, vbPopupMenuRightButton
    End If
End Sub

'******************************************************************************



Private Sub DisconnectDev()

    AbortFlag = 0
    DoEvents

    'close the port
    If PicBootS.PortHandle > 0 Then
        ClosePIC (PicBootS.PortHandle)
        PicBootS.PortHandle = -1
    End If
    
    Toolbar1.Buttons(9).Value = tbrUnpressed
    StatusBar1.Panels(PANEL_STATUS).Text = STATUS_NOT_CON
    StatusBar1.Panels(PANEL_FWVER).Text = " "
    StatusBar1.Panels(PANEL_DEVICE).Text = " "

    cFlashConfig.Enabled = False

    SetDisplayMode (MODE_NOT_CONNECTED)

End Sub



Private Sub SetDisplayMode(DspMode As Integer)
    
    Select Case DspMode
        
        Case MODE_CONNECTED_IDLE
            Toolbar1.Buttons(1).Enabled = True
            Toolbar1.Buttons(2).Enabled = True
            Toolbar1.Buttons(4).Enabled = True
            Toolbar1.Buttons(5).Enabled = True
            Toolbar1.Buttons(10).Enabled = True
            Toolbar1.Buttons(11).Enabled = True
            Toolbar1.Buttons(12).Enabled = True
            Toolbar1.Buttons(14).Enabled = True
            Toolbar1.Buttons(9).Value = tbrPressed
            
            If PicBootS.DeviceType = 0 Then
                'Unknown
                M_MemAccess(1).Visible = True
                M_MemAccess(2).Visible = False
                M_MemAccess(3).Visible = False
                M_MemAccess(1).Checked = False
                M_MemAccess(2).Checked = False
                M_MemAccess(3).Checked = False
                Toolbar1.Buttons(12).Enabled = False
                M_PSendCfg.Visible = False
                space101.Visible = False
                cDataEE.Enabled = False
                cDataEE.Value = 0
                cConfig.Enabled = False
                cConfig.Value = 0
                cFlashConfig.Enabled = False
                cFlashConfig.Value = 0
                
            ElseIf PicBootS.DeviceType = 1 Then
                'PIC24F
                M_MemAccess(1).Visible = True
                M_MemAccess(2).Visible = True
                M_MemAccess(3).Visible = True
                M_MemAccess(1).Checked = True
                M_MemAccess(2).Checked = True
                M_MemAccess(3).Checked = False
                M_PSendCfg.Visible = True
                cProgMem.Enabled = True
                cProgMem.Value = 1
                cDataEE.Enabled = True
                cDataEE.Value = 1
                cConfig.Enabled = True
                cConfig.Value = 0
                cFlashConfig.Enabled = False
                cFlashConfig.Value = 0
                
            ElseIf PicBootS.DeviceType = 2 Then
                'PIC24FJ
                M_MemAccess(1).Visible = True
                M_MemAccess(2).Visible = False
                M_MemAccess(3).Visible = False
                M_MemAccess(1).Checked = True
                M_MemAccess(2).Checked = False
                M_MemAccess(3).Checked = False
                M_PSendCfg.Visible = False
                cProgMem.Enabled = True
                cProgMem.Value = 1
                cDataEE.Enabled = False
                cDataEE.Value = 0
                cConfig.Enabled = False
                cConfig.Value = 0
                cFlashConfig.Enabled = True
                cFlashConfig.Value = 1
                
            End If

        Case MODE_WORKING
            
            Toolbar1.Buttons(7).Enabled = True
            Toolbar1.Buttons(1).Enabled = False
            Toolbar1.Buttons(2).Enabled = False
            Toolbar1.Buttons(4).Enabled = False
            Toolbar1.Buttons(5).Enabled = False
            Toolbar1.Buttons(9).Value = tbrPressed
            Toolbar1.Buttons(10).Enabled = False
            Toolbar1.Buttons(11).Enabled = False
            Toolbar1.Buttons(12).Enabled = False
            Toolbar1.Buttons(14).Enabled = False
            
            For i = 1 To M_FPPort.Count
                M_FPPort(i).Enabled = False
            Next i
            
            For i = 1 To M_FPBaud.Count
                M_FPBaud(i).Enabled = False
            Next i
            
            For i = 1 To M_MemAccess.Count
                M_MemAccess(i).Enabled = False
            Next i
            
            cProgMem.Enabled = False
            cDataEE.Enabled = False
            cConfig.Enabled = False
            cFlashConfig.Enabled = False
            M_PSendCfg.Visible = False
            
            
        Case MODE_DONE
            Toolbar1.Buttons(7).Enabled = True
            Toolbar1.Buttons(1).Enabled = True
            Toolbar1.Buttons(2).Enabled = True
            Toolbar1.Buttons(4).Enabled = True
            Toolbar1.Buttons(5).Enabled = True
            Toolbar1.Buttons(9).Value = tbrPressed
            Toolbar1.Buttons(10).Enabled = True
            Toolbar1.Buttons(11).Enabled = True
            Toolbar1.Buttons(12).Enabled = True
            Toolbar1.Buttons(14).Enabled = True
            
            For i = 1 To M_FPPort.Count
                M_FPPort(i).Enabled = True
            Next i
            
            For i = 1 To M_FPBaud.Count
                M_FPBaud(i).Enabled = True
            Next i
            
            For i = 1 To M_MemAccess.Count
                M_MemAccess(i).Enabled = True
            Next i
            
            If PicBootS.DeviceType = 0 Then
                'Unknown
                M_MemAccess(1).Visible = True
                M_MemAccess(2).Visible = False
                M_MemAccess(3).Visible = False
                Toolbar1.Buttons(12).Enabled = False
                M_PSendCfg.Visible = False
                space101.Visible = False
                cDataEE.Enabled = False
                cConfig.Enabled = False
                cFlashConfig.Enabled = False
                
            ElseIf PicBootS.DeviceType = 1 Then
                'PIC24F
                M_MemAccess(1).Visible = True
                M_MemAccess(2).Visible = True
                M_MemAccess(3).Visible = True
                M_PSendCfg.Visible = True
                cProgMem.Enabled = True
                cDataEE.Enabled = True
                cConfig.Enabled = True
                cFlashConfig.Enabled = False
                
            ElseIf PicBootS.DeviceType = 2 Then
                'PIC24FJ
                M_MemAccess(1).Visible = True
                M_MemAccess(2).Visible = False
                M_MemAccess(3).Visible = False
                M_PSendCfg.Visible = False
                cProgMem.Enabled = True
                cDataEE.Enabled = False
                cConfig.Enabled = False
                cFlashConfig.Enabled = True
                
            End If
                        
                        
        Case MODE_NOT_CONNECTED
        
            Toolbar1.Buttons(1).Enabled = False
            Toolbar1.Buttons(2).Enabled = False
            Toolbar1.Buttons(10).Enabled = False
            Toolbar1.Buttons(11).Enabled = False
            Toolbar1.Buttons(12).Enabled = False
            Toolbar1.Buttons(14).Enabled = False
            Toolbar1.Buttons(9).Value = tbrUnpressed
            
            M_PSendCfg.Visible = False
            space101.Visible = False
            M_Program.Enabled = False
            
            For i = 1 To M_MemAccess.Count
                M_MemAccess(i).Checked = False
            Next i
            
            cProgMem.Value = 0
            cDataEE.Value = 0
            cConfig.Value = 0
            cFlashConfig.Value = False
            
            cProgMem.Enabled = False
            cDataEE.Enabled = False
            cConfig.Enabled = False
            cFlashConfig.Enabled = False
        
        Case Else
        
            Toolbar1.Buttons(1).Enabled = False
            Toolbar1.Buttons(2).Enabled = False
            Toolbar1.Buttons(4).Enabled = True
            Toolbar1.Buttons(5).Enabled = True
            Toolbar1.Buttons(7).Enabled = False
            Toolbar1.Buttons(9).Enabled = True
            Toolbar1.Buttons(9).Value = tbrUnpressed
            Toolbar1.Buttons(10).Enabled = False
            Toolbar1.Buttons(11).Enabled = False
            Toolbar1.Buttons(12).Enabled = False
            Toolbar1.Buttons(14).Enabled = False
            
            For i = 0 To M_FPPort.Count
                M_FPPort(i).Enabled = True
            Next i
            
            For i = 0 To M_FPBaud.Count
                M_FPBaud(i).Enabled = True
            Next i
            
            For i = 0 To M_MemAccess.Count
                M_MemAccess(i).Enabled = True
            Next i
            
            cProgMem.Enabled = True
            cDataEE.Enabled = True
            cConfig.Enabled = True
            cFlashConfig.Enabled = True
            
            M_PSendCfg.Visible = False
            space101.Visible = False
           

    End Select
 
End Sub



⌨️ 快捷键说明

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