新聞中心

        EEPW首頁 > 嵌入式系統(tǒng) > 設計應用 > stm32 升級程序方案

        stm32 升級程序方案

        作者: 時間:2016-11-13 來源:網(wǎng)絡 收藏
        STM32芯片自帶固化的ISP程序,在芯片上電的時候會檢查BOOT0BOOT1電平狀態(tài),如果
        BOOT0=1
        BOOT1=0
        則會進入自帶的ISP程序,基本可以滿足程序升級需要。
        但是如何進入這個模式,是一個問題,網(wǎng)上有人使用串口的握手信號來控制,但是這樣會超過3條線(RXTXGND)。
        昨天測試了一個方法,上位機發(fā)出一個指令,STM32用戶自己的程序解析后,利用自己的IO口,控制一個簡單的延時電路來拉高BOOT0,然后芯片重新啟動,則進入ISP。刷新完成后,跳入用戶程序運行,控制權(quán)交回用戶程序。
        程序中設置PB8為ISP_DRV,推挽輸出;輸出一定時間后,充滿電容后,可以使用NVIC_SystemReset()重新啟動(3.12庫)。即可進入ISP模式。
        另外,需要在程序中設置如下向量表地址,才可以在勾選ISP程序的jumptouserapplicationafterflash后,進入用戶程序。
        /*SettheVectorTablebaselocationat0x08000000*/
        NVIC_SetVectorTable(NVIC_VectTab_FLASH,0x0);

        測試了若干次沒有發(fā)現(xiàn)異常。


        關鍵詞: stm32升級程

        評論


        技術專區(qū)

        關閉
        主站蜘蛛池模板: 靖西县| 乡城县| 伊宁市| 蓬安县| 孝感市| 二手房| 桂平市| 汽车| 天门市| 北京市| 尉氏县| 徐闻县| 卢龙县| 赞皇县| 灌南县| 建湖县| 梅河口市| 长顺县| 济源市| 南通市| 定襄县| 正定县| 甘孜县| 垦利县| 开化县| 古交市| 长宁县| 平遥县| 宣威市| 德清县| 志丹县| 嘉善县| 白河县| 乌兰浩特市| 东海县| 驻马店市| 正宁县| 泰来县| 昂仁县| 阿拉善左旗| 中方县|