此文檔作為對洋桃電子STM32F407單片機視頻的整理,B站鏈接:2023更新 STM32入門F4= STM32F407單片機入門教程=WIFI連接阿里云物聯(lián)網(wǎng)+CubeMX+HAL庫+TFT彩屏+杜洋主講_嗶哩嗶哩_bilibili
由于單片機內(nèi)部的時鐘結(jié)構(gòu)都是相互關(guān)聯(lián)的,一個時鐘源出發(fā)可以供給多個功能,類似于樹根、樹桿、樹枝、樹葉的樹狀結(jié)構(gòu),所以我們稱RCC時鐘的整體結(jié)構(gòu)為時鐘樹。
1. STM32F407ZGT6數(shù)據(jù)手冊中的時鐘樹
數(shù)據(jù)手冊上的時鐘樹圖僅用于對連接關(guān)系的展示,需要熟悉的是在CubeMX圖形界面中的時鐘樹視圖。
時鐘功能可分為“內(nèi)核與外設(shè)時鐘”和“獨立時鐘”兩部分,單片機設(shè)計者把這些功能(獨立時鐘)獨立出來是有用意的。
RTC時鐘需要在內(nèi)核不工作時也能持續(xù)走時,所以分配了專用的LSI和LSE時鐘源。
獨立看門狗用于監(jiān)測單片機的工作狀態(tài),當(dāng)單片機程序出錯時獨立看門狗會復(fù)位單片機。
USB接口對數(shù)據(jù)傳輸?shù)姆€(wěn)定性要求高,于是配有專用的48MHz時鐘。
IIS總線應(yīng)用于高速音頻接口,也采用了獨立時鐘。
所謂“獨立”僅是指時鐘輸入未經(jīng)過SYSCLK時鐘分配,這些功能在程序上和其他功能沒有區(qū)別,依然受到RAM內(nèi)核的操控。
2. 單片機可選的時鐘源
3.CubeMX圖形界面上設(shè)置時鐘的方法
(1)將HSE設(shè)置為晶體/陶瓷振蕩器
(2)將LSE設(shè)置為晶體/陶瓷振蕩器
(3)若要開啟IIS總線的時鐘輸入
(4)若出現(xiàn)錯誤
選項卡出現(xiàn)紅叉,設(shè)置項標紅表示頻率超出范圍,如果不理會出現(xiàn)紅色好亮的功能無法正常運行。所以看到紅色高亮顯示時要重新設(shè)置。
4. CubeMX圖形界面上時鐘標注說明
SYSCLK是系統(tǒng)時鐘,除去獨立時鐘之外,SYSCLK時鐘是單片機的“根時鐘”,ARM內(nèi)核與各功能外設(shè)時鐘都由此分配而來。它代表著單片機的最大頻率,頻率越大速度越快。系統(tǒng)時鐘作為源頭分配給各內(nèi)部總線和功能。可通過選擇器3選擇3個輸入源,①通過HSI(沒有經(jīng)過預(yù)分頻器和倍頻器)直接給SYSCLK時鐘16MHz的固定頻率。②通過HSE(需要外接4~26MHz晶振電路),選擇此項后的系統(tǒng)時鐘頻率等于HSE外接晶振的頻率。③通過PLLCLK,是經(jīng)過預(yù)分頻器、倍頻器和選擇器分配后的頻率,選擇此項可在不改變外接晶振頻率的情況下對系統(tǒng)時鐘進行超頻或降頻。STM32F407的SYSCLK時鐘最大值是168MHz。
最終頻率5是以太網(wǎng)絡(luò)功能時鐘,它由SYSCLK時鐘 (最終頻率3) 直接連接,開啟ETH以太網(wǎng)功能后,以大網(wǎng)功能的頻率等于系時鐘頻率。
SYSCLK經(jīng)過經(jīng)過“分頻器5”到達“最終頻率6”HCLK時鐘,HCLK時鐘通過內(nèi)部高速數(shù)據(jù)總線AHB把頻率提供給ARM內(nèi)核、存儲控制器、中斷控制器、DMA等內(nèi)核功能,可通過設(shè)置“分頻器5”降低HCLK頻率,但通常會將HCLK和SYSCLK保持一致。
SYSCLK時鐘經(jīng)過“分頻器6”到達“最終頻率7”Cortex系統(tǒng)定時器時鐘。它是單片機內(nèi)包含著ARM Cortex-M4系統(tǒng)單元所使用的定時器,通過“分頻器6”可設(shè)置為不分頻 (/1) 或8倍分頻 (/8),這里的設(shè)置只涉及Cortex內(nèi)核功能,一般情況下使它與SYSCLK保持一致。
SYSCLK時鐘連接到“最終頻率8”FCLK時鐘。FCLK全稱是自由運行時鐘,作用是專為ARM內(nèi)核提供運行時鐘頻率,它與HCLK的區(qū)別是HCLK是從AHB總線電路上提供時鐘而FCLK不受總線限制,即使AHB總線停止工作,F(xiàn)CLK時鐘也能直接向ARM內(nèi)核提供時鐘。由于內(nèi)核時鐘與AHB總線時鐘必須頻率相同才能工作所以這兩個時鐘直接連接(頻率相同)。
?最終頻率9~12是PCLK時鐘部分的4個最終頻率,PCLK時鐘的作用是給單片機外設(shè)功能提供時鐘(ARM內(nèi)核以外的單片機內(nèi)部功能)。PCLK時鐘分配給APB1總線和APB2總線兩個部分,每條總線上都掛接著不同的單片機內(nèi)部功能。APB1外設(shè)時鐘的最大頻率是42MHz。APB2外設(shè)時鐘的最大頻率是84MHz。當(dāng)在項目開發(fā)中需要設(shè)置某功能的時鐘頻率,則要在單片機數(shù)據(jù)手冊找到時鐘樹結(jié)構(gòu)圖,找到該功能掛接在APB1還是APB2,然后再設(shè)置總線頻率。
獨立時鐘RTC:
第一個輸入源是HSE外部高速時鐘經(jīng)過“分頻器1”可設(shè)置2~31分頻值。
第二個輸入源是LSE外部32.768KHz低速時鐘,未經(jīng)過分頻和倍頻直接輸入RTC時鐘得到32.768KHz最終頻率,這是得到最精準1秒走時的RTC時鐘源。
第三個輸入源是LSI內(nèi)部32KHz低速時鐘未經(jīng)過分頻得到32KHz最終頻率。
獨立看門狗用于監(jiān)測單片機的工作狀態(tài),當(dāng)單片機程序出錯時獨立看門狗會復(fù)位單片機??撮T狗時鐘必須獨立于系統(tǒng)時鐘之外,保持著“獨立第三方”地位。
獨立看門狗時鐘直接引入32KHz的LSI內(nèi)部低速時鐘,保證輸入源的穩(wěn)定可靠。
看門狗時鐘固定頻率是32KHz 不允許修改。USB功能是指單片機內(nèi)置的USB主設(shè)備和從設(shè)備接口,此功能獨立工作,USB時鐘頻率允許修改,通過“選擇器2”可切換HSI或HSE輸入源,通過“分頻器2”“分頻器4”“分頻器3 ”“倍頻器1”來設(shè)置頻率值,需要注意 只有“分頻器4”是USB時鐘專屬,其他都與系統(tǒng)時鐘共享設(shè)置,USB時鐘的固定頻率是48MHZ,當(dāng)開啟USB功能時必須使之最終頻率是48MHz否則會出現(xiàn)警告,不開啟此設(shè)置不需要設(shè)置此項。
最終頻率15~16是兩個時鐘頻率輸出功能,縮寫是MCO,STM32F40ZG單片機上MCO1復(fù)用在PA8端口,MCO2復(fù)用在PC9端口,開啟MCO時鐘輸出功能的方法如下圖。勾選后再進入時鐘樹視圖,MCO部分的選擇器和分頻器才能進行修改,通過“選擇器5~6”可以切換四個時鐘輸入源。其中PLLCLK是經(jīng)過“分頻器3”之后的時鐘頻率,PLLI2SCLK是經(jīng)過“分頻器9”之后的時鐘頻率。時鐘輸出功能用于給其他芯片提供時鐘基準。
5. 程序代碼中的時鐘講解
在圖形界面里設(shè)置的時鐘樹選項,在生成代碼后會轉(zhuǎn)化成程序代碼存放在工程文件里,為了能在未來的編程中修改這些RCC設(shè)置我們需要了解RCC時鐘的程序代碼,并能與圖形界面上的設(shè)置項聯(lián)系起來。
單片機在最開始運行時并不是從main函數(shù)開始,而是先運行匯編語言的啟動文件,啟動文件里對單片機的RAM、FLASH 中斷等基礎(chǔ)功能進行初始化。
CubeMX中設(shè)置的時鐘選項在程序代碼中的樣子, SystemClock_Config函數(shù)是RCC時鐘配置函數(shù),圖形界面中與RCC相關(guān)的配置都保存在此函數(shù)里。
6.修改CubeMX的配置,例如要修改AHB總線時鐘的預(yù)分頻系數(shù)。
文章來源:http://www.zghlxwxcb.cn/news/detail-764431.html
7. 在程序運行中修改時鐘設(shè)置的方法
文章來源地址http://www.zghlxwxcb.cn/news/detail-764431.html
到了這里,關(guān)于洋桃電子STM32F407單片機入門教程筆記一:RCC時鐘設(shè)置的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!