改动内部系统时钟出问题,求助?
为了降低功耗,我把内部系统时钟改为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)
{
主运行程序;
}
}
RE:改动内部系统时钟出问题,求助?
楼主直接使用hsi好了,不要用pll不就可以了吗:DRE:改动内部系统时钟出问题,求助?
建议改用 PLL_SOURCE_HSI 吧RE:改动内部系统时钟出问题,求助?
给你提供两种方法参考:1、利用ST官网给出的EXCEL表格式的时钟配置工具进行修改。优点:
可以实现任意时钟修改和内部PLL设置,无需关心system_stm32fXXX.C
2、直接修改system_stm32fXXX.C时钟配置。前提是弄清楚时钟架构。
你想要8MHZ系统时钟,就采用HSE,PLL=1,就达到目的了。
RE:改动内部系统时钟出问题,求助?
楼上的正解啊。。。RE:改动内部系统时钟出问题,求助?
系统时钟需要修改system_stm32fXXX.C配置文件,不能简单的SysTick_Config的入参
页:
[1]