stm32 系统时钟设定RCC

stm32 系统时钟设定RCC_第1张图片

stm32 系统时钟设定RCC_第2张图片

1.共四种时钟信号,LSE和HSE为外部时钟信号,用上图的引脚接入晶振或者时钟源。

2.系统默认的时钟配置是用函数SystemInit实现的,默认为LSI时钟信号,为8MHz。

3.可以使用外部高速时钟信号HSE,用PD0和PD1引脚,然后用程序设置APB总线、APB1、APB2等的时钟。

可以用FPGA作为HSE的时钟源。

 

    RCC_DeInit();                                             //初始化RCC寄存器

    RCC_HSEConfig(RCC_HSE_ON);               //打开外部高速时钟晶振HSE

    RCC_WaitForHSEStartUp();                      //等待外部高速时钟晶振工作

 

    RCC_HCLKConfig(RCC_SYSCLK_Div1);     //设置HCLK(AHB)为SYSCLK的1分频

    RCC_PCLK2Config(RCC_HCLK_Div1);       //设置ABP2为HCLK的1分频

    RCC_PCLK1Config(RCC_HCLK_Div2);       //设置APB1为HCLK的2分频

    RCC_ADCCLKConfig(RCC_PCLK2_Div6);

    FLASH_SetLatency(FLASH_Latency_2);

FLASH_PrefetchBufferCmd(FLASH_PrefetchBuffer_Enable);

//PLL锁相环倍频输出的时钟输入源为HSE/1,9倍频

    RCC_PLLConfig(RCC_PLLSource_HSE_Div1, RCC_PLLMul_9);

    RCC_PLLCmd(ENABLE);            //打开PLL

 

    while (RCC_GetFlagStatus(RCC_FLAG_PLLRDY) == RESET) {   //等待PLL工作

        ;

    }

 

    RCC_SYSCLKConfig(RCC_SYSCLKSource_PLLCLK);           //设置系统时钟为PLLCLK

 

    while (RCC_GetSYSCLKSource() != 0x08);                       //判断系统时钟是否为PLL

    

 

 

【加粗部分】若程序在此处一直循环执行,则检查硬件上的外部晶振是否有问题。

4.可以用【MCO-PA8】引脚输出时钟,可以用于用示波器检查时钟信号,也可用于给其他芯片提供时钟源。(需对此引脚进行复用功能配置)

5.HSI、HSE、PLLCLK可以左右系统时钟。

 

 

你可能感兴趣的:(STM32)