91欧美超碰AV自拍|国产成年人性爱视频免费看|亚洲 日韩 欧美一厂二区入|人人看人人爽人人操aV|丝袜美腿视频一区二区在线看|人人操人人爽人人爱|婷婷五月天超碰|97色色欧美亚州A√|另类A√无码精品一级av|欧美特级日韩特级

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

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

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

STM32復(fù)位來源(寄存器版)

黃工的嵌入式技術(shù)圈 ? 來源:黃工的嵌入式技術(shù)圈 ? 2020-03-14 14:13 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

最近項目遇到了一個問題:一個子系統(tǒng),具有IAP升級的功能,Bootloader位于0x08000000,也就是說系統(tǒng)在運行過程允許復(fù)位。但是,該子系統(tǒng)需要在上電的過程中處理某項任務(wù)(而且只需要上電的那一次)。

問題來了:我們?nèi)绾闻袛嘞到y(tǒng)是第一次上電復(fù)位?

解決的辦法有很多種,但是最簡單的辦法就是獲取系統(tǒng)復(fù)位來源,詳情請看文章。

其實,這篇文章的內(nèi)容也能回答之前一位網(wǎng)友的問題,不知你會不會閱讀本文。

RCC復(fù)位和時鐘控制

RCC:Reset and Clock Control

相信大家都知道RCC是什么,主要就是講述復(fù)位和時鐘的章節(jié)。先來講述一下復(fù)位種類。

STM32的復(fù)位大概分為三類:系統(tǒng)復(fù)位、電源復(fù)位和后備域復(fù)位。

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

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

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

3. 獨立看門狗計數(shù)終止(IWDG復(fù)位)

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

5. 低功耗管理復(fù)位

電源復(fù)位:

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

2. 從待機模式中返回

備份區(qū)域復(fù)位:

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

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

RCC_CSR

CSR:Control/Status Register,即控制/狀態(tài)寄存器

在STM32種,RCC的寄存器和功能因芯片的不同而不同,但RCC_CSR寄存器是眾多STM32種都具有的一個。

這個寄存器就會記錄各種復(fù)位的狀態(tài),我們只需要讀取這個寄存器即可知道是什么樣子引起的復(fù)位。

源代碼實例

上面說了那么多,其實大家都容易理解,但只有真正實測過源代碼,才能真正起到掌握的作用。

為了方便某些懶惰的朋友,我將提供測試源代碼,方便大家學(xué)習(xí)和掌握。

本文源代碼給予前面文章【CM3內(nèi)核復(fù)位與系統(tǒng)復(fù)位區(qū)別及應(yīng)用】提供的源代碼的基礎(chǔ)上修改而來。

現(xiàn)在主要看下測試源代碼和測試效果:

各種情況打印結(jié)果:

1.上電復(fù)位打印信息

CSR = C000000

5.POR/PDR reset

6.PIN reset

Demo...

Demo...

2.按鍵(PIN)復(fù)位打印信息

CSR = 4000000

6.PIN reset

Demo...

Demo...

3.內(nèi)核復(fù)位 NVIC_CoreReset();打印信息

CSR = 0

Demo...

Demo...

4.系統(tǒng)復(fù)位 NVIC_SysReset();打印信息

CSR = 14000000

4.Software reset

6.PIN reset

Demo...

Demo...

到了這一步,相信大家基本明白了。但是,還有值得進一步分析的地方,這里我算是給大家安排的作業(yè)(只有愿意動腦思考的人,才會有進步)。

為了方便大家學(xué)習(xí),我將源代碼提供給大家下載(雖只有STM32F1,但其他系列類似)。

STM32F103ZE(Keil)_復(fù)位來源(寄存器版):

http://pan.baidu.com/s/1hskScba

推薦閱讀:

CM3(STM32)內(nèi)核復(fù)位與系統(tǒng)復(fù)位區(qū)別及應(yīng)用

有一種修飾符能使變量在處理器復(fù)位而不被初始化

最后

微信搜索“EmbeddDeveloper” 或者掃描下面二維碼、關(guān)注,在我的底部菜單查看更多精彩內(nèi)容!

長按識別二維碼 關(guān)注

