<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 嵌入式系統 > 設計應用 > STM32 RCC基本原理和配置流程

STM32 RCC基本原理和配置流程

作者: 時(shí)間:2016-11-19 來(lái)源:網(wǎng)絡(luò ) 收藏
總是在其他外設的說(shuō)明里看到HCLK,PCLK類(lèi)似的字眼,但沒(méi)有一個(gè)清晰的邏輯概念。對系統時(shí)鐘不了解的情況下,前兩天試了下sysTick,情況并不理想,更不要說(shuō)RTC和TIM了。于是開(kāi)始看RCC。

邏輯框圖

本文引用地址:http://dyxdggzs.com/article/201611/318306.htm

芯片運行所需的時(shí)鐘源分為四種,HSE (High Speed External),HSI,LSE,LSI (Low Speed Internal)。系統時(shí)鐘頻率可以通過(guò)軟件進(jìn)行控制,設置分頻倍頻值和該計算的時(shí)鐘源;對于芯片各外設和總線(xiàn)來(lái)說(shuō),都有自己運行所需要的時(shí)鐘,要根據用戶(hù)的使用與否,對它們分別加以配置,達到節約資源的目的。對于上述復雜的邏輯結構,我很喜歡STSTM32F101xx, STM32F102xx, STM32F103xx, STM32F105xx and STM32F107xx advanced ARM-based 32-bit MCUs>7.2 Clocks中的邏輯框圖。

藍線(xiàn)是將要進(jìn)行操作和配置的時(shí)鐘源,綠線(xiàn)是需要配置的PLL分頻和倍頻器,紅線(xiàn)是某時(shí)鐘源可以供給的外設,紫線(xiàn)是允許的頻率最大值。結合RCC設置的代碼,把這個(gè)圖看熟了,對于芯片各部分的工作頻率和名稱(chēng)將會(huì )有一個(gè)較清晰的認識。

對于A(yíng)HB和APB上的外設和頻率,根據上述文檔中的Table1,小結如下:

AHB (最大72M)

APB1 (最大36M): DAC, PWR, BKP, CAN, SRAM, I2C, UART2~5, SPI2/3, RTC, TIM2~7

APB2 (最大72M): ADC, SPI1, TIM1/8, GPIOA~F, EXTI, AFIO

寄存器

RCC寄存器大致分為以下幾種;1. AHB, APB1, APB2時(shí)鐘使能和復位寄存器;2. 查詢(xún)和開(kāi)關(guān)各時(shí)鐘源,中斷源;3. 設置時(shí)鐘源連接情況,分頻倍頻值;4. 備份域控制,與RTC和LSE相關(guān)。

時(shí)鐘源配置流程

結合ST提供的例程,看程序剛啟動(dòng)時(shí)對于RCC的配置,大致步驟為:

1. 在控制寄存器CR里,打開(kāi)HSI;2. 在配置寄存器CFGR里,清除各預分頻器,斷開(kāi)系統時(shí)鐘的連接;3. 在CR里,關(guān)閉HSE, CSS, PLL, HSE旁路;4. 在CFGR里,斷開(kāi)PLL連接,清空預分頻器和倍頻器;5. 清除中斷使能和掛起;6. 設置系統時(shí)鐘。之所以需要2,3步驟的順序,是因為在改變連接前,不能斷開(kāi)時(shí)鐘源。

以STM32F107VC為例,設置72M系統時(shí)鐘的步驟為:

1. 在CR里打開(kāi)HSE并等待打開(kāi)成功。2. 在CFGR里設置預分頻值,使HCLK = SYSCLK, PCLK2 = HCLK, PCLK1 = HCLK/2。3. 在CFGR2中設置PREDIV1的來(lái)源為PLL2,預分頻值為5;PLL2為HSE (25M) / 5 * 8 (= 40M) 所得;在CR中使能PLL2并等待設置成功。4. 在CFGR中設置PLLCLK的來(lái)源為PREDIV1,倍頻值為9 (40 / 5 * 9 = 72M為PLLCLK的頻率);在CR中使能PLL并等待設置成功。5. 在CFGR中設置SYSCLK為PLLCLK。完成系統時(shí)鐘設置。

至此,程序時(shí)鐘源頻率初始化完成。再通過(guò)修改AHB, APB時(shí)鐘使能寄存器的值,使能所需外設,即可使系統正常運行。另外,在初始化各外設時(shí),應先將RCC中APB置位寄存器中的對應項置位,恢復初始狀態(tài)。



關(guān)鍵詞: STM32RCC基本原理配置流

評論


技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>