[MM32软件] 仿真时停在while(!(RCC->CR&RCC_CR_PLLRDY));//等待PLL 这一步

[复制链接]
 楼主| wellback 发表于 2019-8-19 13:30 | 显示全部楼层 |阅读模式
在MM32 MiniBoard板上运行Demo程序时始终停在:
while(!(RCC->CR&RCC_CR_PLLRDY));//等待PLL锁定
这一步,有哪位大侠遇到过类似的情况吗?改怎样解决?
无论设置外部晶振还是内部HSI都一样。


void SetSysClockTo48_HSI()
{
    unsigned char temp=0;   
   
    RCC->CR|=RCC_CR_HSION;  
    while(!(RCC->CR&RCC_CR_HSIRDY));
    RCC->CFGR=RCC_CFGR_PPRE1_2; //APB1=DIV2;APB2=DIV1;AHB=DIV1;
   
    RCC->CFGR&=~RCC_CFGR_PLLSRC;          //PLLSRC ON
   
    RCC->CR &=~(RCC_CR_PLLON);                //清PLL//        RCC->CR &=~(7<<20);                //清PLL
   
    RCC->CR &=~(0x1f<<26);       
    RCC->CR|=(4 - 1) << 26;   //设置PLL值 2~16
   
    FLASH->ACR=FLASH_ACR_LATENCY_1|FLASH_ACR_PRFTBE;          //FLASH 1个延时周期
   
    RCC->CR|=RCC_CR_PLLON;  //PLLON
    while(!(RCC->CR&RCC_CR_PLLRDY));//等待PLL锁定     ???停在这里不动
    RCC->CFGR&=~RCC_CFGR_SW;
    RCC->CFGR|=RCC_CFGR_SW_PLL;//PLL作为系统时钟         
    while(temp!=0x02)     //等待PLL作为系统时钟设置成功
    {   
        temp=RCC->CFGR>>2;
        temp&=0x03;
    }
}       

liu19931020 发表于 2019-8-19 15:45 | 显示全部楼层
Debugger 用的是 Simulator?
huangzushuimd 发表于 2019-8-24 16:36 来自手机 | 显示全部楼层
部分芯片是不带PLL功能的。
jumpio 发表于 2019-8-26 16:51 | 显示全部楼层
问题解决了吗?我也遇到这个情况.我用的是Mm32_LQFP48_CoreBoard V1.0 2017-6-30的板子,这板子的芯片不带PLL功能吗?
drer 发表于 2019-9-9 14:45 | 显示全部楼层
时钟用的什么
gwsan 发表于 2019-9-9 14:47 | 显示全部楼层
时钟起振了吗
您需要登录后才可以回帖 登录 | 注册

本版积分规则

7

主题

14

帖子

1

粉丝
快速回复 返回顶部 返回列表