为什么MP3播放器的程序运行到while(!(RCC->CR>>17)); 就卡住了

2019-08-19 16:36发布

在我自己做的板上运行这个MP3播放器的程序时总是卡在系统时钟设置中的while(!(RCC->CR>>17));不知道是什么原因,硬件原因??(就是简单的最小系统板)还是软件???,求解答。。。
................                                                         
#include "vs10XX.h"                                                                 
#include "mp3player.h"
 int main(void)
{  
u8 key,fontok=0; 
  Stm32_Clock_Init(9); //系统时钟初始化
delay_init(72); 
uart_init(72,9600);  
init_lcd ();   
...................
.................
void Stm32_Clock_Init(u8 PLL)
{
unsigned char temp=0;   
MYRCC_DeInit(); 
  RCC->CR|=0x00010000;  
while(!(RCC->CR>>17));//卡在这里
RCC->CFGR=0X00000400; //APB1=DIV2;APB2=DIV1;AHB=DIV1;
PLL-=2;
RCC->CFGR|=PLL<<18;  
RCC->CFGR|=1<<16; 
FLASH->ACR|=0x32;   

RCC->CR|=0x01000000;  
while(!(RCC->CR>>25));
RCC->CFGR|=0x00000002;
while(temp!=0x02)   
{   
temp=RCC->CFGR>>2;
temp&=0x03;
}    
}     

友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
25条回答
正点原子
1楼-- · 2019-08-19 20:29
估计是8M晶振有问题
检查晶振的电容是不是被你焊接成104了。。。。
lycreturn
2楼-- · 2019-08-20 01:21
 精彩回答 2  元偷偷看……
一路stm32
3楼-- · 2019-08-20 06:33
回复【2楼】lycreturn:
---------------------------------但是我烧其他程序的时候都可以正常啊
Theone
4楼-- · 2019-08-20 08:22
换一种判断方式吧  cr&((u32)1<<17)
一路stm32
5楼-- · 2019-08-20 10:02
回复【4楼】Theone:
---------------------------------
你说这和外部哪块晶振有关,8M的还是32K的?
一路stm32
6楼-- · 2019-08-20 13:25
回复【6楼】正点原子:
---------------------------------是10p的啊

一周热门 更多>