在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

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

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

3天內不再提示

STM32芯片的那些系統級復位功能

茶話MCU ? 來源:茶話MCU ? 作者:茶話MCU ? 2022-10-19 09:06 ? 次閱讀

我們知道,STM32芯片里有很多系統級的復位,比方上電復位、欠壓復位、看門狗復位、軟件復位、復位腳電平觸發復位等等。這些系統級的復位往往都是針對整個芯片或芯片的絕大部分區域。

其實,我們在實際應用中有時候可能并不需要、甚至不接受總是對整個芯片做大面積的復位。正因為如此,STM32的芯片里除了具備那些系統級復位功能外,還針對各個外設設計了復位功能,即我們可以只需針對某特定外設或特定區域做復位而不影響其它。特定區域一般是指某一塊總線驅動的外設集,比方掛在APB1總線的所有外設。

或許有人不了解、或者說沒有使用過針對特定外設復位的功能,這里就簡單介紹下,拋磚引玉。在STM32各個系列的參考手冊里的RCC章節,有關于對外設或局部外設集進行復位的介紹。類似下圖所示信息:

e21e9a40-4f45-11ed-a3b6-dac502259ad0.png

e25538b6-4f45-11ed-a3b6-dac502259ad0.png

結合上面截圖內容,我們可以針對性地對某個特定外設做強制復位及復位釋放。在ST提供的外設固件庫里也有相應的函數可以調用。比方HAL庫里面就是類似下面這些的代碼【不同版本寫法或許略有差異】:

e2865766-4f45-11ed-a3b6-dac502259ad0.png

e2ef0900-4f45-11ed-a3b6-dac502259ad0.png

從上面截圖里的代碼不難看出,針對某個外設的復位和釋放代碼都是成對地寫好了的。那么,針對STM32外設做復位,一般用在哪些場合呢。我這里稍微總結了下,大致有下面三種情況供參考使用。

一、撥亂反正,歸零再來

在具體應用中,難免可能出現某特定外設工作異常的情形,這時,我們可以嘗試對該外設做強制復位,然后重新配置后啟動運行。比方說,我們在使用I2C硬件模式時,有時會碰到I2C總是出現busy狀態,這時我們可以嘗試對I2C外設做個強制復位,然后再做后續配置。

__I2C1_FORCE_RESET();

__I2C1_RELEASE_RESET();

再比如,有時可能碰到芯片外部LSE工作不穩定,除了排查其它因素外,我們還可以嘗試在配置系統時鐘前對RTC域先做強制復位操作。

__HAL_RCC_BACKUPRESET_FORCE();

__HAL_RCC_BACKUPRESET_RELEASE();

總之,某外設工作途中出現異常,對其進行強制復位,這樣我們可以不受那些不清晰或不確定的狀態干擾,再做配置后重新運行也是比較常見的應對問題的一種做法。

二、改頭換面,重拾使命

在程序運行過程中,我們有時需要對外設做參數或功能的變動,這時對外設做針對性地強制復位就很有必要。其中有些參數或狀態的改變本身就要求對外設做復位。比方,有些寄存器是帶LOCK功能的,當設置LOCK位后,若要消除LOCK功能,往往需要對該外設做復位操作,【此時顯然也沒必要來個系統級復位】。又比方,RTC的時鐘切換也是需要對RTC域復位的,否則你變更不了。

e3300c5c-4f45-11ed-a3b6-dac502259ad0.png

當然,更為常見的是,我們經常會在代碼中根據時間或事件的變化而變更外設的功能及參數,需要重新配置外設。這時來個快刀斬亂麻,對外設先做個強制復位再做配置就非常簡單清爽。

比方前不久有人問起一個CAN應用方面的問題。 他開始是基于回環模式對CAN進行測試,然后想切換到Normal模式。令他費解的是,怎么也切換不過去,除非做模式切換配置之前加入下面這段代碼:

e34d56d6-4f45-11ed-a3b6-dac502259ad0.png

