0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

GD32 MCU進(jìn)入低功耗模式導(dǎo)致無法再進(jìn)行程序下載怎么辦?

聚沃科技 ? 2024-01-12 09:41 ? 次閱讀

很多朋友在調(diào)試GD32 MCU的低功耗模式時(shí)會遇到一個(gè)問題:程序中讓MCU進(jìn)入了Sleep、Deepsleep或者Standby模式,之后MCU就無法再下載程序了。這是因?yàn)樵诘凸哪J较拢琈CU的SW口和JTAG口是無法訪問的。比如下面的程序就會導(dǎo)致該問題發(fā)生:

wKgaomWgmE2Aefg_AABJMobNAdg143.png

該main函數(shù)中第一步是打開PMU時(shí)鐘,然后馬上讓MCU進(jìn)入Deepsleep模式,當(dāng)你想要再次下載程序時(shí),IDE會有如下錯(cuò)誤提示(不同IDE報(bào)錯(cuò)不同):

wKgaomWgmFKAYQv9AAAVvPvOHgk731.png

遇到這種情況怎么辦呢?難道只能重新?lián)Q一顆芯片了?不不不,其實(shí)有方法解決這個(gè)問題的。

方法一:

GD32 MCU的啟動模式根據(jù)芯片上的BOOT0和BOOT1腳是可以選擇三種模式:

wKgZomWgmFiAGvg0AABXA7HXDfo744.png

一般情況下,BOOT0需要接地,也就是程序是從主Flash啟動的,即從用戶代碼區(qū)啟動,此時(shí)代碼會運(yùn)行到進(jìn)入Deepsleep的語句。如果將BOOT0拉高,再重新上電MCU,此時(shí)程序會從出廠引導(dǎo)裝載程序(ISP)或者片上SRAM運(yùn)行,這樣就不會運(yùn)行用戶代碼,也就不會再讓MCU進(jìn)入低功耗了,此時(shí)通過IDE的全片擦除功能將Flash中的程序擦除掉,再將BOOT0恢復(fù)為低并重新上電后,就可以重新下載程序啦。

以聚沃東方紅開發(fā)板為例:

wKgZomWgmF2AaS2bAABlx9iSmiI523.png

wKgaomWgmGKAHQypAANHdJpDaI8473.png

wKgZomWgmGeAarAjAAAgwlDV88E294.png

只需要將上圖中方框處的兩個(gè)排針跳線帽短接,再將Flash擦除即可。

方法二:

如果板子上的BOOT0不好再接高怎么辦呢?不妨試試下面的辦法:

將MCU的NRST腳和仿真器的NRST腳相連,這樣在重新下載程序時(shí),仿真器會先拉低NRST腳讓MCU復(fù)位,再在很短的時(shí)間內(nèi)進(jìn)行程序下載。但這種辦法不是每次都有效,這取決于是仿真器先進(jìn)入下載狀態(tài)還是MCU先進(jìn)入低功耗狀態(tài)。

一些建議:

1、在調(diào)試低功耗模式時(shí),可以在main函數(shù)之前增加幾秒鐘的延時(shí),這樣在復(fù)位MCU后,在MCU進(jìn)入低功耗前,你可以有足夠的時(shí)間進(jìn)行新的程序下載;

2、程序中設(shè)計(jì)算法,讓一些條件達(dá)到后才讓MCU進(jìn)入低功耗模式,比如按鍵,這樣在復(fù)位MCU后,就可以不讓MCU進(jìn)入低功耗了:

wKgaomWgmGyAG0VhAADLqpfLhnA375.png

好了,今天的內(nèi)容就這些,如果還沒有學(xué)廢,那就評論區(qū)聊聊吧~記得點(diǎn)贊收藏加關(guān)注

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報(bào)投訴
  • 單片機(jī)
    +關(guān)注

    關(guān)注

    6030

    文章

    44489

    瀏覽量

    631960
  • mcu
    mcu
    +關(guān)注

    關(guān)注

    146

    文章

    16885

    瀏覽量

    349914
  • GD32
    +關(guān)注

    關(guān)注

    7

    文章

    403

    瀏覽量

    24106
