PLL时钟配置

时间:2015-07-14 13:06:12

标签: stm32 stm32f4discovery stm32ldiscovery stm32l152

我正在使用STM32L152RB板,我正在尝试配置系统时钟以使用PLL时钟,但RCC_FLAG_PLLRDY标志已设置,因此程序在while循环中停留。请让我做错了

EnableHSI();
RCC_PLLConfig(RCC_PLLSource_HSI,RCC_PLLMul_3,RCC_PLLDiv_2);
RCC_PLLCmd(ENABLE);
while(RCC_GetFlagStatus(RCC_FLAG_PLLRDY) == RESET);
RCC_SYSCLKConfig( RCC_SYSCLKSource_PLLCLK);
t=GetSystemClockSource();

1 个答案:

答案 0 :(得分:2)

请参阅“CPU时钟频率与闪存读取时间之间的关系”参考手册。它说如果CPU速度高于16MHz,你应该为1WS设置闪存延迟(等待状态)。 在将PLL设置为时钟源之前,请执行以下操作:

FLASH->ACR  = FLASH_ACR_ACC64;   // 64-bit access
FLASH->ACR |= FLASH_ACR_LATENCY; // one wait state
FLASH->ACR |= FLASH_ACR_PRFTEN;  // prefetch enable