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

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

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

STM32三種復(fù)位形式

科技綠洲 ? 來源:MCU開發(fā)加油站 ? 作者:MCU開發(fā)加油站 ? 2023-06-22 09:05 ? 次閱讀

STM32F10xxx支持三種復(fù)位形式,分別為系統(tǒng)復(fù)位、上電復(fù)位和備份區(qū)域復(fù)位。

一、系統(tǒng)復(fù)位

系統(tǒng)復(fù)位將復(fù)位所有寄存器至它們的復(fù)位狀態(tài)。

當(dāng)發(fā)生以下任一事件時(shí),產(chǎn)生一個(gè)系統(tǒng)復(fù)位:

NRST引腳上的低電平(外部復(fù)位)

窗口看門狗計(jì)數(shù)終止(WWDG復(fù)位)

獨(dú)立看門狗計(jì)數(shù)終止(IWDG復(fù)位)

軟件復(fù)位(SW復(fù)位)

低功耗管理復(fù)位 可通過查看RCC_CSR控制狀態(tài)寄存器中的復(fù)位狀態(tài)標(biāo)志位識別復(fù)位事件來源。

軟件復(fù)位通過將Cortex?-M3中斷應(yīng)用和復(fù)位控制寄存器中的SYSRESETREQ位置’1’,可實(shí)現(xiàn)軟件復(fù)位。請參考Cortex?-M3技術(shù)參考手冊獲得進(jìn)一步信息。低功耗管理復(fù)位在以下兩種情況下可產(chǎn)生低功耗管理復(fù)位:

在進(jìn)入待機(jī)模式時(shí)產(chǎn)生低功耗管理復(fù)位:通過將用戶選擇字節(jié)中的nRST_STDBY位置’1’將使能該復(fù)位。這時(shí),即使執(zhí)行了進(jìn)入待機(jī)模式的過程,系統(tǒng)將被復(fù)位而不是進(jìn)入待機(jī)模式。

在進(jìn)入停止模式時(shí)產(chǎn)生低功耗管理復(fù)位:通過將用戶選擇字節(jié)中的nRST_STOP位置’1’將使能該復(fù)位。這時(shí),即使執(zhí)行了進(jìn)入停機(jī)模式的過程,系統(tǒng)將被復(fù)位而不是進(jìn)入停機(jī)模式。

關(guān)于用戶選擇字節(jié)的進(jìn)一步信息,請參考STM32F10xxx閃存編程手冊。

二、電源復(fù)位

電源復(fù)位當(dāng)以下事件中之一發(fā)生時(shí),產(chǎn)生電源復(fù)位:

上電/掉電復(fù)位(POR/PDR復(fù)位)

從待機(jī)模式中返回 圖4) 電源復(fù)位將復(fù)位除了備份區(qū)域外的所有寄存器。

(見圖中復(fù)位源將最終作用于RESET引腳,并在復(fù)位過程中保持低電平。復(fù)位入口矢量被固定在地址0x0000_0004。芯片內(nèi)部的復(fù)位信號會在NRST引腳上輸出,脈沖發(fā)生器保證每一個(gè)(外部或內(nèi)部)復(fù)位源都能有至少20μs的脈沖延時(shí);當(dāng)NRST引腳被拉低產(chǎn)生外部復(fù)位時(shí),它將產(chǎn)生復(fù)位脈沖。

pYYBAGSNetmAS_rJAACC0A1WRA0081.png

三、備份域復(fù)位

備份區(qū)域擁有兩個(gè)專門的復(fù)位,它們只影響備份區(qū)域(見圖4)。

當(dāng)以下事件中之一發(fā)生時(shí),產(chǎn)生備份區(qū)域復(fù)位。

軟件復(fù)位,備份區(qū)域復(fù)位可由設(shè)置備份域控制寄存器 (RCC_BDCR)(見6.3.9節(jié))中的BDRST位產(chǎn)生。

在VDD和VBAT兩者掉電的前提下,VDD或VBAT上電將引發(fā)備份區(qū)域復(fù)位。

四、復(fù)位的標(biāo)志位

poYBAGSNevCARoo8AAIv9m4ETsk274.png

poYBAGSNev6ACEqxAAFqpaqDOgE473.png

poYBAGSNexCAR9RsAAFrwxIYqvQ752.pngpoYBAGSNexCAR9RsAAFrwxIYqvQ752.pngpYYBAGSNeyuAVAgfAABEbieu3AU692.png

五、復(fù)位標(biāo)志位檢索/判斷什么原因?qū)е碌膹?fù)位

