在线看毛片网站电影-亚洲国产欧美日韩精品一区二区三区,国产欧美乱夫不卡无乱码,国产精品欧美久久久天天影视,精品一区二区三区视频在线观看,亚洲国产精品人成乱码天天看,日韩久久久一区,91精品国产91免费

<menu id="6qfwx"><li id="6qfwx"></li></menu>
    1. <menu id="6qfwx"><dl id="6qfwx"></dl></menu>

      <label id="6qfwx"><ol id="6qfwx"></ol></label><menu id="6qfwx"></menu><object id="6qfwx"><strike id="6qfwx"><noscript id="6qfwx"></noscript></strike></object>
        1. <center id="6qfwx"><dl id="6qfwx"></dl></center>

            新聞中心

            EEPW首頁 > 嵌入式系統(tǒng) > 牛人業(yè)話 > STM32再學(xué)習(xí)——時鐘初始化

            STM32再學(xué)習(xí)——時鐘初始化

            作者:jobs 時間:2013-10-23 來源:電子產(chǎn)品世界 收藏

              系列,或者說是Cortex-M3內(nèi)核的內(nèi),都集成了一個叫的東西。就是鎖相回路或鎖相環(huán)(Phase Locked Loop),用來統(tǒng)一整合時脈訊號,使內(nèi)存能正確的存取資料。用于振蕩器中的反饋技術(shù),將外部的輸入信號與內(nèi)部的振蕩信號同步,鎖相環(huán)路的基本方框圖如下圖所示。一句話,PLL用來控制頻率的??偠灾?,系列使用了這個東西,而我們在上電之后,也就要對其正確的初始化,這樣,我們才能得到我們需要的配置。

            本文引用地址:http://www.biyoush.com/article/182408.htm

              在ST公司的外設(shè)固件庫的示例里,對于工程項(xiàng)目文件,ST并沒有在啟動函數(shù)main()里初始化PLL,因?yàn)槠湟呀?jīng)在硬件初始化階段完成對系統(tǒng)的配置。這樣也就帶了一個問題,ST庫里的均使用了外設(shè)8MHz的晶振,而我們平時的項(xiàng)目就一定采用的是這個頻率,實(shí)際配置的低于8MHz,MCU不能全速運(yùn)行,高于8MHz,外設(shè)時鐘即配置失敗,甚至無法運(yùn)行。那么如何重新配置時鐘就需要我們一線的工程師們重新設(shè)計(jì)了。

              ST庫里的硬件初始化階段的代碼是用寄存器方式編寫的,不利于我們閱讀與參考。也正是出于這個原因,小編使用庫函數(shù)重新編寫了STM32F系統(tǒng)時鐘PLL初始化過程,與大家分享,期待共同提高與進(jìn)步。

              /*********************************************************************************************************

              ** Function name: static void SysClockInit(void)

              ** Descriptions: 配置SYSCLK, HCLK, PCLK2與PCLK1

              ** Created by: Jobs Zheng

              ** Created Date: 2013-03-06 09:35

              *********************************************************************************************************/

              static void SysClockInit(void)

              {

              RCC_DeInit();/* RCC重置 */

              RCC_HSEConfig(RCC_HSE_ON); /*(使能HSE)*/

              HSEStartUpStatus = RCC_WaitForHSEStartUp();/*(等待HSE使能結(jié)束)*/

              if (HSEStartUpStatus == SUCCESS)

              {

              FLASH_PrefetchBufferCmd(FLASH_PrefetchBuffer_Enable);

              FLASH_SetLatency(FLASH_Latency_2);

              RCC_HCLKConfig(RCC_SYSCLK_Div1); /* 配置HCLK = SYSCLK */

              RCC_PCLK2Config(RCC_HCLK_Div1); /* 配置PCLK2 = HCLK */

              RCC_PCLK1Config(RCC_HCLK_Div2); /* 配置PCLK1 = HCLK/2 */

              /* 超級重要的、需要配置的地方在這里 */

              /* PLLCLK = 8MHz * 9 = 72 MHz */

              RCC_PLLConfig(RCC_PLLSource_HSE_Div1, RCC_PLLMul_9); /* RCC_PLLSource_HSE_Div1為外置晶振的分頻系數(shù);RCC_PLLMul_9為倍頻數(shù) */

              RCC_PLLCmd(ENABLE);

              while (RCC_GetFlagStatus(RCC_FLAG_PLLRDY) == RESET)

              {

              }

              RCC_SYSCLKConfig(RCC_SYSCLKSource_PLLCLK); /* 選定PLL為系統(tǒng)主時鐘 */

              while(RCC_GetSYSCLKSource() != 0x08)

              {

              }

              }

              else

              { /* 配置失敗將程序停留在這里 */

              while (1)

              {

              }

              }

              }

              上述C語言的文件仍需要#include "stm32f10x.h"的頭文件來調(diào)用ST固件庫。

              就像ST官方說明文檔所說,STM32F系列MCU支持4M-16MHz的外置晶振,因此,大家在沒有官方默認(rèn)的8Mhz晶振下,大可不必苦惱,只需要添加上面的這個初始化函數(shù),你就可以任意使用外置晶振了。

              祝大家工作順利,編程快樂 ^_^

             

            c語言相關(guān)文章:c語言教程


            晶振相關(guān)文章:晶振原理
            鎖相環(huán)相關(guān)文章:鎖相環(huán)原理


            關(guān)鍵詞: 微處理器 STM32F PLL MCU 時鐘

            評論


            相關(guān)推薦

            技術(shù)專區(qū)

            關(guān)閉