stm32單片機休眠模式後無法下載程序怎麼辦

2020-12-23 電子發燒友

stm32單片機休眠模式後無法下載程序怎麼辦

發表於 2018-03-23 14:40:00

利用stm32單片機的休眠模式,使單片機間歇的休眠從而實現低功耗的目的。往往會出現進入休眠後無法喚醒,導致下一次程序燒不進去。通常的解決辦法是:一般的開發板或單片機最小系統都會有復位鍵,按住復位鍵,點下載,然後鬆開復位鍵即可。

我遇到的問題是:誤入了stm32(STM32L051C6T6)的STOP模式,又沒有寫入相應的喚醒方法,導致後續的程序不能下載。使用MDK5 點擊load時總會出現No target connected。自己設計的最小系統又沒有加入復位鍵。。。

有以下幾種解決辦法:

1、可以將單片機的NRST引腳引出來,外接復位鍵。(關於引腳查看可用ST官方軟體STM32cubeMX,很方便)

2、通過ISP的方式下載程序,必須將boot0接高電平,boot1(PB2)接低電平,然後必須斷電後重啟,此時單片機會進入ISP模式,就可以通過串口1(一般單片機都是只有串口1才可下載程序)再用flymcu等軟體燒入hex文件就可以了。

關於boot0和boot1,在每個stm32單片機都會有這兩個引腳,這兩個引腳在復位時的電平狀態決定了晶片在復位後從哪個區域開始執行程序。

boot1=x boot0=0從用戶快閃記憶體啟動,這是正常的工作模式。

boot1=0 boot0=1從系統存儲器啟動(進入ISP模式)。

boot1=1 boot0=1從內置SRAM啟動,這種模式可以用於調試。

如此一來,單片機無法進入正常的工作模式,就無法進行休眠,就可以通過ISP來下載程序。

3、使用STlink燒寫程序,STlink至少要接4根線(SWDIO、SWCLK、GND、SW-RST),一般的下載程序只需要前三根就可以了,但是以防出現休眠無法喚醒的情況,這時有復位鍵就可以將SWDIO和SWCLK重置,如果板子設計沒有與SW-RST相對應的,此時需要把單片機上的NRST引出來接到SW-RST上。下載程序之前boot0接高電平,boot1不用管(也需要斷電後重啟)。

下載配置這裡按如下配置,RESET那裡HW RESET和SYSRESETREQ任選一個。

配置好之後load一個空程序即可,不要再燒一個休眠的程序了,之後就可以正常燒程序了。

總結:由於板子設計等原因,使用的是第三個方法,前兩個方法也都是可用的。

打開APP閱讀更多精彩內容

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容圖片侵權或者其他問題,請聯繫本站作侵刪。 侵權投訴