標(biāo)志位判斷的代碼由官方庫中給定代碼如下:

FlagStatus RCC_GetFlagStatus(uint8_t RCC_FLAG);//FlagStatus 分為SET和RESET兩種;

/**

當(dāng)然判斷完后,我們需要將復(fù)位類型的標(biāo)志置位以防后期出現(xiàn)重復(fù)多次判斷void RCC_ClearFlag(void);//清除復(fù)位執(zhí)行函數(shù)

/**

在使用時(shí),只需要執(zhí)行如下語句即可:

if(RCC_GetFlagStatus(RCC_FLAG_PORRST) != RESET)

當(dāng)然軟件復(fù)位的代碼如下:

六、STM32軟件復(fù)位方法

在Cortex-M3權(quán)威指南中有這么一句話這里有一個(gè)要注意的問題:從SYSRESETREQ 被置為有效,到復(fù)位發(fā)生器執(zhí)行復(fù)位命令,往往會有一個(gè)延時(shí)。在此延時(shí)期間,處理器仍然可以響應(yīng)中斷請求。但我們的本意往往是要讓此次執(zhí)行到此為止,不要再做任何其它事情了。所以,最好在發(fā)出復(fù)位請求前,先把FAULTMASK 置位。所以最好在將FAULTMASK 置位才萬無一失。

void mcuRestart(void)

責(zé)任編輯:彭菁

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

    關(guān)注

    31

    文章

    5294

    瀏覽量

    119816
  • STM32
    +關(guān)注

    關(guān)注

    2264

    文章

    10854

    瀏覽量

    354294
  • 編程
    +關(guān)注

    關(guān)注

    88

    文章

    3565

    瀏覽量

    93536
收藏 人收藏

    評論

    相關(guān)推薦

    FPGA中三種常用復(fù)位電路

    在FPGA設(shè)計(jì)中,復(fù)位電路是非常重要的一部分,它能夠確保系統(tǒng)從初始狀態(tài)開始啟動并保證正確運(yùn)行。本文將分別介紹FPGA中三種常用復(fù)位電路:同步復(fù)位、異步
    發(fā)表于 05-14 14:44 ?2474次閱讀
    FPGA中<b class='flag-5'>三種</b>常用<b class='flag-5'>復(fù)位</b>電路

    ARQ方式的三種形式

    ARQ方式的三種形式ARQ的作用原則是對出錯的數(shù)據(jù)幀自動重發(fā),它有三種形式:停等協(xié)議ARQ、連續(xù)ARQ和選擇重傳ARQ。(1) 停等協(xié)議ARQ發(fā)方發(fā)送一個(gè)數(shù)據(jù)幀后,必須等待收方的確認(rèn)幀
    發(fā)表于 07-15 14:43

    三種復(fù)位方式比較

    三種復(fù)位方式比較
    發(fā)表于 08-16 17:31

    三種類型的復(fù)位

    00. 目錄文章目錄00. 目錄01. 概述02. 系統(tǒng)復(fù)位03. 電源復(fù)位04. 備份域復(fù)位05. 預(yù)留06. 附錄07. 聲明01. 概述共有三種類型的
    發(fā)表于 07-23 06:10

    STM32F103復(fù)位的作用及其復(fù)位形式

    復(fù)位的作用:? ? ? 復(fù)位指將STM32系統(tǒng)各功能寄存器及I/O口設(shè)為最初狀態(tài)(備份區(qū)域不被復(fù)位)。復(fù)位
    發(fā)表于 08-02 10:58

    STM32三種復(fù)位類型

    最近在項(xiàng)目的時(shí)候需要判別STM32復(fù)位類型,網(wǎng)上這部分資料也有許多大神進(jìn)行總結(jié)。但是感覺不是特別深入,因此,小編參考參考了STM32的參考手冊進(jìn)行詳細(xì)總結(jié)了一下。1、STM32
    發(fā)表于 08-02 06:32

    STM32實(shí)現(xiàn)復(fù)位三種常用方式問題

    STM32實(shí)現(xiàn)復(fù)位三種常用方式問題:最近做項(xiàng)目碰到單片機(jī)程序運(yùn)行過程中,需要根據(jù)外部輸入信號,對單片機(jī)進(jìn)行復(fù)位的操作。解決:目前常用的復(fù)位
    發(fā)表于 08-12 07:23

    while的三種使用形式是什么樣的?

    while的三種使用形式是什么樣的?
    發(fā)表于 11-02 08:35

    stm32f4串口接收的三種形式是什么

    stm32f4串口接收的三種形式是什么
    發(fā)表于 12-09 07:18

    STM32三種boot模式介紹

    淺識STM32三種boot模式文章目錄淺識STM32三種boot模式任務(wù)摘要一、認(rèn)識boot1.三種BOOT模式介紹2.開發(fā)BOOT模式
    發(fā)表于 12-10 07:46

    STM32三種Boot模式的差異

    STM32三種BOOT模式介紹.啟動,一般來說就是指我們下好程序后,重啟芯片時(shí),SYSCLK的第4個(gè)上升沿,BOOT引腳的值將被鎖存。用戶可以通過設(shè)置BOOT1和BOOT0引腳的狀態(tài),來選擇在復(fù)位后的啟動模式。內(nèi)存類型簡介主閃
    發(fā)表于 12-20 07:54

    STM32三種Boot模式及驗(yàn)證

    BOOT1和BOOT0引腳的狀態(tài),來選擇在復(fù)位后的啟動模式。2. 三種Boot模式的比較主閃存器(Main Flash memory)是STM32內(nèi)置的Flash,一般我們使用JTAG或者SWD模式下載程序時(shí),就是下載到這個(gè)里面
    發(fā)表于 11-26 19:51 ?89次下載
    <b class='flag-5'>STM32</b>的<b class='flag-5'>三種</b>Boot模式及驗(yàn)證

    stm32復(fù)位介紹

    復(fù)位介紹STM32F10xxx支持三種復(fù)位形式,分別為系統(tǒng)復(fù)位、上電
    發(fā)表于 12-24 19:32 ?4次下載
    <b class='flag-5'>stm32</b>的<b class='flag-5'>復(fù)位</b>介紹

    STM32F103復(fù)位系統(tǒng)

    復(fù)位的作用:? ? ? 復(fù)位指將STM32系統(tǒng)各功能寄存器及I/O口設(shè)為最初狀態(tài)(備份區(qū)域不被復(fù)位)。復(fù)位
    發(fā)表于 12-27 18:57 ?16次下載
    <b class='flag-5'>STM32</b>F103<b class='flag-5'>復(fù)位</b>系統(tǒng)

    STM32學(xué)習(xí)筆記】技巧2 - STM32復(fù)位類型及區(qū)別

    最近在項(xiàng)目的時(shí)候需要判別STM32復(fù)位類型,網(wǎng)上這部分資料也有許多大神進(jìn)行總結(jié)。但是感覺不是特別深入,因此,小編參考參考了STM32的參考手冊進(jìn)行詳細(xì)總結(jié)了一下。1、STM32
    發(fā)表于 01-17 12:54 ?10次下載
    【<b class='flag-5'>STM32</b>學(xué)習(xí)筆記】技巧2 - <b class='flag-5'>STM32</b>的<b class='flag-5'>復(fù)位</b>類型及區(qū)別