STM32F030K6外部晶振不工作,查不出原因

2019-07-14 16:58发布

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时钟
                           
}
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
18条回答
TOPCB
1楼-- · 2019-07-15 20:19
xulay:这句是while(!(RCC->CR &=0X00020000));  是对的,判断HSE 振荡器就绪.我改成原子的while(!(RCC->CR>>17));结过还是一样
zsl1220548
2楼-- · 2019-07-15 21:36
晶振没波形是硬件问题  你去检查晶振电路 电容什么的
TOPCB
3楼-- · 2019-07-16 03:17
外部晶振是8MHZ,那2个起振电容是22PF
TOPCB
4楼-- · 2019-07-16 05:49
 精彩回答 2  元偷偷看……
wewxvqer
5楼-- · 2019-07-16 07:28
为何非要用寄存器,改库函数试试,不行就换晶振,以前焊电路板时就把晶振烫坏过一次
60user54
6楼-- · 2019-07-16 11:04
TOPCB 发表于 2018-10-12 17:47
多谢3位的回答,我是操作寄存器的。现逻辑分析仪测出OSC-IN和OSC-OUT没波形,电压为零

仔细阅读一下时钟部份的资料,看看有没有什么关键配置没有打开,同时更换晶振和起振电容(一般除了容值相差很大的情况才会不起振),检测电路连接

一周热门 更多>