半小時搞懂STM32面經知識——RCC

1. 時鐘的概念

時鐘是由電路產生的具有周期性的脈沖信號,相當于單片機的心臟,要想使用單片機的外設必須開啟時鐘。

時鐘對單片機有什么作用?

? ? ? ? 1. 驅動外設的本質是寄存器,而寄存器需要時鐘觸發才能改寫值。

? ? ? ? 2. 時鐘頻率越高,CPU在相同的時間能夠執行更多的指令,運行速度更快。

2. 時鐘樹

?STM32微控制器芯片上的時鐘分配和控制結構,它定義了各種時鐘源、時鐘分頻、時鐘分配等,形成一個樹狀結構

時鐘樹的作用?

1. 給相對獨立的外設模塊提供時鐘,不同的外設需要的時鐘頻率不一致,需要通過時鐘樹分配相應的時鐘。

?2. 降低整個芯片的功耗所有外設時鐘默認都是關閉狀態(disable)當我們使用某個外設就要開啟這個外設的時鐘(enable) ,沒有讓所有外設都使用高速時鐘造成浪費。?

2.1 時鐘源

STM32總共有四個時鐘源為什么要有四個時鐘源,兼容不同速度的外設, STM32的四個時鐘源分別為HSE, LSE, HSI, LSI。

HSE時鐘:高速的外部時鐘。

來源: 無源晶振,通常使用8M, STM32F1系列為(4~16M)

作用:可不分頻或2分頻(頻率/2)作為PLL鎖相環的輸入,還可直接不分頻作為系統時鐘,128分頻作為外設RTC時鐘的輸入

HSI時鐘: 高速的內部時鐘

來源: 芯片內部,大小為8M,當HSE故障時,系統時鐘會自動切換到HSI,直到HSE啟動成功。

作用: 可直接作為系統時鐘或在2分頻后作為PLL輸入。HSI RC振蕩器能夠在不需要任何外部器件的條件下提供系統時鐘。它的啟動時間比HSE晶體振蕩器短。然而,即使在校準之后它的時鐘頻率精度仍較差。

LSE: 低速的外部時鐘

來源:芯片內部,LSE晶體是一個32.768kHz的低速外部晶體或陶瓷諧振器。它為實時時鐘或者其他定時功能提供一個低功耗且精確的時鐘源。?

作用: 直接作為RTC的時鐘來源

LSI: 低速的內部時鐘

來源: 內部芯片,LSI RC擔當一個低功耗時鐘源的角色,它可以在停機和待機模式下保持運行,LSI時鐘頻率大約40kHz(在30kHz和60kHz之間)。

作用: 為獨立看門狗自動喚醒單元(RTC)提供時鐘。

2.2 鎖相環時鐘PLLCLK

鎖相環時鐘:PLLCLK

來源: 選擇HIS振蕩器除2或HSE振蕩器為PLL的輸入時鐘,和選擇倍頻因子,必須在其被激活前完成。一旦PLL被激活,這些參數就不能被改動。

作用: 內部PLL可以用來倍頻HSI的輸出時鐘或HSE晶體輸出時鐘(倍頻數2~16倍),而經過倍頻變成PLLCLK可以作為系統時鐘源

注意: PLL時鐘源頭使用HIS/2的時候,PLLMUL最大只能 是16,這個時候PLLCLK最大只能是64M,小于ST官方推 薦的最大時鐘72M。如果需要在應用中使用USB接口,PLL必須被設置為輸出48或72MHZ時鐘,用于提供48MHz的USBCLK時鐘。

2.3 系統時鐘

系統時鐘:SYSCLK系統時鐘是時鐘樹的最終輸出,它是整個微控制器系統的主時鐘。

來源:HSI,HSE,PLLCLK

注意:F103通常的配置是SYSCLK = PLLCLK=72M(最大的時鐘頻率, STM32官方推薦)

通常系統時鐘配置的輸出流程:

2.4 HCLK時鐘

HCLK: AHB高速總線時鐘,速度最高為72MHZ

來源:?系統時鐘分頻得到,一般設置HCLK=SYSCLK=72M

作用: 為AHB總線的外設提供時鐘、為Cortex系統定時器提供時鐘(SysTick)、為內核提供時鐘(FCLK)。

2.5 PCLK1時鐘

