先来看看stm32f103的时钟树吧。
这里牵涉到几个适中的概念。
1、HSE时钟
他是外部高速时钟信号。可以使用晶体或是陶瓷谐振器产生,也可以使用外部时钟。
晶体可以通过RCC_CR中的HSEON位来启动和关闭。同时,RCC_CR中的HSERDY位用来指示高速外部振荡器是否稳定。在启动时,直到这一位被硬件置1,时钟才被释放出来。如果在时钟中断寄存器RCC_CIR中允许产生中断,将会产生响应的中断。
2、HSI时钟
HSI时钟信号由内部8Mhz的rc振荡器产生, 可直接作为系统时钟或是在2分频后作为pll输入。但是他的精度比较差。
3、PLL
内部PLL可以用来倍频HSI的输出时钟或是HSE。PLL的设置必须在其被激活前完成, 一旦PLL被激活,这些参数就不能被改动。
4、LSE时钟
LSE晶体是一个32.768KHz的低速外部晶体或是陶瓷谐振器。它为实时时钟或者其他定时功能提供一个低功耗且精确的时钟源。
LSE晶体可以通过RCC_BDCR里的LSEON位启动和关闭。
5、LSI时钟
LSI RC但当一个低功耗时钟源的脚色,他可以在停机和待机模式下保持运行,为独立看门狗和自动唤醒单元提供时钟。
6、系统时钟SYSCLK选择
系统复位后,HSI被选为系统时钟