这个图说明了STM32的时钟走向,从图的左边开始,从时钟源一步步分配到外设时钟。
从时钟频率来说,又分为高速时钟和低速时钟,高速时钟是提供给芯片主体的主时钟,而低速时钟只是提供给芯片中的RTC(实时时钟)及独立看门狗使用。
从芯片角度来说,时钟源分为内部时钟与外部时钟源,内部时钟是由芯片内部RC振荡器产生的,起振较快,所以时钟在芯片刚上电的时候,默认使用内部高速时钟。而外部时钟信号是由外部晶振输入的,在精度和稳定性上都有很大优势,所以在上电之后我们再通过软件配置,转而采用外部时钟信号。
所以,STM32有以下4个时钟源:
1)高速外部时钟(HSE):以外部晶振作为时钟源,晶振频率可取范围为4~16MHz,我们一般采用8MHz的晶振。
2)高速内部时钟(HSI):由内部RC振荡器产生,频率为8MHz,但不稳定。
3)低速外部时钟(LSE):以外部晶振作为时钟源,主要提供给实时时钟模块,所以一般采用32.768KHz。
4)低速内部时钟(LSI):由内部RC振荡器产生,也主要提供给实时时钟模块,频率大约为40KHz。
最后再附上STM32系统结构:
注:图片内容来自《STM32库开发实战指南》