PCLK1: APB1低速總線時鐘,最高為36MHZ。

來源: HCLK分頻得到,一般配置PCLK1 = HCLK/2 = 36MHZ。

作用:?為APB1總線的外設提供時鐘。1或2倍頻之后則為APB1總線的定時器2~7提供時鐘,最大為72M。

2.6 PCLK2時鐘

PCLK2: APB2高速總線時鐘,最高為72MHZ

來源: HCLK分頻得到,一般配置PCLK1=HCLK=72M

作用: 為APB2總線的外設提供時鐘。為APB2總線的定時器1和8提供時鐘,最大為72M。APB2分頻器還有一路輸出供ADC分頻器使用,分頻后送給ADC模塊使用。

2.7 RTC時鐘

RTC:實時時鐘。

來源:HSE分頻得到, LSE、 LSI

作用:它擁有一組連續計數的計數器,可提供時鐘日歷的功能。修改計數器的值可以重新設置系統當前的時間和日期。實質上它是一個掉電后還可以繼續運行的定時器。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/web/12180.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/12180.shtml
英文地址,請注明出處:http://en.pswp.cn/web/12180.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

安全風險 - 如何解決 setAccessible(true) 帶來的安全風險?

可能每款成熟的金融app上架前都會經過層層安全檢測才能執行上架,所以我隔三差五就能看到安全檢測報告中提到的問題,根據問題的不同級別,處理的優先級也有所不同,此次講的主要是一個 “輕度問題” ,個人認為屬于那種可改…

FinnConverter格式轉換工具

FinnConverter簡介 1. 簡潔的操作界面 2. 支持多種格式相互轉換 支持word轉pdf;ppt轉pdf;raw格式轉png/jpng…;其他格式相互轉換 2.1 輸入格式支持 bmp、cr2、cr3、crw、cur、dcr、dng、doc、docx、gif、ico、jpeg、jpg、kdc、mos、nef、…

線程縱橫:C++并發編程的深度解析與實踐

hello !大家好呀! 歡迎大家來到我的Linux高性能服務器編程系列之《線程縱橫:C并發編程的深度解析與實踐》,在這篇文章中,你將會學習到C新特性,并發編程,以及其如何帶來的高性能的魅力&#xff0…

LeetCode hot100-39-N

101. 對稱二叉樹給你一個二叉樹的根節點 root , 檢查它是否軸對稱。做不出來哇,遞歸一生之敵 普通的對一棵樹的遞歸遍歷根本沒辦法只接比較左子樹的左和右子樹的右這樣來比較,所以這題比較巧妙的是把這棵樹當做兩棵樹一樣去遍歷比較。 官方…

使用XxlCrawler抓取全球航空公司ICAO三字碼

目錄 前言 一、數據源介紹 1、目標網站 2、頁面渲染結構 二、XxlCrawler信息獲取 1、創建XxlCrawler對象 2、定義PageVo對象 3、直接PageVO解析 4、自定義解析 總結 前言 長距離旅行或者出差,飛機一定是出行的必備方式。對于旅行達人或者出差人員而言&…

中國目前比較有影響力的人物顏廷利:物質與無知通音

既然是在中國優秀傳統文化之根-漢語當中,漢字‘物質’二字跟‘無知’通音,因此,面對當前金錢肆虐、物欲橫流的現實生活,當人類眾生把‘物質’(無知)生活看的太真、太重時,那么,這就很…

什么是wamp

WAMP是一個縮寫,代表Windows、Apache、MySQL和PHP。它是一個用于本地開發網絡應用程序的軟件堆棧,主要用于在Windows操作系統上搭建Web服務器環境。WAMP提供了一個簡單的方式,讓開發者可以在本地計算機上模擬一個Web服務器環境,以…

Python模塊之Numpy(四)-- 矩陣

矩陣的創建 在NumPy中,矩陣是ndarray的子類,常用來創建矩陣的函數有mat、matrix以及bmat,使用如下: import numpy as np matr1 np.mat("1 1 1; 2 2 2;3 3 3") #矩陣的行用分號隔開,列用空格隔開 matr2 np.matrix([[1…

Banana Pi BPI-F3, 進迭時空K1芯片設計,定位工業級應用,網絡通信及工業自動化

