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

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

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

3天內不再提示

關于 STM32 時鐘配置的那些坑

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

掃碼添加小助手

加入工程師交流群

今天分享以下兩點內容:

1.為什么我們要先開啟STM32外設模塊時鐘

2.關于STM32的 I/O 復用功能及什么時候開啟AFIO時鐘;

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

講述本節(jié)內容之前先說一個案例:

前段時間,有一個朋友為配置EXTI的代碼折騰了一天,最終沒有結果。于是問了我這樣一個問題:“你用過STM32F051C8T6的外部中斷嗎,就是GPIO管腳做中斷,我這邊就是進不了中斷”。

然后他把基于標準外設庫、寄存器寫的代碼都給我發(fā)過來了。我仔細看了又看,沒發(fā)現有什么毛病啊。(但是,代碼是截圖分來給我發(fā)過來的)。

于是,我將之前配置IO外部中斷的代碼,按照他(PB2)的要求,寫成一個“EXTI配置”函數發(fā)給他,他直接拷貝過去,成功了。

于是,他仔細對比了代碼,終于發(fā)現了問題的原因,配置的順序不對,使能時鐘不是在最開始。

我想許多朋友都曾遇到過這種坑,我最初學習STM32的時候同樣也遇到過,下面我就來說說為什么我們要先開啟STM32外設模塊時鐘,再對其外設模塊初始化配置?

1.系統(tǒng)架構

不同類型的STM32,它的系統(tǒng)架構各有不同,但原理都類似,由多條主控總線和多條被控總線組成(請參看【參考手冊】存儲器和總線架構章節(jié))。

如STM32F4:

● 八條主控總線:

— Cortex-M4F 內核 I 總線、 D 總線和 S 總線

DMA1 存儲器總線

— DMA2 存儲器總線

— DMA2 外設總線

以太網 DMA 總線

USB OTG HS DMA 總線

● 七條被控總線:

— 內部 Flash ICode 總線

— 內部 Flash DCode 總線

— 主要內部 SRAM1 (112 KB)

— 輔助內部 SRAM2 (16 KB)

— 輔助內部 SRAM3 (64 KB)(僅適用于 STM32F42xxx 和 STM32F43xxx 器件)

— AHB1 外設(包括 AHB-APB 總線橋和 APB 外設)

— AHB2 外設

— FSMC

借助總線矩陣,可以實現主控總線到被控總線的訪問,這樣即使在多個高速外設同時運行期間,系統(tǒng)也可以實現并發(fā)訪問和高效運行。

2.關于AHB和APB總線

AHB:Advanced High-performance Bus,即先進的高性能總線.

APB:Advanced Peripheral Bus,即先進的外圍(外設)總線.

上面說了系統(tǒng)總線的架構引伸出來的就是AHB和APB總線,那為什么要講述AHB和APB總線呢?

我們操作的外圍設備一般都是位于AHB和APB總線上,而AHB可以引伸出AHB1、AHB2,甚至AHB3。同樣APB也存在APB1、APB2等。

如:USART1外設位于APB1總線上,GPIOA位于AHB1高速總線上。

請注意參考手冊中“AHB/APB 總線橋”這一小節(jié),有一條重要的內容:每次芯片復位后,所有外設時鐘都被關閉( SRAM 和 Flash 接口除外)。使用外設前,必須在 RCC_AHBxENR 或 RCC_APBxENR 寄存器中使能其時鐘。

3.STM32時鐘控制

請參看STM32參考手冊關于【復位與時鐘控制RCC】章節(jié)。

STM32的時鐘控制模塊因MCU芯片不同,各有差異,但原理都類似,功能也相當豐富。主要的目的就是給相對獨立的外設模塊提供時鐘,也是為了降低整個芯片的功能。

降低功耗是主要原因,還有一個原因,就是為了兼容不同速度的設備,有些高速,有些低速,如果都用高速時鐘,勢必造成浪費。

RCC給外設提供時鐘是一個主要目的,那么為什么要提供時鐘呢?原因在于外圍設備的寄存器需要時鐘才能工作。你可以把外設當做一個設備,而這個設備需要給它提供電源(時鐘)才能工作。

你在STM32參考手冊的“RCC”章節(jié)可能會看到這么一句話:當外設時鐘沒有啟用時,軟件不能讀出外設寄存器的數值,返回的數值始終是0x0。

4.總結

看到這里相信聰明的你其中已經明白為什么我們要先開啟STM32外設模塊時鐘,再配置其外設模塊了。

