娇小w搡bbbb搡bbb,《第一次の人妻》,中国成熟妇女毛茸茸,边啃奶头边躁狠狠躁视频免费观看

今天分享以下兩點內容:

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


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


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

講述本節內容之前先說一個案例:

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


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


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


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


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


1.系統架構

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


如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

圖片


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


2.關于AHB和APB總線

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

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


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


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


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


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


3.STM32時鐘控制

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


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


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


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


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


4.總結

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


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


坑:

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

圖片


B.時鐘配置需對應總線

圖片

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


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

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


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

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


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


2.什么時候開啟AFIO時鐘

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


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


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


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


關鍵字:STM32  時鐘  配置 引用地址:關于STM32時鐘配置的那些坑

上一篇:基于STM32、FreeRTOS實現硬件看門狗+軟件看門狗監測多任務的方法
下一篇:宏定義“中斷函數接口”的注意事項

推薦閱讀

“我并不是一個特別在意批評和評論的人,但是有時候,一些關于App Store上應用程序的評論,真的讓我感覺到非常失望!”獨立應用程序開發者Graham Bower提到。?Graham Bower和絕大部分獨立應用程序開發者一樣,為了自己的App投入了所有的心血。“我和我的伴侶一起開發了一個App,這是我們的寶貝,我們很愛惜它,但是,當一些人毫無責任,隨意留下一些莫...
小時候看特務電影時,特工們往往有一項必備的技能,就是隔著幾百米遠盯著正在說話的對象,從嘴型判斷出對方在說什么。有了這種記憶,導致如今看什么語音識別技術都覺得相當一般——我都說出聲兒了你才聽懂,算什么AI好漢。不過最近一項專利申請表明,微軟正在向特工學習,推出了無聲語音識別技術。當AI也能像特工一樣,無聲之中辯人言,我們的世界究竟會有...
據外媒報道,Cerence(賽輪思)推出了創新性的AI語音克隆解決方案My Car, My Voice,可以使人們為車載助手創建定制語音。由于車載語音助手通常具有一套預先定義的聲音選項,因此Cerence的語音克隆技術是一項突破性的創新。利用Cerence的新技術,人們可以快速、輕松地創建自己、家人或朋友的聲音的副本,使其成為汽車語音助手的聲音,用于導航、閱讀消息...
1月22日,獨立后的榮耀首次發布新品——榮耀V40正式發布。榮耀V40在ID設計上將理性的矩形空間和感性的色彩變幻相融合,采用1:3:9:27等比矩形序列重新劃分平面,還配備了一塊行業領先的10 億色視網膜級超感屏,6.72英寸80°超曲屏幕,最高支持120Hz刷新率和300Hz觸控采樣率。而早在2020年11月17日,華為正式對外公布了出售榮耀手機的消息,由深圳市智慧城...

史海拾趣

問答坊 | AI 解惑

在跑MIG布局布線后仿真時碰到的兩個問題:無法調用模塊下信號線和不識DDR行為模型

背景是控制用MIG生成DDR SDRAM控制器,測試環境是這樣的,頂層是我寫的TESTBENCH,頂層下有兩個模型,一個就是可綜合的模型(包括MIG生成的核和我寫的狀態機),另一個模型就是從MICRON公司下載的DDR的行為模型。跑行為模型時沒有問題,但在跑布局布線 ...…

查看全部問答∨

簡單的快速短路保護電路.jpg

本帖最后由 paulhyde 于 2014-9-15 09:38 編輯 簡單的快速短路保護電路  …

查看全部問答∨

變電站高頻開關電源應用選型初探

1、引言 目前,電力系統大量的綜合自動化變電站的新建和改造,使得大量的高頻開關電源在電力系統得以應用,如何合理進行其設備單元的選擇、相關接線方式的選擇、監控單元功能的規范等,使系統配置合理,能可靠、穩定的為變電站提高直流電源,確保 ...…

查看全部問答∨

在PXA270的BootLoader中使用USB的問題

原270開發板商給了一個BootLoader源碼,沒實現USB下載 但里面有一些USB 的操作代碼,拿過來用時缺少些頭文件 如下面兩個 #include "xllp_udc.h" #include "xllp_udc_os_depend.h" 這些文件其實都是Intel寫的,與開發板商一點關系都沒 ...…

查看全部問答∨

有誰做過對于帶SPI接口的TFT屏的驅動

點這種屏,聽說需要對SPI進行操作,我不是很了解,以前做的屏就是直接565就OK的。 可這個屏就是不知道怎么點,郁悶,希望高手+版主來指點一下!感激!…

查看全部問答∨

在分壓式偏置電路的直流通路中I2>>IB是如何得出的

在分壓式偏置電路的直流通路中,書上說偏置電阻R2上的電流I2遠遠大于基極電流IB,即I2>>IB,請問這是如何得出的啊?…

查看全部問答∨

懇求解答我的困惑——嵌入式與軟件工程的關系

我是在大學學的軟件工程,如今都上大三了,才對軟件有所了解,之前一直沒有方向,在我上大學之前我就準備考研了,可是我專業課不怎么好,我打算下學期就開始復習準備考研,但是我感覺我在專業課上沒有學到東西,沒有方向,沒有精通的技術。我感覺嵌 ...…

查看全部問答∨

一個關于三極管放大倍數的問題

請教一個關于三極管放大倍數的問題。在實際應用中三極管的電壓放大倍數β是不確定的,那么我們應用時怎么才能知道一個三極管在電路中的實際放大倍數β呢?請高手指教一下,先謝過!…

查看全部問答∨

ST-LINKII可以支持MDK了

ST-LINK-II 可以支持MDK使用了!MDK3.22中文版已經在realview網站上發布了,里面已經集成了支持ST-LINKII的驅動,下載安裝后就可以配合ST-LINKII使用。下載地址:http://www.realview.com.cn/down-list.asp?id=487…

查看全部問答∨

大家見過Vishay 熱敏電阻嗎?

本帖最后由 jameswangsynnex 于 2015-3-3 20:03 編輯 NTCALUG03外型尺寸只有65mm²/ 0.1 in²,比頭發絲粗不了多少。但它在管理溫度的時候可毫不含糊,最短響應時間小于4秒,能夠在-40℃~+125℃溫度范圍內快速精確地測量出溫度。 …

查看全部問答∨
小廣播
設計資源 培訓 開發板 精華推薦

最新單片機文章
何立民專欄 單片機及嵌入式寶典

北京航空航天大學教授,20余年來致力于單片機與嵌入式系統推廣工作。

 
EEWorld訂閱號

 
EEWorld服務號

 
汽車開發圈

 
機器人開發圈

電子工程世界版權所有 京ICP證060456號 京ICP備10001474號-1 電信業務審批[2006]字第258號函 京公網安備 11010802033920號 Copyright ? 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
主站蜘蛛池模板: 蒙自县| 鹰潭市| 南皮县| 阿图什市| 枞阳县| 青龙| 遂川县| 牟定县| 黑山县| 攀枝花市| 晋城| 唐河县| 平利县| 汾阳市| 平邑县| 石门县| 尼木县| 丰宁| 司法| 铁岭县| 凤阳县| 平江县| 邻水| 绵阳市| 汉中市| 始兴县| 开远市| 叶城县| 萍乡市| 九江县| 德安县| 蒙自县| 浙江省| 马关县| 孟连| 开平市| 沂水县| 郯城县| 卓资县| 阿鲁科尔沁旗| 北票市|