新聞中心

        EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計應(yīng)用 > stm32f407時鐘配置方法例程解析

        stm32f407時鐘配置方法例程解析

        作者: 時間:2016-11-24 來源:網(wǎng)絡(luò) 收藏
        這里我們寫一個RCC配置函數(shù)來說明各函數(shù)的用途,其中HSE = 8MHz。

        本文引用地址:http://www.104case.com/article/201611/320919.htm

        /**

        * @說明配置STM32F407的時鐘系統(tǒng)

        * @參數(shù)無

        * @返回?zé)o

        * @說明 void Clock_Config(void)按如下表格配置時鐘

        *

        *==================================================================

        * Supported STM32F4xx device revision | Rev A

        *-----------------------------------------------------------------------------

        * System Clock source | PLL (HSE)

        *-----------------------------------------------------------------------------

        * SYSCLK(Hz) | 168000000

        *-----------------------------------------------------------------------------

        * HCLK(Hz) | 168000000

        *-----------------------------------------------------------------------------

        * AHB Prescaler | 1

        *-----------------------------------------------------------------------------

        * APB1 Prescaler | 4

        *-----------------------------------------------------------------------------

        * APB2 Prescaler | 2

        *-----------------------------------------------------------------------------

        * HSE Frequency(Hz) | 8000000

        *-----------------------------------------------------------------------------

        * PLL_M |8

        *-----------------------------------------------------------------------------

        * PLL_N | 336

        *-----------------------------------------------------------------------------

        * PLL_P | 2

        *-----------------------------------------------------------------------------

        * PLL_Q |7

        *===================================================================

        */

        void Clock_Config(void){

        ErrorStatus State;

        uint32_t PLL_M;

        uint32_t PLL_N;

        uint32_t PLL_P;

        uint32_t PLL_Q;

        /*配置前將所有RCC重置為初始值*/

        RCC_DeInit();

        /*這里選擇 外部晶振(HSE)作為 時鐘源,因此首先打開外部晶振*/

        RCC_HSEConfig(RCC_HSE_ON);

        /*等待外部晶振進入穩(wěn)定狀態(tài)*/

        while( RCC_WaitForHSEStartUp() != SUCCESS );

        /*

        **我們要選擇PLL時鐘作為系統(tǒng)時鐘,因此這里先要對PLL時鐘進行配置

        */

        /*選擇外部晶振作為PLL的時鐘源*/

        /* 到這一步為止,已有HSE_VALUE = 8 MHz.

        PLL_VCO input clock = (HSE_VALUE or HSI_VALUE / PLL_M),

        根據(jù)文檔,這個值被建議在1~2MHz,因此我們令PLL_M = 8,

        即PLL_VCO input clock = 1MHz */

        PLL_M = 8;

        /* 到這一步為止,已有PLL_VCO input clock = 1 MHz.

        PLL_VCO output clock = (PLL_VCO input clock) * PLL_N,

        這個值要用來計算系統(tǒng)時鐘,我們 令PLL_N = 336,

        即PLL_VCO output clock = 336 MHz.*/

        PLL_N = 336;

        /* 到這一步為止,已有PLL_VCO output clock = 336 MHz.

        System Clock = (PLL_VCO output clock)/PLL_P ,

        因為我們要SystemClock = 168 Mhz,因此令PLL_P = 2.

        */

        PLL_P = 2;

        /*這個系數(shù)用來配置SD卡讀寫,USB等功能,暫時不用,根據(jù)文檔,暫時先設(shè)為7*/

        PLL_Q = 7;

        /* 配置PLL并將其使能,獲得168Mhz的System Clock時鐘*/

        RCC_PLLConfig(RCC_PLLSource_HSE, PLL_M, PLL_N, PLL_P, PLL_Q);

        RCC_PLLCmd(ENABLE);

        /*到了這一步,我們已經(jīng)配置好了PLL時鐘。下面我們配置Syetem Clock*/

        /*選擇PLL時鐘作為系統(tǒng)時鐘源*/

        RCC_SYSCLKConfig(RCC_SYSCLKSource_PLLCLK);


        上一頁 1 2 下一頁

        關(guān)鍵詞: stm32f407時鐘配置例程解

        評論


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

        關(guān)閉
        主站蜘蛛池模板: 云浮市| 高阳县| 公主岭市| 田林县| 湘潭市| 佳木斯市| 宜城市| 平乐县| 和平区| 寿宁县| 如皋市| 杭州市| 宜城市| 诸城市| 滨州市| 调兵山市| 靖江市| 辛集市| 玉田县| 玉树县| 曲靖市| 成都市| 乐清市| 开阳县| 怀宁县| 大兴区| 随州市| 观塘区| 南安市| 正安县| 鄂托克前旗| 阿拉善盟| 叙永县| 白朗县| 台中县| 土默特左旗| 恩施市| 隆回县| 衡阳县| 兴山县| 弋阳县|