簡單來說:操作外設是通過外設總線來實現,只有外設總線有時鐘了才能操作外設。

坑:

A.先使能外設時鐘,再對其進行配置

B.時鐘配置需對應總線

這種基于標準外設庫的低級錯誤,相信肯定有不少人遇到過,希望提高警惕。

2關于STM32的I/O復用功能及什么時候開啟AFIO時鐘

前面有朋友問:“什么時候開啟AFIO時鐘”。寫了上面章節(jié),就順便再講述一下關于STM32的I/O復用功能及什么時候開啟AFIO時鐘。

1.什么是I/O 復用功能?

簡單來說就是把普通I/O用作其它的功能。如:將PA9引腳用作USART1的Tx引腳,那么我們就把這個Tx引腳稱為PA9的復用功能。

打開數據手冊,會發(fā)現類似如下的列表:

2.什么時候開啟AFIO時鐘

為了優(yōu)化芯片引腳封裝的外設數目,可以把一些復用功能重新映射到其他引腳上。設置復用重映射和調試I/O配置寄存器實現引腳的重新映射。這時,復用功能不再映射到它們的原始分配上,而是映射到“重定義功能”上(見上圖)。

這種將引腳重定義到其它引腳上的功能在幾乎所有STM32芯片中都有這個功能,但是實現的方法可能有所不同,其中STM32F1就是通過事件控制的方式將特定功能引腳連接到對應PORT和PIN上。

簡單來說,如果需要使用重定義功能,那么就需要開啟AFIO時鐘。

最后,如果你覺得你的程序可能是因為時鐘配置的問題,不妨上電第一步使能所有時鐘試試。

推薦閱讀:

1.STM32標準外設庫SPL轉換成Cube LL

2.利用STM32 ST-LINK Utility查看內核運行狀態(tài),助你判斷程序是否跑飛

5最后

若覺得文章好,記得點贊、分享。掃描下面二維碼、關注,在底部菜單中查看更多精彩內容!

長按識別圖中二維碼關注

贊賞是對作者的認可與支持!

原文標題:關于STM32時鐘配置的那些坑

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

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

    關注

    135

    文章

    9553

    瀏覽量

    391899
  • STM32
    +關注

    關注

    2309

    文章

    11162

    瀏覽量

    373464
  • Atmel
    +關注

    關注

    17

    文章

    312

    瀏覽量

    110312
  • AMBA
    +關注

    關注

    0

    文章

    70

    瀏覽量

    16028
  • AFIO
    +關注

    關注

    0

    文章

    6

    瀏覽量

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

掃碼添加小助手