收藏 人收藏

    評論

    相關(guān)推薦

    GD32 MCU入門教程】GD32 MCU GPIO 結(jié)構(gòu)與使用注意事項(xiàng)

    本文是專門為基于GD32 MCU開發(fā)的工程設(shè)計(jì)人員提供,主要介紹了GPIO的功能配置、內(nèi)部結(jié)構(gòu)以及在不同場景使用時(shí)的注意事項(xiàng),旨在幫助GD32 MCU開發(fā)者優(yōu)化對通用型輸入輸出端口(G
    的頭像 發(fā)表于 09-07 10:34 ?521次閱讀
    【<b class='flag-5'>GD32</b> <b class='flag-5'>MCU</b>入門教程】<b class='flag-5'>GD32</b> <b class='flag-5'>MCU</b> GPIO 結(jié)構(gòu)與使用注意事項(xiàng)

    GD32 MCU 入門教程】GD32 MCU FPU 使用方法

    GD32 MCU FPU 使用方法
    的頭像 發(fā)表于 08-25 09:24 ?409次閱讀
    【<b class='flag-5'>GD32</b> <b class='flag-5'>MCU</b> 入門教程】<b class='flag-5'>GD32</b> <b class='flag-5'>MCU</b> FPU 使用方法

    GD32 MCU 入門教程】GD32 MCU 常見外設(shè)介紹(14)RTC 模塊介紹

    GD32 MCU內(nèi)部提供了一個(gè)RTC(實(shí)時(shí)時(shí)鐘)模塊,通過RTC可以實(shí)現(xiàn)日歷時(shí)鐘、鬧鐘等功能。RTC也可以用于深度睡眠或待機(jī)模式低功耗喚醒。不同系列的
    的頭像 發(fā)表于 08-23 09:18 ?356次閱讀
    【<b class='flag-5'>GD32</b> <b class='flag-5'>MCU</b> 入門教程】<b class='flag-5'>GD32</b> <b class='flag-5'>MCU</b> 常見外設(shè)介紹(14)RTC 模塊介紹

    GD32 MCU 入門教程】GD32 MCU 常見外設(shè)介紹(12)FMC 模塊介紹

    閃存控制器(FMC),提供了片上閃存需要的所有功能。FMC 也提供了頁擦除,整片擦除,以及32 位整字或 16 位半字編程閃存等操作。 GD32 MCU 支持不同類型編程的具體說明如下表 GD32
    的頭像 發(fā)表于 08-21 09:56 ?929次閱讀
    <b class='flag-5'>GD32</b> <b class='flag-5'>MCU</b> 入門教程】<b class='flag-5'>GD32</b> <b class='flag-5'>MCU</b> 常見外設(shè)介紹(12)FMC 模塊介紹

    GD32 MCU 入門教程】二、GD32 MCU 燒錄說明 (2)SWD/JTAG在線下載

    GD32系列MCU支持SWD和JTAG(部分型號不支持)接口進(jìn)行下載調(diào)試,這些功能通過ARM CoreSight組件的標(biāo)準(zhǔn)配置和鏈狀連接的TAP控制器來實(shí)現(xiàn)的。調(diào)試和跟蹤功能集成在AR
    的頭像 發(fā)表于 08-08 17:34 ?509次閱讀
    【<b class='flag-5'>GD32</b> <b class='flag-5'>MCU</b> 入門教程】二、<b class='flag-5'>GD32</b> <b class='flag-5'>MCU</b> 燒錄說明 (2)SWD/JTAG在線<b class='flag-5'>下載</b>

    GD32 MCU 入門教程】二、GD32 MCU 燒錄說明(1)ISP 燒錄

    ISP:In System Programing,在系統(tǒng)編程,通過MCU片內(nèi)的引導(dǎo)程序進(jìn)行Flash編程。 GD32片內(nèi)有一個(gè)只讀信息塊,用于存放引導(dǎo)裝載
    的頭像 發(fā)表于 08-08 16:20 ?683次閱讀
    【<b class='flag-5'>GD32</b> <b class='flag-5'>MCU</b> 入門教程】二、<b class='flag-5'>GD32</b> <b class='flag-5'>MCU</b> 燒錄說明(1)ISP 燒錄

    GD32F303無法進(jìn)入低功耗模式的原因?怎么解決?

    ) { pmu_wakeup_pin_enable(); pmu_to_standbymode(WFI_CMD); } 直接執(zhí)行GD32的庫函數(shù)進(jìn)入低功耗模式,會失敗,形式為按下喚
    發(fā)表于 07-09 06:29

    如何排查GD32 MCU復(fù)位是由哪個(gè)復(fù)位源導(dǎo)致的?

    上期為大家講解了GD32 MCU復(fù)位包括電源復(fù)位和系統(tǒng)復(fù)位,其中系統(tǒng)復(fù)位還包括獨(dú)立看門狗復(fù)位、內(nèi)核軟復(fù)位、窗口看門狗復(fù)位等,在一個(gè)GD32系統(tǒng)中,如果莫名其妙產(chǎn)生了MCU復(fù)位,如何排查
    的頭像 發(fā)表于 02-03 09:46 ?1622次閱讀
    如何排查<b class='flag-5'>GD32</b> <b class='flag-5'>MCU</b>復(fù)位是由哪個(gè)復(fù)位源<b class='flag-5'>導(dǎo)致</b>的?

    GD32 MCU是如何進(jìn)入中斷函數(shù)的

    用過GD32 MCU的小伙伴們都知道,程序是順序執(zhí)行的,但當(dāng)有中斷來的時(shí)候程序會跳轉(zhuǎn)到中斷函數(shù),執(zhí)行完中斷函數(shù)后程序又繼續(xù)回到原來的位置繼續(xù)
    的頭像 發(fā)表于 01-30 09:45 ?954次閱讀
    <b class='flag-5'>GD32</b> <b class='flag-5'>MCU</b>是如何<b class='flag-5'>進(jìn)入</b>中斷函數(shù)的

    不同型號的GD32 MCU如何區(qū)分?

    大家是否碰到過以下應(yīng)用場景:同一套軟件代碼希望跑在不同型號的GD32 MCU中,但有些地方需要根據(jù)MCU型號進(jìn)行調(diào)整?或者上位機(jī)或其他MCU
    的頭像 發(fā)表于 01-27 09:32 ?917次閱讀
    不同型號的<b class='flag-5'>GD32</b> <b class='flag-5'>MCU</b>如何區(qū)分?

    如何對GD32 MCU進(jìn)行加密?

    GD32MCU有哪些加密方法呢?大家在平時(shí)項(xiàng)目開發(fā)的過程中,最后都可能會面臨如何對出廠產(chǎn)品的MCU代碼進(jìn)行加密,避免產(chǎn)品流向市場被別人讀取復(fù)制。下面為大家介紹GD32MCU所支持的幾種
    的頭像 發(fā)表于 01-20 09:30 ?1367次閱讀
    如何對<b class='flag-5'>GD32</b> <b class='flag-5'>MCU</b><b class='flag-5'>進(jìn)行</b>加密?

    GD32 MCU的選項(xiàng)字節(jié)是什么?

    GD32 MCU的選項(xiàng)字節(jié)是什么,有什么功能呢?選項(xiàng)字節(jié)被誤篡改如何回復(fù)?
    的頭像 發(fā)表于 01-17 09:42 ?1197次閱讀
    <b class='flag-5'>GD32</b> <b class='flag-5'>MCU</b>的選項(xiàng)字節(jié)是什么?

    GD32F303 低功耗模式要點(diǎn)

    我們都知道,MCU低功耗模式,比如GD32F303芯片,就有Sleep、Deepsleep和Standby三種模式。關(guān)于這三種
    的頭像 發(fā)表于 01-17 09:40 ?2386次閱讀
    <b class='flag-5'>GD</b>32F303 <b class='flag-5'>低功耗</b><b class='flag-5'>模式</b>要點(diǎn)

    你了解GD32 MCU的命名規(guī)則嗎

    下面為大家介紹GD32 MCU的通用命名規(guī)則,以GD32F303ZGT6為例,其中,GD32代表GD32
    的頭像 發(fā)表于 01-13 09:38 ?3373次閱讀
    你了解<b class='flag-5'>GD32</b> <b class='flag-5'>MCU</b>的命名規(guī)則嗎