上面代碼的主要功能就是對CAN1做強制復位。因為這是ST早期標準庫的代碼,所以代碼寫法上跟我前面貼出來的很不一樣,但功能一樣。客戶對上面兩行代碼的功能理解有誤,以為是對CAN1外設的時鐘進行開啟和關閉,質問此處開關時鐘操作的意義何在,很是覺得匪夷所思。不難理解,先行對CAN1做強制復位,讓所有狀態先回歸到默認初始狀態【Defaultstate after reset】,然后再做新的配置,就不會受到之前回環模式下的那些配置的牽牽絆絆了,做起狀態切換來自然是順山順水。

三、節能減排,錦上添花

在涉及到STM32芯片低功耗應用時,在進入低功耗模式前,我們除了做些常規的動作外,比如關閉相應外設的運行、處理不用的或跟外界有連接的GPIO等。如果在進入低功耗模式前,對剛才使用過的外設,先來個強制復位,有時或許會給你帶來意想不到的收效。

上面我大致介紹了幾種可能用到外設復位的場景,當然也不排除還有其它場景。總之,適時恰當地使用外設復位,也是我們STM32開發者可以善加利用的一個工具或手段。關于STM32外設復位,這里給兩點提醒作為結尾。

第一點,在做外設復位前,該外設的時鐘一定是開啟了的,更不要與外設時鐘的開啟和關閉相混淆。

第二點,一般來講,針對外設復位操作要求成對出現。即先做強制復位【xxx_Reset_Force】,緊接著做復位釋放【xxx_Reset_Release】。針對外設復位的代碼,在ST提供的HAL庫例程里不難看到,多封裝在xxx__MspDeInit()函數里面。

審核編輯:湯梓紅

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

    關注

    10

    文章

    580

    瀏覽量

    71597
  • STM32
    +關注

    關注

    2290

    文章

    11018

    瀏覽量

    362670
  • 上電復位
    +關注

    關注

    1

    文章

    43

    瀏覽量

    16019

原文標題:話說STM32外設復位

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

