新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > STM32F107VCT6的RCC配置

        STM32F107VCT6的RCC配置

        作者: 時間:2016-11-10 來源:網絡 收藏
        /****************************************************************/
        /* HSE=25MHz
        /* HCLK=72MHz
        /* PCLK2=72MHz
        /* PCLK1=36MHz
        /****************************************************************/

        void RCC_Configuration(void)
        {
        ErrorStatus HSEStartUpStatus;

        /* RCC system reset(for debug purpose) */
        RCC_DeInit();

        /* Enable HSE */
        RCC_HSEConfig(RCC_HSE_ON);

        /* Wait till HSE is ready */
        HSEStartUpStatus = RCC_WaitForHSEStartUp();

        if (HSEStartUpStatus != ERROR)
        {
        /* Enable Prefetch Buffer */
        FLASH_PrefetchBufferCmd(FLASH_PrefetchBuffer_Enable);

        /****************************************************************/
        /* HSE=25MHz, HCLK=72MHz, PCLK2=72MHz, PCLK1=36MHz */
        /****************************************************************/
        /* Flash 2 wait state */
        FLASH_SetLatency(FLASH_Latency_2);
        /* HCLK = SYSCLK */
        RCC_HCLKConfig(RCC_SYSCLK_Div1);
        /* PCLK2 = HCLK */
        RCC_PCLK2Config(RCC_HCLK_Div1);
        /* PCLK1 = HCLK/2 */
        RCC_PCLK1Config(RCC_HCLK_Div2);
        /* ADCCLK = PCLK2/4 */
        RCC_ADCCLKConfig(RCC_PCLK2_Div6);

        /* Configure PLLs *********************************************************/
        /* PPL2 configuration: PLL2CLK = (HSE / 5) * 8 = 40 MHz */
        RCC_PREDIV2Config(RCC_PREDIV2_Div5);
        RCC_PLL2Config(RCC_PLL2Mul_8);

        /* Enable PLL2 */
        RCC_PLL2Cmd(ENABLE);

        /* Wait till PLL2 is ready */
        while (RCC_GetFlagStatus(RCC_FLAG_PLL2RDY) == RESET)
        {}

        /* PPL1 configuration: PLLCLK = (PLL2 / 5) * 9 = 72 MHz */
        RCC_PREDIV1Config(RCC_PREDIV1_Source_PLL2, RCC_PREDIV1_Div5);
        RCC_PLLConfig(RCC_PLLSource_PREDIV1, RCC_PLLMul_9);

        /* Enable PLL */
        RCC_PLLCmd(ENABLE);

        /* Wait till PLL is ready */
        while (RCC_GetFlagStatus(RCC_FLAG_PLLRDY) == RESET)
        {}

        /* Select PLL as system clock source */
        RCC_SYSCLKConfig(RCC_SYSCLKSource_PLLCLK);

        /* Wait till PLL is used as system clock source */
        while (RCC_GetSYSCLKSource() != 0x08)
        {}
        }
        }

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



        關鍵詞: STM32F107VCT6RCC配

        評論


        技術專區

        關閉
        主站蜘蛛池模板: 四平市| 永昌县| 隆尧县| 原阳县| 鄂伦春自治旗| 景洪市| 英吉沙县| 富民县| 崇文区| 黄梅县| 盘锦市| 许昌县| 雷波县| 岗巴县| 佳木斯市| 会泽县| 广水市| 东兰县| 遂溪县| 玛沁县| 江安县| 科尔| 内江市| 华容县| 元氏县| 吴川市| 长丰县| 通辽市| 思南县| 罗田县| 房山区| 沂源县| 辛集市| 仙居县| 资兴市| 江口县| 华宁县| 新竹市| 泽普县| 农安县| 榆社县|