单片机
返回首页

STM32系统时钟设置,采用外部有源晶振相关配置问题

2018-08-17 来源:eefocus

在调试STM32系统时钟设置时遇到一个问题:TIM2定时1Ms,TIM2中断服务函数time++,time=100时LED状态改变。程序运行后发现LED不是按照0.1S的时间闪烁,闪烁的很慢。

查找程序发现在系统时钟初始化时,RCC_HSEConfig(RCC_HSE_Bypass); 语句配置不对,此语句解释为HSE晶振被外部时钟旁路。指将芯片内部的用于外部晶体起振和功率驱动等的部分电路和XTAL_OUT引脚断开,这时使用的外部时钟是有源时钟或者其他STM32提供的CCO输出等时钟信号,直接单线从XTAL_IN输入,这样即使外部有晶体也震荡不起来了。

因为之前用的是有源晶振,接法如下图1:HSE配置如下:RCC_HSEConfig(RCC_HSE_Bypass); 

图1



无源晶振,接法如下图1:HSE配置如下:RCC_HSEConfig(RCC_HSE_ON); 

附:1 晶体与晶振的区别:


晶振是一个统称,晶振分为有源晶振和无源晶振。有源晶振又叫钟振,无源晶振又叫晶体。区别两者最简单的就是,是否需要对它单独供电,需要供电电压的,就是有源晶振,反之,无源晶振。还有一个外观上比较容易判断的就是,如果只有两个脚的,那一定是无源的晶振,但是如果是三个脚,四个脚的,可能是无源,也可能是有源,需要从上面提到的判断。

附:2 STM32系统时钟配置函数    

void Sys_Clk_Init(void)              //系统时间设置72M,使能DMA1,GPIOA,AFIO,ADC1

{

ErrorStatus HSEStartUpStatus;                            

RCC_DeInit();                                      

//  RCC_HSEConfig(RCC_HSE_Bypass);                  

RCC_HSEConfig(RCC_HSE_ON);

  HSEStartUpStatus = RCC_WaitForHSEStartUp();               

if(HSEStartUpStatus == SUCCESS) 

FLASH_PrefetchBufferCmd(FLASH_PrefetchBuffer_Enable); 

FLASH_SetLatency(FLASH_Latency_2);                    

RCC_HCLKConfig(RCC_SYSCLK_Div1);                      

RCC_PCLK2Config(RCC_HCLK_Div1);                    

RCC_PCLK1Config(RCC_HCLK_Div2);                     

RCC_PLLConfig(RCC_PLLSource_HSE_Div1, RCC_PLLMul_9); 

RCC_ADCCLKConfig(RCC_PCLK2_Div6);

RCC_PLLCmd(ENABLE);                                  

while(RCC_GetFlagStatus(RCC_FLAG_PLLRDY) == RESET)  

        {

        }

RCC_SYSCLKConfig(RCC_SYSCLKSource_PLLCLK);           

        while(RCC_GetSYSCLKSource() != 0x08)                 

        {

        }

RCC_AHBPeriphClockCmd(RCC_AHBPeriph_DMA1, ENABLE);

RCC_APB2PeriphClockCmd(  RCC_APB2Periph_ADC1 | RCC_APB2Periph_GPIOA , ENABLE);

RCC_APB2PeriphClockCmd( RCC_APB2Periph_AFIO | RCC_APB2Periph_GPIOB , ENABLE);

}

else

{

   while(1);   //

}

}


进入单片机查看更多内容>>
相关视频
  • RISC-V嵌入式系统开发

  • SOC系统级芯片设计实验

  • 云龙51单片机实训视频教程(王云,字幕版)

  • 2022 Digi-Key KOL 系列: 你见过1GHz主频的单片机吗?Teensy 4.1开发板介绍

  • TI 新一代 C2000™ 微控制器:全方位助力伺服及马达驱动应用

  • MSP430电容触摸技术 - 防水Demo演示

最新器件
精选电路图
  • CCD图像传感器在微光电视系统中的应用

  • 如何利用ESP8266制作一个简单的四轴飞行器

  • 离子检测器电路分析

  • 优化电路板布局的简单方法

  • 一个简单的立体声平衡指示器电路

  • 使用NE555和磁簧开关的橱柜照明电路

    相关电子头条文章