收藏 人收藏

    評論

    相關推薦
    熱點推薦

    復位那些小事—系統復位的特殊處理

    復位就是復位撤離,系統復位就是復位結束了系統準備開始工作。
    的頭像 發表于 12-04 15:25 ?2446次閱讀
    <b class='flag-5'>復位</b><b class='flag-5'>那些</b>小事—<b class='flag-5'>系統</b>解<b class='flag-5'>復位</b>的特殊處理

    STM32芯片異常復位的原因有哪些

    在做STM32應用開發過程中,遇到芯片異常復位,或進入了異常處理時,如何解決?通過本篇案例分析,了解更多處理思路。
    的頭像 發表于 03-08 16:24 ?2.1w次閱讀
     <b class='flag-5'>STM32</b><b class='flag-5'>芯片</b>異常<b class='flag-5'>復位</b>的原因有哪些

    STM32復位來源 以及系統和內核復位區別

    STM32復位來源、以及系統和內核復位區別
    的頭像 發表于 02-28 17:13 ?8375次閱讀

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

    CM3(STM32)內核復位系統復位區別及應用
    的頭像 發表于 03-20 09:43 ?5627次閱讀
    CM3(<b class='flag-5'>STM32</b>) 內核<b class='flag-5'>復位</b>與<b class='flag-5'>系統</b><b class='flag-5'>復位</b>區別及應用

    STM32最小系統設計

    主要記錄STM32最小系統相關電路的設計1、需要知道單片機最小系統的組成部分STM32最小系統由①主芯片
    發表于 11-06 18:36 ?19次下載
    <b class='flag-5'>STM32</b>最小<b class='flag-5'>系統</b>設計

    STM32F103復位系統

    復位的作用:? ? ? 復位指將STM32系統功能寄存器及I/O口設為最初狀態(備份區域不被復位
    發表于 12-27 18:57 ?16次下載
    <b class='flag-5'>STM32</b>F103<b class='flag-5'>復位</b><b class='flag-5'>系統</b>

    STM32學習筆記 | 引起電源和系統異常復位的原因

    關注+星標公眾號,不錯過精彩內容每一塊處理器都有復位功能,不同處理器復位的類型可能有差異,引起復位的原因也可能有多種。STM32
    發表于 01-17 12:45 ?2次下載
    <b class='flag-5'>STM32</b>學習筆記 | 引起電源和<b class='flag-5'>系統</b>異常<b class='flag-5'>復位</b>的原因

    STM32復位來源、以及系統和內核復位區別

    每一塊STM32中都有這么一個RCC復位和時鐘控制模塊。STM32復位為三類:系統復位、電源
    發表于 02-10 10:30 ?6次下載
    <b class='flag-5'>STM32</b><b class='flag-5'>復位</b>來源、以及<b class='flag-5'>系統</b>和內核<b class='flag-5'>復位</b>區別

    經典案例解析 | STM32芯片異常復位

    問題描述:某STM32用戶反饋,當使用STM32L4芯片的時候,程序運行一段時間后,會忽然復位復位后程序繼續運行,但是還會繼續
    發表于 02-10 11:30 ?19次下載
    經典案例解析 | <b class='flag-5'>STM32</b><b class='flag-5'>芯片</b>異常<b class='flag-5'>復位</b>

    淺析stm32復位電路方法

    說到復位,我們都不會陌生,系統基本都有一個復位按鍵。復位的種類有很多:上電復位、掉電復位
    發表于 02-11 15:10 ?45次下載
    淺析<b class='flag-5'>stm32</b><b class='flag-5'>復位</b>電路方法

    stm32復位電路如何設計

    1,描述 ? 說到復位,我們都不會陌生,系統基本都有一個復位按鍵。復位的種類有很多:上電復位、掉電復位
    的頭像 發表于 06-22 09:06 ?3389次閱讀

    基于STM32芯片特定外設復位功能

    我們知道,STM32芯片里有很多系統復位,比方上電復位、欠壓
    的頭像 發表于 06-22 09:08 ?3055次閱讀
    基于<b class='flag-5'>STM32</b><b class='flag-5'>芯片</b>特定外設<b class='flag-5'>復位</b>的<b class='flag-5'>功能</b>

    stm32復位 內核復位系統復位

    內核復位:它會使STM32內核(Cortex-M)進行復位,而不會影響其外設,如GPIO、TIM、USART、SPI等這些寄存器的復位
    的頭像 發表于 08-01 17:21 ?5801次閱讀

    stm32復位電容容值

    STM32是意法半導體(STMicroelectronics)推出的一系列32位微控制器,具有低功耗、高性能和豐富的外設功能。在STM32微控制器中,復位電容是電路中的一個重要組成部分
    的頭像 發表于 01-05 17:39 ?2377次閱讀

    STM32復位電路用復位芯片和阻容復位電路區別

    STM32是一款廣泛使用的微控制器,其復位電路設計對于系統的穩定性和可靠性至關重要。本文將詳細介紹STM32復位電路中使用
    的頭像 發表于 08-06 10:26 ?2769次閱讀
    主站蜘蛛池模板: 日本www免费 | 色成人综合 | 最好看最新的中文字幕1 | 午夜狠狠操 | 日本午夜大片免费观看视频 | 熊出没之环球大冒险旧版免费观看 | 真实女人寂寞偷人视频 | 久久国产免费福利永久 | 狼色影院 | 性做久久久久久久免费观看 | 亚洲国产日韩女人aaaaaa毛片在线 | 狠狠五月深爱婷婷网 | 精品福利视频网 | 免费能直接在线观看黄的视频 | 在线观看网站黄 | 开心激情小说 | 日韩一级视频免费观看 | 狠狠狠色丁香婷婷综合久久88 | 夜间免费小视频 | 国产精品一区在线观看你懂的 | 亚洲欧美精品一区二区 | 亚洲第一视频网 | 综合激情网五月 | 久久夜色精品国产噜噜小说 | 久久久网站亚洲第一 | 国产欧美网站 | 亚洲91在线视频 | 99久热只有精品视频免费观看17 | 六月婷婷精品视频在线观看 | 国产亚洲美女精品久久久2020 | 婷婷六月综合 | 国产成人综合网在线播放 | 日韩三级观看 | 精品一区 二区三区免费毛片 | 国产精品嫩草影院人体模特 | 毛片一级黄色 | 国产精品国产三级国产在线观看 | 国产精品片 | 中文天堂网| 免费在线观看理论片 | 一个人看的www片免费高清视频 |