Stm32 锁相环时钟配置

Stm32 锁相环时钟配置,stm32,stm32f4discovery,stm32ldiscovery,stm32l152,Stm32,Stm32f4discovery,Stm32ldiscovery,Stm32l152,我使用的是STM32L152RB板,我试图将系统时钟配置为使用PLL时钟,但RCC_标志_PLLRDY标志正在设置中,因此程序在循环时被卡住。请让我知道我做错了什么 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_

我使用的是STM32L152RB板,我试图将系统时钟配置为使用PLL时钟,但RCC_标志_PLLRDY标志正在设置中,因此程序在循环时被卡住。请让我知道我做错了什么

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();

请参阅参考手册中的“CPU时钟频率与闪存读取时间之间的关系”。它说明了对于高于16MHz的CPU速度,应将闪存延迟设置为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

老问题,但我有完全相同的问题作为op。我启动我的系统与hsi作为系统时钟sourcr(8mhz)和尝试改变时钟源pll。和op一样,我的pll就绪标志从未设置。在将pll设置为时钟源之前,正在检查pll就绪标志的状态,您能否解释更改闪存延迟将如何解决这一问题。此时,系统时钟仍然是从HSI开始的。当您尝试切换到更高频率而不调谐WaitState时,pll无法锁定。我玩过我的L151,尝试在没有设置一个等待状态的情况下切换到PLL:运气不好,大部分PLLRDY位没有设置,有时(很少)会出现硬故障。谢谢。我不知道为什么他们没有在RCC部分提供这方面的参考。花了很多时间想知道为什么我的STM32F41RET6工作在42Mhz,而不是84。将等待状态增加到4,LED闪烁程序将一直工作到100MHz。我可以确认这需要在启用PLL之前完成,否则将永远不会设置就绪位(PLL将永远不会打开;如果在准备就绪之前进行轮询,这将导致挂起)