STM32時鐘樹

時鐘樹

時鐘樹就是STM32中用來產生和配置時鐘,并且把配置好的時鐘發送到各個外設的系統,時鐘是所有外設運行的基礎,所以時鐘也是最先需要配置的東西,在程序中主函數之前還會執行一個SystemClock_Config()函數,這個函數就是用來配置時鐘數的。芯片公司一般會配置這個時鐘樹的SystemClock_Config()函數。當不被使用時,任一個時鐘源都可被獨立地啟動或關閉,由此優化系統功耗。在時鐘樹上可以配置時鐘來源,各外設時鐘源是否開啟。

????????從SYSCLK系統時鐘,劃一根線,左邊的都是時鐘的產生電路,右邊的都是時鐘的分配電路時鐘產生電路,有4個時鐘源。

時鐘源

HSE

外部時鐘源(HSE旁路) ,它的頻率最高可達25MHz。用戶可通過設置在時鐘控制寄存器中的HSEBYP和HSEON位來選擇這一模式。外部時鐘信號(50%占空比的方波、正弦波或三角波)必須連到SOC_IN引腳,同時保證OSC_OUT引腳懸空。

外部晶體/陶瓷諧振器(HSE晶體)

4~16Mz外部振蕩器可為系統提供更為精確的主時鐘。在時鐘控制寄存器RCC_CR中的HSERDY位用來指示高速外部振蕩器是否穩定。在啟動時,直到這一位被硬件置’1’,時鐘才被釋放出來。如果在時鐘中斷寄存器RCC_CIR中允許產生中斷,將會產生相應中斷。HSE晶體可以通過設置時鐘控制寄存器里RCC_CR中的HSEON位被啟動和關閉。

HSI

HSI RC振蕩器能夠在不需要任何外部器件的條件下提供系統時鐘。它的啟動時間比HSE晶體振蕩器短。然而,即使在校準之后它的時鐘頻率精度仍較差。

制造工藝決定了不同芯片的RC振蕩器頻率會不同,這就是為什么每個芯片的HSI時鐘頻率在出廠前已經被ST校準到1%(25°C)的原因。系統復位時,工廠校準值被裝載到時鐘控制寄存器的HSICAL[7:0]位。

如果用戶的應用基于不同的電壓或環境溫度,這將會影響RC振蕩器的精度。可以通過時鐘控制寄存器里的HSITRIM[4:0]位來調整HSI頻率。

時鐘控制寄存器中的HSIRDY位用來指示HSI RC振蕩器是否穩定。在時鐘啟動過程中,直到這一位被硬件置’1’HSI RC輸出時鐘才被釋放。HSI RC可由時鐘控制寄存器中的HSION位來啟動和關閉。

如果內部晶振起不來,那么芯片就起不來。如果HSE晶體振蕩器失效,HSI時鐘會被作為備用時鐘源。

PLL

用來倍頻。

LSE時鐘

LSE晶體是一個32.768kHz的低速外部晶體或陶瓷諧振器。

LSE晶體通過在備份域控制寄存器(RCC_BDCR)里的LSEON位啟動和關閉。

在備份域控制寄存器(RCC_BDCR)里的LSERDY指示LSE晶體振蕩是否穩定。在啟動階段,直到這個位被硬件置’1’后,LSE時鐘信號才被釋放出來。如果在時鐘中斷寄存器里被允許,可產生中斷申請。

外部時鐘源(LSE旁路)

在這個模式里必須提供一個32.768kHz頻率的外部時鐘源。你可以通過設置在備份域控制寄存器(RCC_BDCR)里的LSEBYP和LSEON位來選擇這個模式。具有50%占空比的外部時鐘信號(方波、正弦波或三角波)必須連到OSC32_IN引腳,同時保證OSC32_OUT引腳懸空。

LSI時鐘

LSI RC擔當一個低功耗時鐘源的角色,它可以在停機和待機模式下保持運行,為獨立看門狗和自動喚醒單元提供時鐘。LSI時鐘頻率大約40kHz(在30kHz和60kHz之間)。

LSI RC可以通過控制/狀態寄存器(RCC_CSR)里的LSION位來啟動或關閉。

在控制/狀態寄存器(RCC_CSR)里的LSIRDY位指示低速內部振蕩器是否穩定。在啟動階段,直到這個位被硬件設置為’1’后,此時鐘才被釋放。如果在時鐘中斷寄存器(RCC_CIR)里被允許,將產生LSI中斷申請。

只有大容量和互聯型產品可以進行LSI校準

如果需要使用低功耗時鐘源,那么建議選擇LSE。

時鐘配置過程

