吴忠躺衫网络科技有限公司

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

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

3天內不再提示

STM32失能時鐘和復位外設的區別

jf_pJlTbmA9 ? 來源:strongerHuang ? 作者:strongerHuang ? 2023-10-17 11:48 ? 次閱讀

STM32參考手冊中,都有Reset and Clock Control(RCC)復位和時鐘控制的章節。

在這一章節就可以看到有兩類寄存器

peripheral reset register(RSTR)外設復位寄存器。

peripheral clock enable register(ENR)外設時鐘使能寄存器。

我們拿STM32F1參考手冊為例,可以看到如下圖寄存器:

wKgaomUD8YCAXiLmAASaLTuRZnU158.png

一種是控制外設時鐘的寄存器,一種是復位外設的寄存器。

外設時鐘使能和失能

我們都知道,配置STM32外設,會先開啟對應的時鐘(也就是使能外設時鐘)。

比如使能USART1時鐘:

RCC_APB2PeriphClockCmd(RCC_APB2Periph_USART1, ENABLE);

失能USART1時鐘:

RCC_APB2PeriphClockCmd(RCC_APB2Periph_USART1, DISABLE);

前面分享過一篇文章《STM32為什么要先開啟外設時鐘?》,里面有說:為什么我們要先開啟STM32外設時鐘。

從時鐘使能和失能來說,這里再簡單總結一下:使能外設時鐘,我們就可以操作(讀寫)對應的外設;失能外設時鐘,則我們無法操作對應的外設。

所以說,我們要操作外設,就必須要先開啟(使能)其外設時鐘。

復位外設

復位外設相信大部分朋友都能理解,如果使用寄存器開發過的朋友,更應該明白。

簡單來說,復位外設就是恢復外設所有寄存器為上電默認值,也可以說復位了我們的配置。

可能有些地方你會也會發現xx外設配置之前有“重新初始化”外設的操作,如:

USART_DeInit(USART1);
DMA_DeInit(DMA1_Channel1);

這重新初始化代碼里面,其實就是調用了復位外設代碼。

失能外設時鐘和復位外設區別

上面說了失能外設時鐘,我們就不能操作外設了。那么復位外設,我們還能操作外設嗎?外設的時鐘也會被復位嗎?

可能許多人沒有深入分析過,我這里簡單總結一下:

1、外設時鐘未使能(失能狀態),不能配置(讀寫)外設;

2、復位外設,會復位外設的所有寄存器,但外設時鐘不會被復位;

3、外設時鐘使能,復位外設,再清除復位外設,可以繼續配置(讀寫)外設。如USART1重新初始化:

RCC_APB2PeriphResetCmd(RCC_APB2Periph_USART1, ENABLE);
RCC_APB2PeriphResetCmd(RCC_APB2Periph_USART1, DISABLE);

USART_Init(USART1,  USART_InitStructure);

4、復位外設,但不清除復位外設,則不能繼續配置(讀寫)外設。

RCC_APB2PeriphResetCmd(RCC_APB2Periph_USART1, ENABLE);

USART_Init(USART1,  USART_InitStructure);

在STM32的庫函數中,外設復位和清除都是成對的,所以,我們用庫開發的好處,就是相對不容易犯一些錯誤。

因為還有很多朋友使用寄存器開發,有很多細節問題可能沒有深入研究過,就不知道問題到底處在哪里。

所以,建議用寄存器開發的朋友轉向使用(SPL、HAL或CLL)庫開發。如果你非要一步一步理解底層,建議使用SPL標準外設庫。

來源:嵌入式專欄(作者 | strongerHuang)
免責聲明:本文為轉載文章,轉載此文目的在于傳遞更多信息,版權歸原作者所有。本文所用視頻、圖片、文字如涉及作品版權問題,請聯系小編進行處理

審核編輯 黃宇

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

    關注

    31

    文章

    5363

    瀏覽量

    121198
  • STM32
    +關注

    關注

    2272

    文章

    10924

    瀏覽量

    357605
  • 時鐘
    +關注

    關注

    11

    文章

    1747

    瀏覽量

    131804
  • 復位
    +關注

    關注

    0

    文章

    174

    瀏覽量

    24271
