历史上的今天
返回首页

历史上的今天

今天是:2025年08月17日(星期日)

2018年08月17日 | 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);   //

}

}


推荐阅读

史海拾趣

Everbuild公司的发展小趣事

Everbuild深知人才是企业发展的核心。因此,公司注重人才培养和团队建设。公司建立了完善的培训体系,为员工提供各种技能培训和职业发展机会。同时,Everbuild还鼓励员工参与创新项目和技术研发,激发员工的创造力和工作热情。这些努力使Everbuild拥有一支高素质、专业化的团队,为公司的持续发展提供了强有力的保障。

得倍(DBIC)公司的发展小趣事

倍(DBIC)公司自创立之初,就致力于在电子行业中进行技术创新。公司投入大量资源进行研发,成功推出了一系列具有革命性的产品,如高效能芯片和智能传感器。这些产品不仅提高了生产效率,还满足了市场对智能化、高效能电子产品的需求。随着技术的不断进步,倍(DBIC)公司逐渐在行业中树立了技术领先的形象,吸引了众多合作伙伴和客户。

Chemtronics公司的发展小趣事

自1958年成立以来,Chemtronics公司在电子维护和维修领域不断进取。最初,公司专注于生产一系列清洁剂产品,以其高效清洁能力获得了市场的认可。随着时间的推移,Chemtronics逐渐将产品线扩展至超纯溶剂、净化室级别擦拭棒和擦拭布等领域,进而又扩展到电子电气和电信工业的精密返工和维修工具。这一转变不仅体现了公司对市场需求的敏锐洞察,也彰显了其不断创新的精神。

Gould Fiber Optics公司的发展小趣事
可能是滤波电容老化、稳压电路故障或负载变化大。
Electrolube公司的发展小趣事

在电子行业的激烈竞争中,Electrolube公司始终坚持以客户需求为导向,不断创新和拓展产品线。除了UVCL涂层外,公司还推出了一系列树脂、涂料和热管理解决方案的产品组合,为EV电池提供全面保护。

这些产品不仅具有优异的性能表现,而且能够满足不同客户的需求。例如,某些产品具有优异的耐高温性能,适用于高温环境下的电子设备;而另一些产品则具有出色的耐化学腐蚀性能,能够在恶劣的工作环境中保持稳定的性能。

Electrolube公司通过不断的技术创新和产品优化,成功拓展了市场份额,并在电子行业中树立了良好的品牌形象。同时,公司还积极与各大汽车制造商合作,共同推动电动汽车产业的发展。

GE Solid State公司的发展小趣事
由于声音信号的模糊性和主观性,可能无法精确反映曝光量的细微变化。

问答坊 | AI 解惑

世界最薄玻璃键盘

这款键盘采用玻璃材质,是由Kong Fanwen设计而成的这款键盘则是采用摄影的方式,将手指移动按下的轨迹纪录下来,以达到输出信号的目的,可谓新奇。这款键盘正在概念阶段,但无论从外观来看还是从使用性能来看,都不失为一款上佳的桌面操作极品,该 ...…

查看全部问答>

wince下dll路径问题

编写了一个DLL,多个程序需要调用,将dll放在哪个路径下,才可以在被调用时系统可以将其装载到系统中,不需要知道dll路径。 1.包含EXE文件的目录, 2.进程的当前工作目录, 3.Windows系统目录, 4.Windows目录, 5.列在Path环境变量中 ...…

查看全部问答>

北京一外企急聘硬件工程师

北京知名外企招聘硬件工程师,待遇优厚,具体要求如下: 1.B.S degree, or higher, in computer science, networking, and telecommunication discipline. 2.A minimum of 3 years experience of designing hardware, strong technical skills an ...…

查看全部问答>

请教I2C slave设备无应答现象

    在海思K3的方案上,加了MMA7455这款g-sensor,挂在I2C上,但是发现通讯不上,后来用示波器量波形,发现该从设备没有应答信号,核对过从设备地址是对的,器件电压也量过,没什么问题,请大家给提提意见,有没有什么好的解决方案?非常 ...…

查看全部问答>

有办法单独改变一个窗口标题的字体大小吗?

如题。在Wince中,想单独改变窗口标题(Caption)的字体大小,能做到吗?谢谢。我研究了半天,没找到方法。…

查看全部问答>

问一下关于wm5.0SDK的axsample例子的问题

我将axsample在WM5模拟器上可以显示,为何连上手机却显示不了控件(我已经按照说明将证书加到了手机上)?请大虾们帮帮忙。…

查看全部问答>

帮帮忙做做习题

二 8086/8088的结构 1. 执行下面的运算后,FLAGS中各状态标志是何值?为什么?    5439H+456AH    A195H-69CAH 2. 试用图示说明执行以下堆栈操作后,堆栈区及SP、AX、BX等寄存器的内容各是什么值?       ...…

查看全部问答>

请教S7-300打开问题

请教个问题,小弟的公司有一台设备A是西门子300的,安装s7后打不开,后来按照厂家的意思安装了s7的升级包(就是sp4),然后就可以看到。第二天因需要小弟装了s7-200的软件并用了一个上午,然后再打开300的时候设备A就看不到了,只能看到硬件组态。 ...…

查看全部问答>

我是新手帮帮忙

本人硕士毕业设计是嵌入式的硬件设计 先要做出来PCB  我是跨专业来的  对这些一知半解的   刚刚进来 不知道从哪里开始下手 望大家指点迷津。。。不甚感谢啦。。。…

查看全部问答>

我想用DSP 2808 的内部FLASH 自启动 ,但是加入SPI 初始化指令之后就不能运行。

就是如果不加这条指令:SpibRegs.SPICTL.all =0x0006 DSP就可以上电时直接从内部FLASH 运行 (不接电脑)。 加了这条指令就貌似停在这了。 用计算机JTAG接口仿真时,加不加这条语句都正常。还有,SPI时钟信号输出有两个引脚,怎样选择?是不是在初 ...…

查看全部问答>