????????SystemClock_Config()函數時鐘配置過程:首先啟動內部時鐘,選擇內部8MHz為系統時鐘,暫時以內部8MHz的時鐘運行,然后再啟動外部時鐘,配置外部時鐘,進入PLL鎖相環進行倍頻,8MHz倍頻9倍,得到72MHz,等到鎖相環輸出穩定后,選擇鎖相環輸出為系統時鐘,這樣就可以把系統時鐘8MHz切換為72MHz,這是ST配置的流程。
????????也可以自己分析SystemInit函數,這樣分析之后,可以解決實際應用的一個問題,那就是如果外部晶振出問題了,可能會導致一個現象,就是會發現,程序的時鐘慢了大概10倍,比如用定時器定一個1s的時間,結果過了大概10s才會進中斷,這個問題就出在這里,如果外部晶振出問題了,系統時鐘就無法切換到72MHz,那就會以內部的8MHz運行,8MHz相比較72M,大概慢了10倍。

時鐘安全系統(CSS)

CSS是時鐘安全系統,它也是負責切換時鐘的,它可以監測外部時鐘的運行狀態,一旦外部時鐘失效,就會自動把外部時鐘切換回內部時鐘,保證系統時鐘的運行,防止程序卡死造成事故。

高級定時器中也有CSS的身影,在剎車輸入這里,一旦CSS檢測到外部時鐘失效,通過或門立刻反映到輸出比較,讓輸出控制的電機立刻停止,防止意外。

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

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

相關文章

【第22節】windows網絡編程模型(WSAAsyncSelect模型)

目錄 引言 一、WSAAsyncSelect模型概述 二、WSAAsyncSelect模型流程 2.1 自定義消息 2.2 創建窗口例程 2.3 初始化套接字 2.4 注冊網絡事件 2.5 綁定和監聽 2.6 消息循環 三、完整示例代碼 引言 在網絡編程的廣袤天地中,高效處理網絡事件是構建穩定應用的…

利用Dify編制用戶問題意圖識別和規范化回復

