while(RCC_GetFlagStatus(RCC_FLAG_PLLRDY) == RESET){}卡死
while(RCC_GetFlagStatus(RCC_FLAG_PLLRDY) != SET){}卡死
//
RCC_PLLCmd(ENABLE);
RCC_PLLConfig(RCC_PLLSource_PREDIV1,RCC_CFGR_PLLMULL6);
while(RCC_GetFlagStatus(RCC_FLAG_PLLRDY) == RESET){}
如上,问题出在哪里呢?
问题出在PLL使能先后问题。
注意,PLL参数配置时,只能是disable状态,否则无效。所以,应该先配置,再使能,代码如下
RCC_PLLConfig(RCC_PLLSource_PREDIV1,RCC_CFGR_PLLMULL6);
RCC_PLLCmd(ENABLE);
while(RCC_GetFlagStatus(RCC_FLAG_PLLRDY) == RESET){}
下面是标准库的源代码,请看第二行的注释:This function must be used only when the PLL is disabled.
/**
* @brief Configures the PLL clock source and multiplication factor.
* @note This function must be used only when the PLL is disabled.
*
* @param RCC_PLLSource: specifies the PLL entry clock source.
* This parameter can be one of the following values:
* @arg RCC_PLLSource_HSI_Div

本文详细解析了STM32微控制器中PLL(锁相环)的正确配置方法。强调了PLL参数配置必须在禁用状态下进行,并给出了正确的配置顺序示例。同时,通过源代码注释进一步解释了这一要求。
最低0.47元/天 解锁文章
887

被折叠的 条评论
为什么被折叠?



