配置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监控单片机定时器运行的截图