收藏 人收藏

    評論

    相關推薦

    STM32為什么要先開啟外設時鐘

    相信很多朋友都曾遇到過這種坑,我最初學習STM32的時候同樣也遇到過。下面,我就來說說為什么我們要先開啟STM32外設模塊時鐘,再對其外設
    的頭像 發表于 10-20 14:10 ?4595次閱讀
    <b class='flag-5'>STM32</b>為什么要先開啟<b class='flag-5'>外設</b><b class='flag-5'>時鐘</b>?

    為使外設如何理解

    為使外設如何理解
    發表于 10-16 18:59

    STM32復位時鐘控制(RCC)

    ,USBRST,CANRSTDACRST:復位DAC接口PWRRST:復位電源接口BKPRST:復位備份接口WWDGRST:復位窗口看門狗1.3.6 AHB
    發表于 02-12 15:41

    STM32片上外設時鐘使復位區別

    時鐘的寄存器,一種是復位外設的寄存器。2外設時鐘使
    發表于 11-15 20:30

    外設時鐘使語句的問題

    主芯片使用的是STM32F207ZET6.如下圖所示,TIM3掛載在APB1總線下面的但是有個疑問,底下外設時鐘使的語句都能使用嗎,有什么區別
    發表于 08-04 13:10

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

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

    STM32片上外設時鐘使 復位區別

    STM32片上外設時鐘使復位
    的頭像 發表于 03-06 15:31 ?6064次閱讀

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

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

    STM32時鐘基礎內容和常見問題

    RCC,Reset and Clock Control(復位時鐘控制),在絕大部分MCU芯片中都包含復位時鐘控制模塊,也是MCU重要的組成部分。 相比于以前51單片機,現在
    的頭像 發表于 04-02 16:39 ?6392次閱讀
    <b class='flag-5'>STM32</b><b class='flag-5'>時鐘</b>基礎內容和常見問題

    STM32H7教程】第14章 STM32H7的電源,復位時鐘系統

    STM32H7教程】第14章 STM32H7的電源,復位時鐘系統
    發表于 12-09 11:21 ?36次下載
    【<b class='flag-5'>STM32</b>H7教程】第14章 <b class='flag-5'>STM32</b>H7的電源,<b class='flag-5'>復位</b>和<b class='flag-5'>時鐘</b>系統

    STM32電源管理、復位時鐘

    第二篇文章——STM32電源、復位時鐘電源管理電源電壓調節器可編程電壓監測器(PVD: Programmable voltage detector )低功耗模式復位Cortex-M3
    發表于 01-05 14:25 ?10次下載
    <b class='flag-5'>STM32</b>電源管理、<b class='flag-5'>復位</b>、<b class='flag-5'>時鐘</b>

    STM32學習筆記】技巧2 - STM32復位類型及區別

    系統復位、電源復位和備份域復位。每一種型號的STM32都包含有這三種復位類型!1.1、系統復位
    發表于 01-17 12:54 ?10次下載
    【<b class='flag-5'>STM32</b>學習筆記】技巧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內核(Cortex-M)進行復位,而不會影響其外設,如GPIO、TIM、USART、SPI等這些寄存器的復位
    的頭像 發表于 08-01 17:21 ?5135次閱讀

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

    STM32是一款廣泛使用的微控制器,其復位電路設計對于系統的穩定性和可靠性至關重要。本文將詳細介紹STM32復位電路中使用復位芯片和阻容
    的頭像 發表于 08-06 10:26 ?1833次閱讀
    北京市| 百家乐官网庄和闲的赌法| 百乐坊百家乐游戏| 乾安县| 德州百家乐21点桌| 宾川县| 百家乐倍投工具| 百家乐代理新闻| 赌场百家乐官网网站| 六合彩马报| 百家乐套利| 百家乐预测神法| 金海岸百家乐官网娱乐城| 网上现金赌博游戏| 皇冠百家乐代理网址| 喜力百家乐官网的玩法技巧和规则 | 新2百家乐现金网百家乐现金网| 百家乐官网透视牌靴价格| 大发888官方授权网| 中国百家乐软件| 豪杰百家乐现金网| 噢门百家乐官网注码技巧| 简阳市| 网上棋牌室| 红树林百家乐的玩法技巧和规则 | 镇安县| 大发888老虎机游戏| 百家乐网真人真钱群| 24山是那二十四山| 大三元百家乐官网的玩法技巧和规则| 百家乐官网辅助工具| 易胜国际| 德州扑克比赛| sz新全讯网网址2290| 立即博百家乐的玩法技巧和规则| 百家乐正品地址| 百家乐赌场现金网| 百家乐庄闲必胜手段| 娱乐城百家乐怎么样| 百家乐珠仔路| 大地百家乐官网的玩法技巧和规则|