gugang 发表于 2014-4-15 11:19:28

改动内部系统时钟出问题,求助?

 为了降低功耗,我把内部系统时钟改为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)
{
  主运行程序;
}

}

story_xjj 发表于 2014-4-17 08:14:29

RE:改动内部系统时钟出问题,求助?

楼主直接使用hsi好了,不要用pll不就可以了吗:D

Eagleson 发表于 2014-4-18 09:39:41

RE:改动内部系统时钟出问题,求助?

建议改用 PLL_SOURCE_HSI 吧

fengye5340 发表于 2014-4-18 22:32:26

RE:改动内部系统时钟出问题,求助?

给你提供两种方法参考:
1、利用ST官网给出的EXCEL表格式的时钟配置工具进行修改。优点:
可以实现任意时钟修改和内部PLL设置,无需关心system_stm32fXXX.C
2、直接修改system_stm32fXXX.C时钟配置。前提是弄清楚时钟架构。
你想要8MHZ系统时钟,就采用HSE,PLL=1,就达到目的了。

feiante-155820 发表于 2014-4-20 13:04:48

RE:改动内部系统时钟出问题,求助?

楼上的正解啊。。。

wkuang 发表于 2014-4-22 23:34:19

RE:改动内部系统时钟出问题,求助?

系统时钟需要修改system_stm32fXXX.C配置文件,
不能简单的SysTick_Config的入参
页: [1]
查看完整版本: 改动内部系统时钟出问题,求助?