国产精品久久久aaaa,日日干夜夜操天天插,亚洲乱熟女香蕉一区二区三区少妇,99精品国产高清一区二区三区,国产成人精品一区二区色戒,久久久国产精品成人免费,亚洲精品毛片久久久久,99久久婷婷国产综合精品电影,国产一区二区三区任你鲁

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

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

3天內不再提示

STM32復位來源(寄存器版)

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

掃碼添加小助手

加入工程師交流群

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

問題來了:我們如何判斷系統是第一次上電復位?

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

其實,這篇文章的內容也能回答之前一位網友的問題,不知你會不會閱讀本文。

RCC復位和時鐘控制

RCC:Reset and Clock Control

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

STM32的復位大概分為三類:系統復位、電源復位和后備域復位。

系統復位:

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

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

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

4. 軟件復位(SW復位)

5. 低功耗管理復位

電源復位:

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

2. 從待機模式中返回

備份區域復位:

1. 軟件復位,備份區域復位可由設置備份域控制寄存器(RCC_BDCR)中的BDRST位產生。

2. 在VDD和VBAT兩者掉電的前提下, VDD或VBAT上電將引發備份區域復位。

RCC_CSR

CSR:Control/Status Register,即控制/狀態寄存器

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

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

源代碼實例

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

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

本文源代碼給予前面文章【CM3內核復位與系統復位區別及應用】提供的源代碼的基礎上修改而來。

現在主要看下測試源代碼和測試效果:

各種情況打印結果:

1.上電復位打印信息

CSR = C000000

5.POR/PDR reset

6.PIN reset

Demo...

Demo...

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

CSR = 4000000

6.PIN reset

Demo...

Demo...

3.內核復位 NVIC_CoreReset();打印信息

CSR = 0

Demo...

Demo...

4.系統復位 NVIC_SysReset();打印信息

CSR = 14000000

4.Software reset

6.PIN reset

Demo...

Demo...

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

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

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

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

推薦閱讀:

CM3(STM32)內核復位與系統復位區別及應用

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

最后

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

長按識別二維碼 關注

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

文章出處:【微信公眾號:strongerHuang】歡迎添加關注!文章轉載請注明出處。

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 寄存器
    +關注

    關注

    31

    文章

    5608

    瀏覽量

    129980
  • STM32
    +關注

    關注

    2309

    文章

    11162

    瀏覽量

    373448
  • IAP
    IAP
    +關注

    關注

    2

    文章

    169

    瀏覽量

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

掃碼添加小助手

加入工程師交流群

    評論

    相關推薦
    熱點推薦

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

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

    【NCS隨筆】nRF54L15使用UICR寄存器保存數據

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

    嵌入式系統必懂的 20 個寄存器

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

    NVMe高速傳輸之擺脫XDMA設計32:寄存器功能驗證與分析2

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

    ?SN74LVC595A 8位移位寄存器技術文檔總結

    SN74LVC595A器件包含一個8位串行輸入、并聯輸出移位寄存器,該寄存器為8位D型存儲寄存器供電。存儲寄存器具有并行的 3 態輸出。為移位寄存器
    的頭像 發表于 09-28 15:09 ?1398次閱讀
    ?SN74LVC595A 8位移位<b class='flag-5'>寄存器</b>技術文檔總結

    ?SN74HCT595 8位移位寄存器技術解析與應用指南

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

    TPIC6595 8位功率移位寄存器技術文檔摘要

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

    ?TPIC6B595 8位功率移位寄存器技術文檔總結

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

    ?TLC6C5912 12通道移位寄存器LED驅動技術文檔總結

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

    如何通過CYUSB3014的設備寄存器讀取主機發起的數據傳輸的ACK?如何通過寄存器讀取主機發送的復位命令?

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

    CYW920719B2Q40EVB如何從寄存器獲取復位

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

    使用寄存器點亮LED燈

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

    第四章 什么是寄存器

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

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

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

    STM32F743的canfd錯誤寄存器,TEC,REC等信息怎么復位

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