stm32启动的时候默认的是哪个时钟,是RC还是外部晶体?何以更改默认时钟么?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了stm32启动的时候默认的是哪个时钟,是RC还是外部晶体?何以更改默认时钟么?相关的知识,希望对你有一定的参考价值。

默认是内部8M时钟(不会自动切换到外部时钟),不可以更改默认时钟,但可以在初始化时通过修改时钟系列的寄存器来选择外部时钟或者PLL倍频的时钟,具体请参考相关手册。 参考技术A STM32启动时默认为内部RC震荡
所以在使用的时候,首先要对时钟进行初始化
等待外部晶振稳定后
然后才对外部晶振进行分频或者倍频
最后才是对APB总线时钟及模块时钟进行配置。
参考技术B 好像记得启动的时候先是内部的时钟,假如设置了外部时钟,那么,只有当外部时钟稳定后,内核才会将主时钟源切换到外部时钟

stm32面试的知识点

  STM32是一种功能比较强大的32位单片机,广泛应用于各种嵌入式设备中,由于它的普及性及丰富的资源,受到广大嵌入式开发者的喜欢,但要想学好用好STM32也并非易事,毕竟,相比8位、16位产品,STM32要复杂得多。

  STM32的时钟

  其中,高速时钟(HSE和HSI)提供给芯片主体的主时钟.低速时钟(LSE和LSI)只是提供给芯片中的RTC(实时时钟)及独立看门狗使用,图中可以看出高速时钟也可以提供给RTC。内部时钟是在芯片内部RC振荡器产生的,起振较快,所以时钟在芯片刚上电的时候,默认使用内部高速时钟。而外部时钟信号是由外部的晶振输入的,在精度和稳定性上都有很大优势,所以上电之后我们再通过软件配置,转而采用外部时钟信号.

  高速外部时钟(HSE):以外部晶振作时钟源,晶振频率可取范围为4~16MHz,我们一般采用8MHz的晶振。

  高速内部时钟(HSI): 由内部RC振荡器产生,频率为8MHz,但不稳定。

  低速外部时钟(LSE):以外部晶振作时钟源,主要提供给实时时钟模块,所以一般采用32.768KHz。

  低速内部时钟(LSI):由内部RC振荡器产生,也主要提供给实时时钟模块,频率大约为40KHz。

  OSC_OUT和OSC_IN开始,这两个引脚分别接到外部晶振8MHz,第一个分频器PLLXTPRE,遇到开关PLLSRC(PLL entry clock source),我们可以选择其输出,输出为外部高速时钟(HSE)或是内部高速时钟(HSI)。这里选择输出为HSE,接着遇到锁相环PLL,具有倍频作用,在这里我们可以输入倍频因子PLLMUL,要是想超频,就得在这个寄存器上做手脚啦。经过PLL的时钟称为PLLCLK。倍频因子我们设定为9倍频,也就是说,经过PLL之后,我们的时钟从原来8MHz的 HSE变为72MHz的PLLCLK。紧接着又遇到了一个开关SW,经过这个开关之后就是STM32的系统时钟(SYSCLK)了。通过这个开关,可以切换SYSCLK的时钟源,可以选择为HSI、PLLCLK、HSE。我们选择为PLLCLK时钟,所以SYSCLK就为72MHz了。PLLCLK在输入
参考技术A 认为这个面试效果应该分不清当成那个还分版本的。 参考技术B STM32是一种功能比较强大的32位单片机,广泛应用于各种嵌入式设备中,由于它的普及性及丰富的资源,受到广大嵌入式开发者的喜欢, 参考技术C 十点的话,你要有一个比较专业的知识,然后这个是比较重要的一点 参考技术D 他的知识面的话还是比较广阔的,尤其是在面试的时候,可以看得出

以上是关于stm32启动的时候默认的是哪个时钟,是RC还是外部晶体?何以更改默认时钟么?的主要内容,如果未能解决你的问题,请参考以下文章

STM32--RCC时钟配置寄存器

STM32的APB时钟预分频数到底是怎么确定的?AHB的频率到底是72MH还是啥是有啥决定的?

stm32面试的知识点

STM32时钟树

stm32时钟树解析

stm32之入门知识