精品国产人成在线_亚洲高清无码在线观看_国产在线视频国产永久2021_国产AV综合第一页一个的一区免费影院黑人_最近中文字幕MV高清在线视频

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

    文章

    5254

    瀏覽量

    119219
  • STM32
    +關注

    關注

    2258

    文章

    10828

    瀏覽量

    352546
  • 時鐘
    +關注

    關注

    10

    文章

    1676

    瀏覽量

    130976
  • 復位
    +關注

    關注

    0

    文章

    166

    瀏覽量

    24128
收藏 人收藏

    評論

    相關推薦

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

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

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

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

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

    CM3(STM32)內核復位與系統復位區別及應用
    的頭像 發表于 03-20 09:43 ?4639次閱讀
    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 ?5993次閱讀
    <b class='flag-5'>STM32</b><b class='flag-5'>時鐘</b>基礎內容和常見問題

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

    STM32H7教程】第14章 STM32H7的電源,復位時鐘系統
    發表于 12-09 11:21 ?35次下載
    【<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 ?4333次閱讀

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

    STM32是一款廣泛使用的微控制器,其復位電路設計對于系統的穩定性和可靠性至關重要。本文將詳細介紹STM32復位電路中使用復位芯片和阻容
    的頭像 發表于 08-06 10:26 ?452次閱讀