香蕉派BPI-F3是一款工業級 8核RISC-V開源硬件開發板,它采用進迭時空(SpacemiT) K1 8核RISC-V芯片設計,CPU集成2.0 TOPs AI計算能力。4G DDR和16G eMMC。2個GbE以太網接口,4個USB 3.0和PCIe M.2接口,支持HDM…

kafka SSL加密 —— 筑夢之路

生成SSL證書文件腳本 #!/bin/bash ################################## 設置環境變量 ############################## BASE_DIR/mnt/disk/test # SSL各種生成文件的基礎路徑 CERT_OUTPUT_PATH"$BASE_DIR/certificates" # 證書文…

Jenkins構建流程

Jenkins是DevOps【(Development和Operations的混成詞)是一種重視“軟件開發人員(Dev)”和“IT運維技術人員(Ops)”之間溝通合作的文化、運動或慣例)】的重要一環,是一款開源的CI&CD軟件。也就是持續集成…

汽車行業軟件開發V 模型與醫療行業異同,與傳統瀑布開發模型區別

軟件開發在汽車和醫療行業 V 模型的異同 V 模型是一種軟件開發過程中的驗證和確認模型,它被用來表示軟件開發的各個階段和它們的驗證/ 確認活動。 在汽車和醫療行業中,V模型的使用有一些相似之處,但也有一些不同之處。 相同之處: 都使用V 模…

【LeetCode】【滑動窗口】【雙指針】長度最小的子數組

題目:209. 長度最小的子數組 - 力扣(LeetCode) 給定一個含有 n 個正整數的數組和一個正整數 target 。找出該數組中滿足其總和大于等于 target 的長度最小的 連續子數組 [numsl, numsl1, ..., numsr-1, numsr] ,并返回其長度。如…

【Viso畫圖】Viso導出與圖形適配的pdf

step1:選中開發工具點擊shapeSheet,選中頁 step2:進入頁面參數設置窗口,將下面框選的參數設為0,enter后保存 目前效果: step3:選中設計->大小,選擇適應頁面大小或者自己根據圖片調整 目前效果: step4: 以…

【C++】priority_queues(優先級隊列)和反向迭代器適配器的實現

目錄 一、 priority_queue1.priority_queue的介紹2.priority_queue的使用2.1、接口使用說明2.2、優先級隊列的使用樣例 3.priority_queue的底層實現3.1、庫里面關于priority_queue的定義3.2、仿函數1.什么是仿函數?2.仿函數樣例 3.3、實現優先級隊列1. 1.0版本的實現…

android自定義view仿微信聯系人列表

說明:最近碰到一個需求,弄一個類似國家或省份列表,樣式參照微信聯系人 文件列表: step1:主界面 加載列表數據~\app\src\main\java\com\example\iosdialogdemo\MainActivity.java step2:右側列表數據排序~\app\src\com\example\io…

hive自定義udtf函數

udtf,一個輸入,對應多個輸出,實現流程如下 1、繼承genericUDF 2、在initialize中做初始化工作,例如定義輸出的數據格式 3、在process中實現具體的邏輯 參考鏈接 https://blog.csdn.net/qq_34321590/article/details/127412147…

6. 第K小的和-二分

6.第K小的和 - 藍橋云課 (lanqiao.cn) #include <bits/stdc.h> #define int long long #define endl \n using namespace std; int n,m,k,an[100005],bm[100005]; int check(int x){int res0;//序列C中<x的數的個數for(int i0;i<n;i){//遍歷數組A&#xff0c;對于每…

Vue學習v-if與v-else-if

Vue學習v-if與v-else-if 一、前言1、v-if2、v-else-if3、v-else4、示例 一、前言 v-if 和 v-else-if 是 Vue.js 中用于條件渲染的指令&#xff0c;它們通常與 v-else 一起使用。下面我來詳細解釋一下它們的用法和區別&#xff1a; 1、v-if 用法&#xff1a;v-if 是一個指令&…

神級框架!!不要再封裝各種 Util 工具類了【送源碼】

這個工具類就比較厲害了&#xff0c;不過我在 Halo 當中用得最多的還是 HtmlUtil.encode&#xff0c;可以將一些字符轉化為安全字符&#xff0c;防止 xss 注入和 SQL 注入&#xff0c;比如下面的評論提交。 comment.setCommentAuthor(HtmlUtil.encode(comment.getCommentAutho…