STM32F030K6外部晶振不工作,查不出原因
void Stm32_Clock_Init(uint8_t PLL){
uint8_t temp=0;
MYRCC_DeInit(); 复位并配置向量表
RCC->CR|=0x00010000; 选用外部晶振
while(!(RCC->CR &=0X00020000)); 等待外部时钟就绪
RCC->CFGR=0X00000400;
PLL-=2;
RCC->CFGR|=PLL<<18; 倍频到48MHZ
RCC->CFGR|=1<<16; PLLSRC ON
FLASH->ACR|=0x32;
RCC->CR|=0x01000000; PLLON(Bit24)
while(!(RCC->CR &=0X02000000)); 等待 PLLPLLPLL锁
RCC->CFGR|=0x00000002; PLL作为系统时钟
while(temp!=0x02) 等待 PLLPLLPLL作为系统时钟设置成功
{
temp=RCC->CFGR>>2;
temp&=0x03;
}
RCC->APB2ENR|=1<<0; 使能SYSCFG时钟
}
死在这里了?:
while(!(RCC->CR &=0X00020000)); 会不会是因为和板子的原因啊,你换块板子测试一下呢 死在哪里,把问题描述清楚,不然别人怎么回答你的问题。 多谢3位的回答,我是操作寄存器的。现逻辑分析仪测出OSC-IN和OSC-OUT没波形,电压为零 烧写程序成功,用J-LINK仿真器设置断点,连第1条指令不执行,这进一步说明晶振没起振了
我初学STM32,看700多页参考手册头都大了. xulay:这句是while(!(RCC->CR &=0X00020000));是对的,判断HSE 振荡器就绪.我改成原子的while(!(RCC->CR>>17));结过还是一样 晶振没波形是硬件问题你去检查晶振电路 电容什么的 外部晶振是8MHZ,那2个起振电容是22PF