| 
 
	回复【17楼】 heixinhai : 
---------------------------------
 
	u8 Sys_Clock_Set(u32 plln,u32 pllm,u32 pllp,u32 pllq) 
{  
 u16 retry=0; 
 u8 status=0; 
 RCC->CR|=1<<16;    //HSE 开启  
 while(((RCC->CR&(1<<17))==0)&&(retry<0X1FFF))retry++;//等待HSE RDY 
 if(retry==0X1FFF)status=1; //HSE无法就绪 
 else    
 { 
  RCC->APB1ENR|=1<<28; //电源接口时钟使能 
   WR->CR|=3<<14;   //高性能模式,时钟可到168Mhz 
  RCC->CFGR|=(0x00000000)|(0x00008000)|(0x00001400);  
  RCC->CR&=~(1<<24); //关闭主PLL 
  RCC-> LLCFGR=pllm|(plln<<6)|(((pllp>>1)-1)<<16)|(pllq<<24)|(1<<22);//配置主PLL,PLL时钟源来自HSE 
  RCC->CR|=1<<24;   //打开主PLL 
  while((RCC->CR&(1<<25))==0);//等待PLL准备好 
 
	  PWR->CR |= 0X00010000; 
 
	  while((PWR->CSR & 0x00010000) == 0); 
 
	  PWR->CR |= 0x00020000; 
 
	  while((PWR->CSR & 0x00020000) == 0); 
  FLASH->ACR|=1<<8;  //指令预取使能. 
  FLASH->ACR|=1<<9;  //指令cache使能. 
  FLASH->ACR|=1<<10;  //数据cache使能. 
  FLASH->ACR|=5<<0;  //5个CPU等待周期.  
  RCC->CFGR&=~(3<<0);  //清零 
  RCC->CFGR|=2<<0;  //选择主PLL作为系统时钟   
  while((RCC->CFGR&(3<<2))!=(2<<2));//等待主PLL作为系统时钟成功.  
 }  
 return status; 
} 
 
	仔细对比了下,429的初始化确实和407不一样,建议你还是用库来初始化,我修改了下,你试试吧。函数参数还是我给你的。另外,板子应该有例程吧,你修改下例程看看,原子的是直接操作寄存器的,没研究过寄存器的话直接套用肯定是不行的,尤其是系统频率这块。
  |