相關焦點

  • stm32與pic單片機比較_哪個好
    2.0V到3.6V的工作電壓範圍兼容主流的電池技術,如鋰電池和鎳氫電池,封裝還設有一個電池工作模式專用引腳Vbat。以72MHz頻率從快閃記憶體執行代碼,僅消耗 27mA電流。低功耗模式共有四種,可將電流消耗降至兩微安。從低功耗模式快速啟動也同樣節省電能;啟動電路使用STM32內部生成的8MHz信號,將微控制器從停止模式喚醒用時小於6微秒。
  • avr單片機和stm32區別與優缺點分析
    摘要:avr單片機和stm32單片機是目前使用較廣泛的單片機,那麼avr單片機和stm32單片機有什麼區別呢?有什麼優劣勢呢?   二、stm32單片機介紹   由ST廠商推出的stm32系列單片機,行業的朋友都知道,這是一款性價比超高的系列單片機,應該沒有之一,功能及其強大。
  • 單片機下載程序電路原理之USB轉串口線、CH340、PL2303、MAX2
    >了,如果這一步都有問題,那麼後面的一切便無從談起,今天在此針對常用51單片機下載程序問題做下詳解,有誤之處還望各位指教!本文引用地址:http://www.eepw.com.cn/article/201611/321846.htm原理:單片機的TXD、RXD是TTL電平,所以你得萬變不離其宗的將其它信號轉成TTL電平,只有這樣給單片機下載程序才有可能成功!
  • stm32為什麼短短幾年就佔領了單片機的大半江山?來了解一下
    ,可謂是51單片機經久不衰,低端8位機市場基本不可替代,經得住了歷史的考驗,當時8位機還有avr,16位機有msp430,其他廠家單片機還有pic,高端嵌入式處理器等市場有arm7,arm9等,各種單片機都「安分守己,各守其位,一片祥和」,可是到了14年,當我再次進行單片機開發的時候,發展stm32非常火爆了,企業都在用stm32來做開發,曾經用8位機開發的產品大部分轉而用stm32開發,曾經只能用
  • 基於STM32的 USB設計 --單片機程序篇
    獲取各種描述信息後,作業系統會為其配置相應的資源。這樣主機就可以與設備之間進行通信了。  usb通訊有四種通訊方式控制(control)、中斷(interrupt)、批量(bulk)和同步( synchronous)。usb通訊是通過管道(pipe)實現的。管道是一個抽象的概念,指的是主機與設備之間通訊的虛擬鏈路。
  • 吃透單片機編程軟體,IAR單片機編程軟體創建stm32工程
    Keil和IAR單片機編程軟體,是當前流通度龐大的兩款單片機編程軟體。而對於單片機編程軟體的使用,各自存在一定區別。本文中,將為大家講解IAR單片機編程軟體建立stm32工程的詳細方法,希望大家通過本文能夠有所收穫哦。
  • 51,AVR,PIC,MSP430,STM32單片機比較
    ,下載方式。編程器自己自製ISP下載線就行,好做,成本5元左右。在keil選擇單片機選項框中可以選擇其它比較接近的片子,也可以下載stc的keil驅動程序,不過裡面只有STC89系列的片子。串口編程很方便,只需RS232的電路(無論是對於初學者還是產品開發調試)。
  • STC單片機的自動程序下載--Auto ISP
    很多朋友手頭上都有基於STC單片機的開發板或學習板,我看到大多數人都是通過切斷電源冷啟動的辦法下載程序,其實STC單片機的ISP軟體提供了無須冷啟動在線下載的辦法,即自定義下載。下面介紹一下具體過程:第一步:編寫串口操作程序。這種自動下載方法需要用到串口中斷。所謂自動下載,就是說當前單片機已經在運行程序了,但這個程序必須具備串口中斷功能,通過串口接收特定字符標誌,使得單片機知道應該從運行用戶程序狀態退出,復位後進入監控狀態(即ISP狀態),為下載新的用戶程序做好準備。
  • JFlash ARM對stm32程序的讀取和燒錄
    stm32的程序下載方式ISP、JFLASH、MDK總結 1.首先看一下stm32啟動模式 stm32的啟動模式由32晶片的boot0與boot1引腳決定。
  • stm32之keil開發環境搭建
    1 下載stm32F10x的官方庫http://www.st.com/web/en/catalog/tools/PF257890 2 新建工程工程名設為stm32_demo,選擇晶片型號為STM32F103B,如圖,
  • STC單片機程序燒錄與ISP下載相關知識
    說點題外話,為了感覺「專業」一點,以後不要再說給單片機「裝程序」了,專業點的說法應該是燒寫程序,或者下載程序。讀者很可能會好奇為什麼叫燒寫程序呢?難道下載程序的時候,要用火烤一烤單片機嗎?當然不是。這個就像馬路為什麼叫馬路一樣,是有來歷的,想知道具體原因,還是等大家學習了單片機,了解早期ROM的工作原理再去深究吧。  回歸正題,不同的單片機燒寫程序的方式是不一樣的。
  • 單片機程序怎麼燒寫?各種單片機程序燒寫方法,快來看看吧!
    單片機學習、使用非常重要的一個步驟就是把寫好的程序燒寫到單片機裡,好多初學者,好不容易才寫好一個程序,馬上想讓他跑起來,但是如何燒寫程序確犯難了!我把單片機常用的燒寫方法做了一下歸納,希望能夠幫到大家!
  • 單片機程序下載的時鐘源是內部還是外部的呢
    在給單片機下載程序的時候,單片機內會有一段內置程序來協助下載器,把要下載的程序放到合適的位置。那麼,這段內置程序用的時鐘源是內部還是外部的呢?
  • 51單片機程序燒寫說明
    設置好熔絲後點擊寫入。加載所要燒錄的程序文件:點擊調入Flash,選擇所要燒錄的編譯好的程序文件編程燒錄:在編程選項裡配置所需要的選項,點擊自動按鈕就可以自動完成程序燒錄。最常用的選項就是如圖的三個選項,其他的選項要慎用。
  • stm32學習之三
    1、GPIO之LED燈的點亮程序: GPIO的功能是多樣的,驅動LED燈,獲得按鍵的輸入信息……。基本知識掌握:2013年4月24日:下午:stm32學習的原因:1、從內核上:一般人開始學習的時候,都是從arm7開始的,但是自從stm32開發板出現後,就發現了人們更多的在使用了stm32了。
  • stm32通用定時器用做外部脈衝計數器的例程
    其實stm32通用定時器做計數器,對外部脈衝計數,還是比較簡單的,使用外部時鐘模式2即可輕鬆實現,但要注意,這種模式下,外部輸入脈衝信號一定要接在相應TIM的ETR引腳上,不能接在TIMx_CHy引腳上。使用stm32定時器的外部時鐘模式2,主要就是通過配置TIMx_SMCR寄存器相應位。步驟如下:1.
  • Stm32單片機開發KEIL啟動文件彙編語言詳解
    文章目錄簡介啟動文件彙編代碼相關指令堆棧空間的定義初始化中斷向量表復位中斷函數中斷函數的弱(WEAK)聲明用戶棧和堆初始化簡介我們在做單片機編程的時候,大部分都是用KEIL自帶的啟動文件來使程序進入C語言main函數,然後進行C語言編程開發的工作。那麼這個啟動文件到底做了什麼呢?
  • 關於調試stm32和stm8(51單片機)的i2c和spi協議的之間的區別
    stm32在72M運行下可以實現i2c或者spi協議,但並不代表把相同的代碼移植到51單片機上就會成功的跑起來,因為51單片機的速讀最塊8M,所以在時序上會產生很多大的區別。經過測試,在stm32上的spi協議時鐘線可達到20Khz,移植到51後,頻率會降到<10hz。
  • 走進STM32世界之Hex程序燒寫
    多數51單片機(STC系列單片機)的初學者都知道,在51單片機初上電時,可以通過PC機上位機軟體將程序引導至bootloader,從而將新程序的hex文件下載至單片機中,完成程序的升級或是更新。在32位Cortex-M3內核下的STM32單片機也是可以做到的。
  • STM32之option bytes踩坑記錄
    最近在做一個stm32項目,用的盜版jlink調試,突然某次下完程序,stm32竟然開始無限重啟了,量了一下復位腳,發現有周期性的重啟脈衝輸出,一開始我以為是硬體壞了,重新焊了一套硬體,發現新焊的是好的,但是原來那塊板子,檢查來檢查去感覺也不像是硬體和程序的問題。