繼上一篇文章,成功完成Dify本地部署后,主要做了一些workflow和Agent的應用實現,整體感覺dify在工作流可視化編排方面非常好,即使部分功能無法實現,也可以通過代碼執行模塊或者自定義工具來實現(后續再具體分…

雙核鎖步技術在汽車芯片軟錯誤防護中的應用詳解

摘要 本文深入探討了雙核鎖步技術在保障汽車芯片安全性中的應用。文章首先分析了國產車規芯片在高安全可靠領域面臨的軟錯誤難點及攻克方向,然后詳細介紹了雙核鎖步技術的基本原理及其在汽車芯片防軟錯誤的重要性。通過對比國內外多家廠商的芯片技術,分析…

Lustre 語言的 Rust 生成相關的工作

目前 Lustre V6 編譯器支持編譯生成的語言為C語言。但也注意到,以 Rust 語言為生成目標語言,也存在若干相關工作。 rustre(elegaanz) 該項工作為 Lustre v6 語言的解析器,使用 Rust 語言實現。生成 Lustre AST。 項…

Java 之「單調棧」:從入門到實戰

Java 單調棧:從入門到實戰 文章目錄 Java 單調棧:從入門到實戰引言什么是單調棧?單調遞增棧單調遞減棧 單調棧的應用場景Java 實現單調棧代碼示例:下一個更大元素代碼解析 單調棧的優勢實戰應用:股票價格跨度代碼示例代…

【Golang】defer與recover的組合使用

在Go語言中,defer和recover是兩個關鍵特性,通常結合使用以處理資源管理和異常恢復。以下是它們的核心應用場景及使用示例: 1. defer 的應用場景 defer用于延遲執行函數調用,確保在函數退出前執行特定操作。主要用途包括&#xff…

CSS 中flex - grow、flex - shrink和flex - basis屬性的含義及它們在彈性盒布局中的協同作用。

大白話CSS 中flex - grow、flex - shrink和flex - basis屬性的含義及它們在彈性盒布局中的協同作用。 在 CSS 的彈性盒布局(Flexbox)里,flex-grow、flex-shrink 和 flex-basis 這三個屬性對彈性元素的尺寸和伸縮性起著關鍵作用。下面為你詳細…

OpenGL ES ->乒乓緩沖,計算只用兩個幀緩沖對象(Frame Buffer Object)+疊加多個濾鏡作用后的Bitmap

乒乓緩沖核心思想 不使用乒乓緩沖,如果要每個濾鏡作用下的繪制內容,也就是這個濾鏡作用下的幀緩沖,需要創建一個Frame Buffer Object加上對應的Frame Buffer Object Texture使用乒乓緩沖,只用兩個Frame Buffer Object加上對應的F…

【HarmonyOS NEXT】關鍵資產存儲開發案例

在 iOS 開發中 Keychain 是一個非常安全的存儲系統,用于保存敏感信息,如密碼、證書、密鑰等。與文件系統不同,Keychain 提供了更高的安全性,因為它對數據進行了加密,并且只有經過授權的應用程序才能訪問存儲的數據。那…

ccfcsp1901線性分類器

//線性分類器 #include<iostream> using namespace std; int main(){int n,m;cin>>n>>m;int x[1000],y[1000];char z[1000];for(int i0;i<n;i){cin>>x[i]>>y[i];cin>>z[i];}int a[20],b[20],c[20];for(int i0;i<m;i){cin>>a[i…

Spring Boot 整合 OpenFeign 教程

精心整理了最新的面試資料和簡歷模板&#xff0c;有需要的可以自行獲取 點擊前往百度網盤獲取 點擊前往夸克網盤獲取 Spring Boot 整合 OpenFeign 教程 一、OpenFeign 簡介 OpenFeign 是 Netflix 開源的聲明式 HTTP 客戶端&#xff0c;通過接口和注解簡化服務間 HTTP 調用。…

APM 仿真遙控指南

地面站開發了一段時間了&#xff0c;由于沒有硬件&#xff0c;所以一直在 APM 模擬器中驗證。我們已經實現了 MAVLink 消息接收和解析&#xff0c;顯示無人機狀態&#xff0c;給無人機發送消息&#xff0c;實現一鍵起飛&#xff0c;飛往指定地點&#xff0c;降落&#xff0c;返…

C語言入門教程100講(4)輸入輸出

文章目錄 1. 什么是輸入輸出&#xff1f;2. 標準輸入輸出函數2.1 printf 函數2.2 scanf 函數 3. 格式化占位符4. 示例代碼代碼解析&#xff1a;輸出結果&#xff1a; 5. 常見問題問題 1&#xff1a;scanf 中的 & 是什么作用&#xff1f;問題 2&#xff1a;printf 和 scanf …

《信息系統安全》(第一次上機實驗報告)

實驗一 &#xff1a;網絡協議分析工具Wireshark 一 實驗目的 學習使用網絡協議分析工具Wireshark的方法&#xff0c;并用它來分析一些協議。 二實驗原理 TCP/IP協議族中網絡層、傳輸層、應用層相關重要協議原理。網絡協議分析工具Wireshark的工作原理和基本使用規則。 三 實…

城市街拍人像自拍電影風格Lr調色教程,手機濾鏡PS+Lightroom預設下載!

調色教程 城市街拍人像自拍的電影風格 Lr 調色&#xff0c;是利用 Adobe Lightroom 軟件&#xff0c;對在城市街景中拍攝的人像自拍照片進行后期處理&#xff0c;使其呈現出電影畫面般獨特的視覺質感與藝術氛圍。通過一系列調色操作&#xff0c;改變照片的色彩、明暗、對比等元…

自學Python創建強大AI:從入門到實現DeepSeek級別的AI

人工智能&#xff08;AI&#xff09;是當今科技領域最熱門的方向之一&#xff0c;而Python是AI開發的首選語言。無論是機器學習、深度學習還是自然語言處理&#xff0c;Python都提供了豐富的庫和工具。如果你夢想創建一個像DeepSeek這樣強大的AI系統&#xff0c;本文將為你提供…

Qt/C++項目積累:4.遠程升級工具 - 4.1 項目設想

背景&#xff1a; 桌面程序一般都支持遠程升級&#xff0c;也是比較常用的場景設計。如酷狗音樂的升級&#xff0c;會提供兩個選項&#xff0c;自動幫助安裝或是新版本提醒&#xff0c;由用戶來決定是否升級&#xff0c;都屬于遠程升級的應用及策略。 看看經過這塊的功能了解及…

(一)丶Windows安裝RabbitMQ可能會遇到的問題

一丶可能會忘了配置ERLang的環境變量 二丶執行命令時報錯 第一步 rabbitmq-plugins enable rabbitmq_management 第二部 rabbitmqctl status 三丶修改.erlang.cookie 文件 1.找到C盤目下的.erlang.cookie文件 C:\Users\admin\.erlang.cookie C:\Windows\System32\config\sys…

Amdahl 定律

Amdahl 定律是用來表示&#xff0c;當提高系統某部分性能時對整個系統的影響&#xff0c;其公式如下&#xff1a; a表示我們提升部分初始耗時比例&#xff0c;k是我們的提升倍率&#xff0c;通過這個公式我們可以輕松的得知對每一部分的提醒&#xff0c;對整個系統帶來的影響…