原文標題:一篇很簡單,有必要了解的文章 - STM32復(fù)位來源(寄存器版)

文章出處:【微信公眾號:strongerHuang】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

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

    關(guān)注

    31

    文章

    5608

    瀏覽量

    129966
  • STM32
    +關(guān)注

    關(guān)注

    2309

    文章

    11162

    瀏覽量

    373406
  • IAP
    IAP
    +關(guān)注

    關(guān)注

    2

    文章

    169

    瀏覽量

    26056
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關(guān)推薦
    熱點推薦

    LAT1170+如何理解 RAMECC FAR 寄存器的值

    電子發(fā)燒友網(wǎng)站提供《LAT1170+如何理解 RAMECC FAR 寄存器的值.pdf》資料免費下載
    發(fā)表于 01-09 16:12 ?0次下載

    【NCS隨筆】nRF54L15使用UICR寄存器保存數(shù)據(jù)

    (NVM)寄存器,用于配置用戶特定的設(shè)置 注意所有 UICR 寄存器都具有 RW1 保護,只能寫入一次,需要再寫的話必須要擦除Erase All 默認復(fù)位值為 0xFFFFFFFF 這個是是
    的頭像 發(fā)表于 11-27 17:09 ?1508次閱讀

    嵌入式系統(tǒng)必懂的 20 個寄存器

    嵌入式開發(fā)看起來很復(fù)雜,但很多操作其實都離不開寄存器。寄存器就是MCU內(nèi)部的存儲單元,它們控制著處理和外設(shè)的行為。熟悉這些寄存器,你就能更精確地操作硬件,提高開發(fā)效率,減少調(diào)試時間。
    的頭像 發(fā)表于 11-14 10:28 ?1085次閱讀
    嵌入式系統(tǒng)必懂的 20 個<b class='flag-5'>寄存器</b>

    NVMe高速傳輸之?dāng)[脫XDMA設(shè)計32:寄存器功能驗證與分析2

    寄存器最大值為 64’hFFFFFFFFFFFFFFFF,到達最大值后一個時鐘周期后翻轉(zhuǎn)回 0, 在隨機時刻使用 force 將寄存器賦值臨近最大值, 當(dāng)寄存器達到最大值后, 翻轉(zhuǎn)回到 0, 讀取數(shù)值為 0, 仿真行為符合設(shè)計預(yù)
    的頭像 發(fā)表于 10-14 17:06 ?719次閱讀
    NVMe高速傳輸之?dāng)[脫XDMA設(shè)計32:<b class='flag-5'>寄存器</b>功能驗證與分析2

    ?SN74LVC595A 8位移位寄存器技術(shù)文檔總結(jié)

    SN74LVC595A器件包含一個8位串行輸入、并聯(lián)輸出移位寄存器,該寄存器為8位D型存儲寄存器供電。存儲寄存器具有并行的 3 態(tài)輸出。為移位寄存器
    的頭像 發(fā)表于 09-28 15:09 ?1394次閱讀
    ?SN74LVC595A 8位移位<b class='flag-5'>寄存器</b>技術(shù)文檔總結(jié)

    ?SN74HCT595 8位移位寄存器技術(shù)解析與應(yīng)用指南

    Texas Instruments SN74HCT595/SN74HCT595-Q1 8位移位寄存器包含8位串進并出移位寄存器,向8位D類存儲寄存器饋送信號。存儲寄存器具有并行 3 狀
    的頭像 發(fā)表于 09-19 14:31 ?943次閱讀
    ?SN74HCT595 8位移位<b class='flag-5'>寄存器</b>技術(shù)解析與應(yīng)用指南

    TPIC6595 8位功率移位寄存器技術(shù)文檔摘要

    該TPIC6595是一款單片、高壓、大電流功率的8位移位寄存器,設(shè)計用于需要相對較高負載功率的系統(tǒng)。該器件在輸出端包含一個內(nèi)置電壓鉗位,用于電感瞬態(tài)保護。功率驅(qū)動應(yīng)用包括繼電器、螺線管和其他中電流
    的頭像 發(fā)表于 09-09 11:10 ?922次閱讀
    TPIC6595 8位功率移位<b class='flag-5'>寄存器</b>技術(shù)文檔摘要

    ?TPIC6B595 8位功率移位寄存器技術(shù)文檔總結(jié)

    TPIC6B595器件是一款單片、高壓、中電流功率8位移位寄存器,設(shè)計用于需要相對高負載功率的系統(tǒng)。該器件在輸出端包含一個內(nèi)置電壓鉗位,用于電感瞬態(tài)保護。功率驅(qū)動應(yīng)用包括繼電器、螺線管和其他中電流
    的頭像 發(fā)表于 09-09 10:16 ?1010次閱讀
    ?TPIC6B595 8位功率移位<b class='flag-5'>寄存器</b>技術(shù)文檔總結(jié)

    ?TLC6C5912 12通道移位寄存器LED驅(qū)動技術(shù)文檔總結(jié)

    該TLC6C5912是一款單片、中壓、低電流功率 12 位移位寄存器 設(shè)計用于需要相對中等負載功率的系統(tǒng),例如 LED。 該器件包含一個 12 位串行輸入并行輸出移位寄存器,可為 12 位饋電
    的頭像 發(fā)表于 08-26 14:16 ?994次閱讀
    ?TLC6C5912 12通道移位<b class='flag-5'>寄存器</b>LED驅(qū)動<b class='flag-5'>器</b>技術(shù)文檔總結(jié)

    如何通過CYUSB3014的設(shè)備寄存器讀取主機發(fā)起的數(shù)據(jù)傳輸?shù)腁CK?如何通過寄存器讀取主機發(fā)送的復(fù)位命令?

    IN 事務(wù)。那么,可以讀取哪個寄存器來確認設(shè)備是否收到了用于發(fā)起 IN 事務(wù)的第一個 ACK 數(shù)據(jù)包? 2. 主機端遠程復(fù)位設(shè)備芯片使用哪個寄存器?讀取該寄存器可以確認設(shè)備已收到來自
    發(fā)表于 07-15 06:20

    CYW920719B2Q40EVB如何從寄存器獲取復(fù)位?

    CYW920719B2Q40EVB 如何從寄存器獲取 復(fù)位,謝謝
    發(fā)表于 07-07 08:14

    使用寄存器點亮LED燈

    學(xué)習(xí)本章時,配合以上芯片手冊中的“19. I/O Ports”章節(jié)一起閱讀,效果會更佳,特別是涉及到寄存器說明的部分。本章內(nèi)容涉及到較多寄存器方面的深入內(nèi)容,對于初學(xué)者而言這些內(nèi)容豐富也較難理解,但非常有必要細讀研究、夯實基礎(chǔ)。
    的頭像 發(fā)表于 05-28 17:37 ?1310次閱讀
    使用<b class='flag-5'>寄存器</b>點亮LED燈

    第四章 什么是寄存器

    本篇文章我們講解了寄存器的概念、地址映射和寄存器操作等內(nèi)容,內(nèi)容比較干,大家有個概念即可,不要求全部熟記掌握,有需要時可重復(fù)查閱觀看。下一篇我們將開始進行實操內(nèi)容,通過控制單片機的GPIO來點亮一顆LED,敬請期待!
    的頭像 發(fā)表于 05-21 14:23 ?1461次閱讀
    第四章 什么是<b class='flag-5'>寄存器</b>

    如何用C語言操作寄存器——瑞薩RA系列FSP庫開發(fā)實戰(zhàn)指南(10)

    由于寄存器的數(shù)量是非常之多的,如果每個寄存器都用像*((uint32_t*)(0x40080000+0x0020*1))這樣的方式去訪問的話,會顯得很繁瑣、很麻煩。為了更方便地訪問寄存器,我們會借助C語言結(jié)構(gòu)體的特性去定義
    的頭像 發(fā)表于 04-22 15:30 ?1970次閱讀
    如何用C語言操作<b class='flag-5'>寄存器</b>——瑞薩RA系列FSP庫開發(fā)實戰(zhàn)指南(10)

    STM32F743的canfd錯誤寄存器,TEC,REC等信息怎么復(fù)位?

    STM32F743的canfd錯誤寄存器,TEC,REC等信息怎么復(fù)位?重新初始化后寄存器值仍然保持。
    發(fā)表于 03-14 07:04