改动内部系统时钟程序进入到while(1)时间很长
2019-07-14 13:32发布
打开微信“扫一扫”,打开网页后点击屏幕右上角分享按钮
为了降低功耗,我把内部系统时钟改为8M:
// /* PLL configuration = (HSI(~8MHz)/2) * 12 = ~48 MHz */
// RCC->CFGR &= (uint32_t)((uint32_t)~(RCC_CFGR_PLLSRC | RCC_CFGR_PLLXTPRE | RCC_CFGR_PLLMULL));
// RCC->CFGR |= (uint32_t)(RCC_CFGR_PLLSRC_HSI_Div2 | RCC_CFGR_PLLXTPRE_PREDIV1 | RCC_CFGR_PLLMULL12);
/* PLL configuration = (HSI(~8MHz)/2) * 2 = ~8 MHz */
RCC->CFGR &= (uint32_t)((uint32_t)~(RCC_CFGR_PLLSRC | RCC_CFGR_PLLXTPRE | RCC_CFGR_PLLMULL));
RCC->CFGR |= (uint32_t)(RCC_CFGR_PLLSRC_HSI_Div2 | RCC_CFGR_PLLXTPRE_PREDIV1 | RCC_CFGR_PLLMULL2);
遇到的问题是:程序进入到while(1)时间很长,约2秒。调试发现这要系统滴答时钟有关系,请问这是在哪里出的问题??
int main(void)
{
unsigned int uiStatus;
uint32_t SystemCoreClock_1 = 8000000;
// uint8_t i;
SysTick_Config(SystemCoreClock_1 / 1000); //1ms
/* System Config */
Sys_CLK_Config();
/* MSR Init */
MSR_vInit();
。。。。。。(此处省略)
while(1)
{
主运行程序;
}
}
一周热门 更多>