while(RCC_GetFlagStatus(RCC_FLAG_PLLRDY) == RESET){}卡死

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

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
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

李工电子说

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值