STM32F4077未启动PLL未将PLLRDY位置1

问题描述

我尝试使用HSE源初始化时钟系统,但是PLL尚未准备好(未将PLLRDY位置1),在调试过程中,我发现了这种情况下的无限循环
while(!(RCC->CR & RCC_CR_PLLRDY)); 但是代码实际上是好的,我的队友编写了代码并进行了检查。以防万一在下面写下。

#include "stm32f4xx.h"                  // Device header
    
    void MCO_Init(void);
    
    int main(void)
{
    FLASH->ACR = FLASH_ACR_PRFTEN | FLASH_ACR_LATENCY;

    RCC->CR |= RCC_CR_HSEON; //????? (8)
    while(!(RCC->CR & RCC_CR_HSERDY));

    RCC->CFGR &= ~RCC_CFGR_PPRE2_Msk;
    RCC->CFGR |= 0b100 << RCC_CFGR_PPRE2_Pos; //APB2 AHB/2
    RCC->CFGR &= ~RCC_CFGR_PPRE1_Msk;
    RCC->CFGR |= 0b101 << RCC_CFGR_PPRE1_Pos; //APB1 AHB/4

    RCC->PLLCFGR |= RCC_PLLCFGR_PLLSRC; //HSE —- PLL
    RCC->PLLCFGR &= ~RCC_PLLCFGR_PLLM_Msk;
    RCC->PLLCFGR |= 8 << RCC_PLLCFGR_PLLM_Pos; // /8
    RCC->PLLCFGR &= ~RCC_PLLCFGR_PLLN_Msk;
    RCC->PLLCFGR |= 336 << RCC_PLLCFGR_PLLN_Pos;// *336
    RCC->PLLCFGR &= ~RCC_PLLCFGR_PLLQ_Msk;
    RCC->PLLCFGR |= 2 << RCC_PLLCFGR_PLLQ_Pos; // /2 PLL = 168

    RCC->CR |= RCC_CR_PLLON;
    while(!(RCC->CR & RCC_CR_PLLRDY));

    RCC->CFGR |= RCC_CFGR_SW_1;
    RCC->CFGR &= ~RCC_CFGR_SW_0; // PLL —- AHB
    while(!((RCC->CFGR & RCC_CFGR_SWS_1) && (RCC->CFGR |= RCC_CFGR_SW_0)));


    RCC->AHB1ENR |= RCC_AHB1ENR_GPIODEN;                            //Enable Clock for PORTD

    GPIOD->MODER |= GPIO_MODER_MODE15_0;                            //Outpet Mode
    GPIOD->OTYPER &=~ GPIO_OTYPER_OT15;                                 //Push-Pull
    GPIOD->OSPEEDR |= GPIO_OSPEEDR_OSPEED15_0;                        //Medium Speed
    
    GPIOD->MODER |= GPIO_MODER_MODE13_0;                              //Output Mode
    GPIOD->OTYPER &=~ GPIO_OTYPER_OT13;                               //Push-Pull
    GPIOD->OSPEEDR |= GPIO_OSPEEDR_OSPEED13_0;                      //Medium Speed
    while (1)
    {
            GPIOD->BSRR |= GPIO_BSRR_BS15;
            for (int i = 0; i < 2000000; i ++);
            GPIOD->BSRR |= GPIO_BSRR_BR15;

            GPIOD->BSRR |= GPIO_BSRR_BS13;
            for (int i = 0; i < 2000000; i ++);
            GPIOD->BSRR |= GPIO_BSRR_BR13;

    }
}

有人可以帮我找出解决方法吗?(((((

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...