如何确认STM32时钟配置是否正确

配置STM32F103时钟(HSI)为48M

void SystemClock_Config(void)
{
    RCC_DeInit();

    RCC_HSICmd(ENABLE);
    while(RCC_GetFlagStatus(RCC_FLAG_HSIRDY) == RESET);

    RCC_HCLKConfig(RCC_SYSCLK_Div1);     
    RCC_PCLK1Config(RCC_HCLK_Div2);
    RCC_PCLK2Config(RCC_HCLK_Div1);  

    RCC_PLLConfig(RCC_PLLSource_HSI_Div2, RCC_PLLMul_12);
    RCC_PLLCmd(ENABLE); 
    while(RCC_GetFlagStatus(RCC_FLAG_PLLRDY) == RESET); 

    RCC_SYSCLKConfig(RCC_SYSCLKSource_PLLCLK);
    while(RCC_GetSYSCLKSource() != 0x08);
}

在Main()函数里面添加监控代码

    RCC_ClocksTypeDef     RCC_Clocks;
    RCC_GetClocksFreq(&RCC_Clocks);

开启硬件仿真,将RCC_Clocks添加至监控窗口

这里写图片描述
SYSCLK_Frequenc为当前设置的时钟,即48M。

定时器的1MS定时

想要测试1M定时准确性,Keil需要配置CoreClock,并且需要它的时钟值与单片机配置的时钟值(48M)保持一致,下图为配置的位置:

这里写图片描述
下图为Keil监控单片机定时器运行的截图

这里写图片描述

猜你喜欢

转载自blog.csdn.net/doyoung1/article/details/79100159
今日推荐