新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > 設置stm32系統各部分時鐘

        設置stm32系統各部分時鐘

        作者: 時間:2018-07-24 來源:網絡 收藏

        函數如下:

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

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

        * 函數名 : RccInitialisation
        * 函數描述 : 設置系統
        * 輸入參數 : 無
        * 輸出結果 : 無
        * 返回值 : 無
        **************************************************************************/
        void RccInitialisation(void)
        {
        /* 定義枚舉類型變量 HSEStartUpStatus */
        ErrorStatus HSEStartUpStatus;
        /* 復位系統時鐘設置*/
        RCC_DeInit();
        /* 開啟HSE*/
        RCC_HSEConfig(RCC_HSE_ON);
        /* 等待HSE起振并穩定*/
        HSEStartUpStatus = RCC_WaitForHSEStartUp();
        /* 判斷HSE起是否振成功,是則進入if()內部 */
        if(HSEStartUpStatus == SUCCESS)
        {
        /* 選擇HCLK(AHB)時鐘源為SYSCLK 1分頻 */
        RCC_HCLKConfig(RCC_SYSCLK_Div1);
        /* 選擇PCLK2時鐘源為 HCLK(AHB) 1分頻 */
        RCC_PCLK2Config(RCC_HCLK_Div1);
        /* 選擇PCLK1時鐘源為 HCLK(AHB) 2分頻 */
        RCC_PCLK1Config(RCC_HCLK_Div2);
        /* 設置FLASH延時周期數為2 */
        FLASH_SetLatency(FLASH_Latency_2);
        /* 使能FLASH預取緩存 */
        FLASH_PrefetchBufferCmd(FLASH_PrefetchBuffer_Enable);
        /* 選擇鎖相環(PLL)時鐘源為HSE 1分頻,倍頻數為9,則PLL輸出頻率為 8MHz * 9 = 72MHz
        */
        RCC_PLLConfig(RCC_PLLSource_HSE_Div1, RCC_PLLMul_9);
        /* 使能PLL */
        RCC_PLLCmd(ENABLE);
        /* 等待PLL輸出穩定 */
        while(RCC_GetFlagStatus(RCC_FLAG_PLLRDY) == RESET);
        /* 選擇SYSCLK時鐘源為PLL */
        RCC_SYSCLKConfig(RCC_SYSCLKSource_PLLCLK);
        /* 等待PLL成為SYSCLK時鐘源 */
        while(RCC_GetSYSCLKSource() != 0x08);
        }

        }

        在main函數中調用此函數即可完成時鐘的正常配置。

        • STM32單片機中文官網
        • STM32單片機官方開發工具
        • STM32單片機參考設計


        評論


        技術專區

        關閉
        主站蜘蛛池模板: 陈巴尔虎旗| 蒙阴县| 临海市| 武功县| 杨浦区| 渑池县| 新平| 庆元县| 磴口县| 岑巩县| 开化县| 凤台县| 江西省| 中方县| 石首市| 紫阳县| 云安县| 祁东县| 尚志市| 太仓市| 彩票| 南陵县| 镇沅| 荔波县| 东乌珠穆沁旗| 九台市| 镇坪县| 五大连池市| 安图县| 广宁县| 阿拉善左旗| 德阳市| 双辽市| 武城县| 会同县| 拉萨市| 化德县| 库伦旗| 平遥县| 拉孜县| 大荔县|