加入工程師交流群

    評論

    相關推薦
    熱點推薦

    RK平臺時鐘(CLK)開發(fā):核心知識+調試步驟+問題匯總

    在 RK(瑞芯微)平臺開發(fā)中,時鐘(CLK)子系統(tǒng)是 SOC 的 “心臟”——CPU 變頻、DDR 數據傳輸、以太網通信、LCD 顯示等所有組件的穩(wěn)定運行,都依賴精準的時鐘信號。但時鐘樹復雜、
    的頭像 發(fā)表于 02-05 13:49 ?1161次閱讀
    RK平臺<b class='flag-5'>時鐘</b>(CLK)開發(fā):核心知識+調試步驟+問題匯總

    【RA-Eco-RA2E1-V1.0開發(fā)板試用】 幫你避篇!

    瑞薩開發(fā)板避;e2studio軟件;瑞薩MCU;開發(fā)環(huán)境配置
    的頭像 發(fā)表于 02-04 17:02 ?1192次閱讀
    【RA-Eco-RA2E1-V1.0開發(fā)板試用】 幫你避<b class='flag-5'>坑</b>篇!

    RK3326音頻調試避指南:從“錄不了”到“全功能跑通”的實戰(zhàn)歷程

    ,錄 WAV 就翻車,硬件飛線后還采不到回采數據。今天結合實際硬件圖紙、DTS 配置和調試日志,跟大家拆解 RK3326 上 PDM 麥克風 + 音頻回采的完整調試流程,幫你避開那些 “一看就會,一調就廢” 的
    的頭像 發(fā)表于 02-03 16:06 ?1919次閱讀
    RK3326音頻調試避<b class='flag-5'>坑</b>指南:從“錄不了”到“全功能跑通”的實戰(zhàn)歷程

    求助STM32H563關于LWESP配置UART問題

    求助STM32H563關于LWESP配置UART問題,信息如下: Uart GPIO:PA9 USART1_TXPA10 USART1_RX 參考文章:https://blog.csdn.net
    發(fā)表于 01-27 14:02

    LAT1215+如何讓 STM32WB 在沒有 LSE 時運行 BLE 應用程序

    首先 LSE 可作為 STM32WB RF Wakeup 和 RTC 的時鐘源。STM32WB RF Wakeup 和 RTC 的時鐘源可配置
    發(fā)表于 01-09 10:55 ?0次下載

    那些年我用OpenCV+Qt趟過哪些?寫給視覺應用開發(fā)者的避指南

    從一個寫腳本的算法愛好者,到能獨立設計交付跨平臺視覺檢測系統(tǒng),中間踩了無數的,也總結出一套還算行之有效的方法。今天,中際賽威劉老師不談高深理論,就想把這套從基礎搭建、核心架構到項目實戰(zhàn)的完整
    發(fā)表于 12-02 09:43

    STM32 5 個容易踩的外設使用技巧

    甚至有經驗的工程師,也常在外設配置上浪費大量時間,調試半天仍然找不到問題。本文總結了5個最容易踩STM32外設使用技巧,讓你少走彎路、提高開發(fā)效率。1.GPIO
    的頭像 發(fā)表于 11-24 19:04 ?827次閱讀
    <b class='flag-5'>STM32</b> 5 個容易踩<b class='flag-5'>坑</b>的外設使用技巧

    晶振與STM32那些小關系

    STM32 適配晶振,以及晶振解剖圖
    的頭像 發(fā)表于 11-21 15:37 ?5143次閱讀
    晶振與<b class='flag-5'>STM32</b>的<b class='flag-5'>那些</b>小關系

    Proteus中配置STM32外部時鐘HSE如何配置

    有大佬會配置Proteus中的STM32F103C8的外部時鐘嗎 這個proteus中打印不出來數據,但是在實物的連接中可以正常打印 代碼如下: 并且配置proteus中的虛擬串口
    發(fā)表于 11-02 13:54

    國產MCU開始卷開發(fā)工具了?McuStudio是對STM32Cube的拙劣模仿還是真香逆襲?

    開McuStudio,老STM32用戶DNA就動了。時鐘樹、引腳分配、外設配置,全是那個味兒。可以說,在降低STM32用戶遷移成本這點上,它算是玩明白了。 ? 解決痛點 最直接的,就是
    發(fā)表于 10-31 10:18

    ?CDC1104 1至4可配置時鐘緩沖器技術文檔摘要

    CDC1104是一個 1 到 4 可配置時鐘緩沖器。該器件接受輸入參考時鐘,并創(chuàng)建 4 個緩沖輸出時鐘,輸出頻率等于輸入時鐘的一半 頻率。
    的頭像 發(fā)表于 09-16 09:37 ?771次閱讀
    ?CDC1104 1至4可<b class='flag-5'>配置</b><b class='flag-5'>時鐘</b>緩沖器技術文檔摘要

    求助,關于cubemx + nano 4.1.1 + STM32F405時鐘的問題求解

    有一個關于rtthread的問題:有一個主控stm32F405VGxx的板子,使用rtthread studio創(chuàng)建一個標準版4.1.0的工程,運行沒問題;;用stm32cubemx 新建了一個
    發(fā)表于 09-16 06:05

    選擇身份核驗終端硬件設備,你需要避開那些

    假如你是一個安防軟硬件方案集成商,需要采購一批身份核驗終端硬件設備進行集成開發(fā),功能包括人臉識別、掃碼識別和刷卡識別,最好能支持國產系統(tǒng),在選擇硬件合作商時需要注意什么,又需要避開哪些呢?以下
    的頭像 發(fā)表于 09-02 10:23 ?676次閱讀
    選擇身份核驗終端硬件設備,你需要避開<b class='flag-5'>那些</b><b class='flag-5'>坑</b>?

    求助 有那些機構 有關于 GB/T 4706.1 國標的實操培訓

    求助 有那些機構 有關于 GB/T 4706.1 國標的實操培訓
    發(fā)表于 04-30 16:20

    Modbus TCP通信的那些!你遇到過幾個?

    凌晨三點,產線驟停!觸摸屏瘋狂報通訊超時,老板奪命連環(huán)Call轟炸,而你盯著PLC的Error燈狂閃、儀表數據集體躺平——Modbus TCP的,誰踩誰懂! 別慌!這篇Modbus TCP常見問題
    的頭像 發(fā)表于 04-16 17:17 ?1475次閱讀
    Modbus TCP通信的<b class='flag-5'>那些</b><b class='flag-5'>坑</b>!你遇到過幾個?