1. 程式人生 > >如何確認STM32時鐘配置是否正確

如何確認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監控微控制器定時器執行的截圖

這裡寫圖片描述