版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)
文檔簡介
實驗8——RCC卓越工程師培養(yǎng)系列本書獲深圳大學(xué)教材出版資助STM32F1開發(fā)標(biāo)準(zhǔn)教程1.RCC功能框圖RCC功能框圖如圖9-1所示,本書中的所有實驗均涉及RCC,下面依次介紹高速外部時鐘HSE、鎖相環(huán)時鐘選擇器和倍頻器、系統(tǒng)時鐘SYSCLK選擇器、AHB預(yù)分頻器、APB1和APB2預(yù)分頻器定時器倍頻器、ADC預(yù)分頻器和Cortex系統(tǒng)時鐘分頻器。1.RCC功能框圖HSE是高速外部時鐘的縮寫,HSE可以由有源晶振提供,也可以由無源晶振提供,頻率范圍為4~16MHz。STM32核心板板載晶振為無源8MHz晶振,通過OSC_IN和OSC_OUT兩個引腳接入芯片,同時還要配諧振電容。如果選擇有源晶振,則時鐘從OSC_IN接入,OSC_OUT懸空。1.高速外部時鐘HSE1.RCC功能框圖鎖相環(huán)時鐘PLLCLK由兩級選擇器和一級倍頻器組成。第一級鎖相環(huán)時鐘選擇器通過RCC_CFGR的PLLXTPRE選擇HSE二分頻或HSE作為下一級的時鐘輸入第二級鎖相環(huán)時鐘選擇器通過RCC_CFGR的PLLSRC選擇HSE(或HSE二分頻)或HSI二分頻(4MHz)作為下一級的時鐘輸入。本書所有實驗均選擇HSE(8MHZ)作為下一級的時鐘輸入。HSI是內(nèi)部高速時鐘的縮寫,由內(nèi)部RC振蕩器產(chǎn)生,頻率為8MH,但不穩(wěn)定。鎖相環(huán)時鐘倍頻器通過RCC_CFGR的PLLMUL選擇對上一級時鐘進行2、3、4、...16倍頻輸出,由于本書所有實驗中PLLMUL均為0111,即配置為9倍頻,因此,此處輸出時鐘(PLLCLK)的頻率為72MHz。2.鎖相環(huán)時鐘選擇器和倍頻器1.RCC功能框圖通過RCCCFGR的SW選擇系統(tǒng)時鐘SYSCLK的時鐘源可以選擇HSIHSE或PLLCLK作為SYSCLK的時鐘源。本書所有實驗均選擇PLLCLK作為SYSCLK的時鐘源由于PLLCLK是72MHz,因此,SYSCLK同樣也是72MHz。AHB預(yù)分頻器通過RCCCFGR的HPRE對SYSCLK進行1、2、4、8、16、64、128256或512分頻,本書所有實驗的AHB預(yù)分頻器均未對SYSCLK進行分頻即AHB時鐘依然為72MHz。3.系統(tǒng)時鐘SYSCLK選擇器4.AHB預(yù)分頻器1.RCC功能框圖AHB時鐘是APB1和APB2預(yù)分頻器的時鐘輸入,APB1預(yù)分頻器通過RCC_CFGR的PPRE1對AHB時鐘進行1248或16分頻APB2預(yù)分頻器通過RCC_CFGR的PPRE2對AHB時鐘進行1、2、4、8或16分頻。本書所有實驗的APB1預(yù)分頻器均對AHB時鐘進行2分頻,APB2預(yù)分頻器對AHB時鐘未進行分頻因此,APB1時鐘頻率為36MHZ,APB2時鐘頻率為72MHz。需要注意的是,APB1時鐘最大頻率為36MHZAPB2時鐘最大頻率為72MHz。5.APB1和APB2預(yù)分頻器1.RCC功能框圖STM32有8個定時器其中TIM2~7時鐘由APB1時鐘提供TIM1和TIM8時鐘由APB2時鐘提供。當(dāng)APBx預(yù)分頻器的分頻系數(shù)為1時,定時器的時鐘頻率與APBx時鐘頻率相等否則,當(dāng)APBx預(yù)分頻器的分頻系數(shù)不為1時,定時器的時鐘頻率是APBx時鐘頻率的2倍本書所有實驗的APB1預(yù)分頻器的分頻系數(shù)均為2,APB2預(yù)分頻器的分頻系數(shù)為1,而且APB1時鐘頻率為36MHzAPB2時鐘頻率為72MHz因此TIM27的時鐘頻率為72MHzTIM1和TIM8的時鐘頻率同樣為72MHz。6.定時器倍頻器1.RCC功能框圖STM32微控制器的ADC時鐘由APB2時鐘提供ADC預(yù)分頻器通過RCCCFGR的ADCPRE對APB2時鐘進行246或8分頻于APB2時鐘是72MHZ而本書最后兩個實驗(DAC實驗和ADC實驗)的ADC預(yù)分頻器的分頻因子為6因此,最終的ADC時鐘為72MHz/6=12MHz。AHB時鐘或AHB時鐘經(jīng)過8分頻作為Cortex系統(tǒng)時鐘。本書中的SysTick實驗使用的即為Cortex系統(tǒng)時鐘AHB時鐘頻率為72MHz,因此,SvsTick時鐘頻率同樣是72MHz或是9MHz。本書所有實驗的Cortex系統(tǒng)時鐘頻率均默認(rèn)為72MHz,因此,SysTick時鐘頻率也為72MHz。7.ADC預(yù)分頻器8.Cortex系統(tǒng)時鐘分頻器2.RCC部分寄存器RCC_CR的結(jié)構(gòu)、偏移地址和復(fù)位值如圖9-2所示,對部分位的解釋說明如表9-1所示。1.時鐘控制寄存器(RCC_CR)2.RCC部分寄存器RCC_CFGR的結(jié)構(gòu)偏移地址和復(fù)位值如圖9-3所,對部分位的解釋說明如表9-2所示。2.時鐘配置寄存器(RCC_CFGR)2.RCC部分寄存器RCC_CIR的結(jié)構(gòu)、偏移地址和復(fù)位值如圖9-4所示對部分位的解釋說明如表9-3所示。3.時鐘中斷寄存器(RCC_CIR)3.RCC部分固件庫函數(shù)RCC_DeInit函數(shù)的功能是將外設(shè)RCC寄存器重設(shè)為默認(rèn)值,通過向RCC→CR、RCC→CFGR和RCC→CIR寫入?yún)?shù)來實現(xiàn)。具體描述如表9-4所示。1.RCC_Delnit3.RCC部分固件庫函數(shù)RCC_HSECong函數(shù)的功能是設(shè)置外部高速晶振(HSE),通過向RCC→CR寫入?yún)?shù)來實現(xiàn)。具體描述如表9-5所示。參數(shù)RCC_HSE為HSE的新狀態(tài),可取值如表9-6所示。2.RCC_HSEConfig3.RCC部分固件庫函數(shù)RCC_WaitForHSEStartUp函數(shù)的功能是等待HSE起振,通過讀取并判斷RCC→CR、RCC→BDCR或RCC→CSR來實現(xiàn)。具體描述如表9-7所示。3.RCC_WaitForHSEStartUp3.RCC部分固件庫函數(shù)RCC_HCLKConfig函數(shù)的功能是設(shè)置AHB時鐘(HCLK),通過向RCC→CFGR寫入?yún)?shù)來實現(xiàn)。具體描述如表9-8所示。參數(shù)RCC_HCLK用來設(shè)置AHB時鐘,可取值如表9-9所示。4.RCC_HCLKConfig3.RCC部分固件庫函數(shù)RCC_PCLK1Config函數(shù)的功能是設(shè)置低速APB時鐘(即APB1時鐘PCLK1),通過向RCC→CFGR寫入?yún)?shù)來實現(xiàn)。具體描述如表9-10所示。5.RCC_PCLK1Config3.RCC部分固件庫函數(shù)參數(shù)RCC_PCLK1用來設(shè)置低速APB時鐘,可取值如表9-11所示。5.RCC_PCLK1Config3.RCC部分固件庫函數(shù)RCC_PCLK2Config函數(shù)的功能是設(shè)置高速APB時鐘(即APB2時鐘或PCLK2),通過向RCC→CFGR寫入?yún)?shù)來實現(xiàn)。具體描述如表9-12所示。6.RCC_PCLK2Config3.RCC部分固件庫函數(shù)參數(shù)RCC_PCLK2用來設(shè)置高速APB時鐘,可取值如表9-13所示。6.RCC_PCLK2Config3.RCC部分固件庫函數(shù)RCC_PLLCmd函數(shù)的功能是使能或除能PLL,通過讀取RCC→CR來實現(xiàn)。具體描述如表9-14所示。7.RCC_PLLCmd3.RCC部分固件庫函數(shù)RCC_GetFlagStatus函數(shù)的功能是獲取指定的RCC標(biāo)志位狀態(tài),通過讀取RCC→CR、RCC→BDCR或RCC→CSR來實現(xiàn)。具體描述如表9-15所示。8.RCC_GetFlagStatus3.RCC部分固件庫函數(shù)參數(shù)RCC_FLAG用來指定待獲取的RCC標(biāo)志位,可取值如表9-16所示。8.RCC_GetFlagStatus3.RCC部分固件庫函數(shù)RCC_SYSCLKConfig函數(shù)的功能是設(shè)置系統(tǒng)時鐘(SYSCLK)通過向RCC→CFGR寫入?yún)?shù)來實現(xiàn)。具體描述如表9-17所示。9.RCC_SYSCLKConfig3.RCC部分固件庫函數(shù)參數(shù)RCC_SYSCLKSource為用作系統(tǒng)時鐘的時鐘源,可取值如表9-18所示。9.RCC_SYSCLKConfig3.RCC部分固件庫函數(shù)RCC_GetSYSCLKSource函數(shù)的功能是返回用作系統(tǒng)時鐘的時鐘源,通過讀取RCC→CFGR來實現(xiàn)。具體描述如表9-19所示。10.RCC_GetSYSCLKSource4.Flash部分寄存器STM32的內(nèi)部Flash總共有8個寄存器本實驗僅涉及閃存訪問控制寄存器(FLASH_ACR)。FLASH_ACR的結(jié)構(gòu)偏移地址和復(fù)位值如圖9-5所示,對部分位的解釋說明如表9-20所示。5.Fash部分固件庫函數(shù)FLASH_PrefetchBuferCmd函數(shù)的功能是使能或除能預(yù)取指緩存,通過向FLASH→ACR寫入?yún)?shù)來實現(xiàn)。具體描述如表9-21所示。1.FLASH_PrefetchBufferCmd5.Fash部分固件庫函數(shù)參數(shù)FLASH_PrefetchBuffer用來選擇FLASH預(yù)取指緩存的模式,可取值如表9-22所示。1.FLASH_PrefetchBufferCmd5.Fash部分固件庫函數(shù)FLASH_SetLatency函數(shù)的功能是設(shè)置代碼延時值,通過向FLASH→ACR寫入?yún)?shù)來實現(xiàn)。具體描述如表9-23所示。2.FLASH_SetLatency5.Fash部分固件庫函數(shù)參數(shù)FLASH_Latency用來設(shè)置FLASH存儲器延時時鐘周期數(shù),可取值如表9-24所示。2.FLASH_SetLatency03實驗步驟步驟1:首先,將“D:STM32KeilTestMaterial08RCC實驗”文件夾復(fù)制到“D:STM32KeilTestProduct”文件夾中。然后,雙擊運行“DSTM32KeilTestProductl08RCC實驗Project”文件夾中的STM32KeilPrjuvprojx,單擊工具欄中的按鈕。當(dāng)BuildOutput欄出現(xiàn)FromELF:creatinghexfile...時,表示已經(jīng)成功生成hex文件,出現(xiàn)0Error(s)0Warming(s)表示編譯成功最后,將axf文件下載到STM32的內(nèi)部Flash,觀察STM32核心板上的兩個LED是否交閃爍。如果兩個LED交替閃爍,串口正常輸出字符串,表示原始工程是正確的,接著就可以進入下一步操作。復(fù)制并編譯原始工程步驟2:首先,將“D:STM32KeilTestProductl08RCC實驗HWRCC”文件夾中的RCCc添加到HW分組,具體操作可參見2.3節(jié)步8。然后,將“D:STM32KeilTestProducti08RCC實驗HWRCC”路徑添加到IncludePaths欄,具體操作可參見23節(jié)步11。添加RCC文件對步驟3:單擊
按鈕進行編譯,編譯結(jié)束后,在Project面板中,雙擊RCC.c下的RCC。在RCCh文件的“包含頭文件”區(qū),添加代碼#include"DataType.h”。在RCCh文件的“API函數(shù)聲明”區(qū),添加如程序清單9-1所的API函數(shù)聲明代碼ImitRCC函數(shù)主要是初始化RCC時鐘控制器模塊。完善RCC.h文件步驟4:在RCCc文件的“包含頭文件”區(qū)的最后,添加代碼#include"stm32f10xconfh"。在RCC.c文件的“內(nèi)部函數(shù)聲明”區(qū),添加ConfigRCC函數(shù)的聲明代碼,如程序清單9-2所示,ConfigRCC函數(shù)用于配置RCC。完善RCC.c文件步驟4:在RCCc文件的“內(nèi)部函數(shù)實現(xiàn)”區(qū),添加ConfigRCC函數(shù)的實現(xiàn)代碼,如程序清單9-3所示。下面按照順序?qū)onfigRCC函數(shù)中的語進行解釋說明。(1)通過RCC_DeInit函數(shù)將RCC部分存器重設(shè)為默認(rèn)值,這些寄存器包括RCC_CR、RCC_CFGR、RCC_CIR和RCC_CFGR2。(2)通過RCC_HSEConfg函數(shù)使能外部高速晶振。該函數(shù)涉及RCC_CR的HSEONHSEON為0除能外部高速晶振,HSEON為1使能外部高速晶振,可參見圖9-2和表9-1。完善RCC.c文件步驟4:(3)通過RCC_WaitForHSEStartUp函數(shù)判斷外部高速時鐘是否就緒,返回值賦給HSEStartUpStatus。該函數(shù)涉及RCC_CR的HSERDY,HSERDY為1表示外部高速時鐘準(zhǔn)備就緒,HSEStartUpStatus為SUCCESS;HSERDY為0表示外部高速時鐘未就緒,HSEStartUpStatus為ERROR,可參見圖9-2和表9-1。(4)通過FLASHPrefetchBufferCmd函數(shù)啟用Fash預(yù)讀取緩沖區(qū),這樣可以加速內(nèi)部Flash的讀取。該函數(shù)涉及FLASHACR的PRFTBE,PRFTBE為0關(guān)閉Flash預(yù)讀取緩沖區(qū)PRFTBE為1啟用Flash預(yù)讀取緩沖區(qū),可參見圖9-5和表9-20。完善RCC.c文件步驟4:(5)通過FLASH_SetLatency函數(shù)將時延設(shè)置為兩個等待狀態(tài)。該函數(shù)涉及FLASH_ACR的LATENCY[2:0],系統(tǒng)時鐘SYSCLK時鐘頻率在0~24MHz時,LATENCYT[2:0]取值為000(零等待狀態(tài));時鐘頻率在24~48MHz時,取值為001(一個等待狀態(tài));時鐘頻率在48~72MHz時,取值為010(兩個等待狀態(tài)),可參見圖9-5和表9-20。(6)通過RCC_HCLKCofig函數(shù)將高速AHB時鐘的預(yù)分頻系數(shù)設(shè)置為1。該函數(shù)涉及RCC_CFGR的HPRE[3:0],AHB時鐘是系統(tǒng)時鐘SYSCLK時鐘進行1、2、4、8、16、64128、256或512分頻的結(jié)果,HPRE[3:0]控制AHB時鐘的預(yù)分頻系數(shù),可參見圖9-3和表9-2。本實驗的HPRET3:01為0000,即AHB時鐘與SYSCLK時鐘頻率相等,SYSCLK時鐘頻率為72MHz,因此,AHB時鐘頻率同樣也為72MHz。完善RCC.c文件步驟4:(7)通過RCC_PCLK2Confg函數(shù)將高速APB2時鐘的預(yù)分頻系數(shù)設(shè)置為1。該函數(shù)涉及RCC_CFGR的PPRE2[2:0],APB2時鐘是AHB時鐘進行1248或16分頻的結(jié)果PPRE2[2:0]控制APB2時鐘的預(yù)分頻系數(shù)可參見圖9-3和表9-2本實驗的PPRE22:01為000即APB2時鐘與AHB時鐘頻率相等AHB時鐘頻率為72MH此APB2時鐘頻率同樣也為72MHz。(8)通過RCC_PCLK1Confg函數(shù)將高速APB時鐘的預(yù)分頻系數(shù)設(shè)置為2。該函數(shù)涉及RCC_CFGR的PPRE12:01APB1時鐘是AHB時鐘進行1248或16分頻的結(jié)果PPRE1T[2:0]控制APB1時鐘的預(yù)分頻系數(shù)可參見圖9-3和表9-2本實驗的PPRE1[2:0]為100即APB1時鐘是AHB時鐘的2分頻由于AHB時鐘頻率為72MH因此,APB1時鐘頻率為36MHZ。完善RCC.c文件步驟4:(9)通過RCC_PLLConfig函數(shù)設(shè)置PLL時鐘源及倍頻系數(shù)。該函數(shù)涉及RCC_CFGR的PLLMUL[3:0]、PLLXTPRE和PLLSRC,PLLMUL[3:0]用于控制PLL時鐘倍頻系數(shù),PLLSRC和PLLXTPRE用于選擇HSI時鐘2分頻HSE時鐘或HSE時鐘2分頻作為PLL時鐘可參見圖9-3和表9-2。本實驗的PLLSRC為1,PLLXTPRE為0,PLLMUL為0111,因此,頻率為8MHz的HSE時鐘經(jīng)過9倍頻后作為PLL時鐘,即PLL時鐘為72MHz。(10)通過RCCPLLCmd函數(shù)使能PLL時鐘。該函數(shù)涉及RCCCR的PLLON,PLLON用于除能或使能PLL時鐘,可參見圖9-2和表9-1。完善RC
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024年國際汽車銷售代理合同
- 2024年度保險代理協(xié)議
- 2024年害蟲防治定期服務(wù)協(xié)議
- 2024區(qū)塊鏈技術(shù)應(yīng)用與合作合同
- 2024年專業(yè)同聲傳譯合作協(xié)議
- 2024版蔬菜采購合同書文書
- 2024區(qū)塊鏈技術(shù)研發(fā)公司與金融機構(gòu)之間的數(shù)字貨幣發(fā)行與交易合同
- 2024民間私人貸款合同范本個人民間貸款合同范本
- 2024年個性化金融服務(wù)系統(tǒng)建設(shè)合同
- 2024年度裝飾工程grc材料采購合同
- 中醫(yī)創(chuàng)新項目
- 《犯罪心理學(xué)(馬皚第3版)》章后復(fù)習(xí)思考題及答案
- 青驕第二課堂2021年禁毒知識答題期末考試答案(初中組)
- 《中華人民共和國監(jiān)察法》知識測試題庫
- 《城市軌道交通橋梁養(yǎng)護技術(shù)規(guī)范》
- 《水土保持技術(shù)》課件-項目八 攔渣措施
- 機動車檢測站違規(guī)檢驗整改報告
- 2024年建筑電工復(fù)審考試題庫附答案
- 2024年4月自考04737C++程序設(shè)計試題及答案含評分參考
- 睡眠醫(yī)學(xué)智慧樹知到期末考試答案章節(jié)答案2024年廣州醫(yī)科大學(xué)
- GB/T 17259-2024機動車用液化石油氣鋼瓶
評論
0/150
提交評論