发新帖我要提问
123
返回列表
打印
[应用相关]

系统时钟RCC详解(超详细,超全面)

[复制链接]
手机看帖
扫描二维码
随时随地手机跟帖
41
代码实现:
对RCC的配置函数(使用外部8MHz晶振)  

系统时钟72MHz,APH 72MHz,APB2 72MHz,APB1 32MHz,USB 48MHz TIMCLK=72M

使用特权

评论回复
42
发给她更好fh|  楼主 | 2021-4-27 15:04 | 只看该作者
void RCC_Configuration(void)
{
        //----------使用外部RC晶振-----------
        RCC_DeInit();                        //初始化为缺省值
        RCC_HSEConfig(RCC_HSE_ON);        //使能外部的高速时钟
        while(RCC_GetFlagStatus(RCC_FLAG_HSERDY) == RESET);        //等待外部高速时钟使能就绪
       
        FLASH_PrefetchBufferCmd(FLASH_PrefetchBuffer_Enable);        //Enable Prefetch Buffer
        FLASH_SetLatency(FLASH_Latency_2);                //Flash 2 wait state
       
        RCC_HCLKConfig(RCC_SYSCLK_Div1);                //HCLK = SYSCLK
        RCC_PCLK2Config(RCC_HCLK_Div1);                        //PCLK2 =  HCLK
        RCC_PCLK1Config(RCC_HCLK_Div2);                        //PCLK1 = HCLK/2
        RCC_PLLConfig(RCC_PLLSource_HSE_Div1,RCC_PLLMul_9);        //PLLCLK = 8MHZ * 9 =72MHZ
        RCC_PLLCmd(ENABLE);                        //Enable PLLCLK

        while(RCC_GetFlagStatus(RCC_FLAG_PLLRDY) == RESET);        //Wait till PLLCLK is ready
    RCC_SYSCLKConfig(RCC_SYSCLKSource_PLLCLK);        //Select PLL as system clock
        while(RCC_GetSYSCLKSource()!=0x08);                //Wait till PLL is used as system clock source
       
        //---------打开相应外设时钟--------------------
        RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA,ENABLE);        //使能APB2外设的GPIOA的时钟                 
}

使用特权

评论回复
43
发给她更好fh|  楼主 | 2021-4-27 15:05 | 只看该作者
也就是我们时钟树框图从左到右的配置,

使用特权

评论回复
44
发给她更好fh|  楼主 | 2021-4-27 15:06 | 只看该作者
STM32还提供了一个时钟监视系统(CSS),用于监视高速外部时钟(HSE)的工作状态。倘若HSE失效,会自动切换(高速内部时钟)HSI作为系统时钟的输入,保证系统的正常运行。

使用特权

评论回复
45
jcky001| | 2021-4-27 15:08 | 只看该作者
楼主太厉害了,一遍**用了三页

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则