启动模式,时钟在单片机中算是一个比较重要的概念吧。
首先,关于启动模式,首先要清楚地是,它研究的是,stm32上电复位后,程序从何处开始执行的问题。
那么,在stm32中有几种启动模式呢?答案是三种。一,用户闪存存储器区;二,系统存储器区;三,内嵌SRAM存储器区。
来讲第一种,用户闪存存储器区。它是设计用来存放用户写的代码的,程序员写的代码就被烧录到这里了。正常状态下,就要把stm32设置为从此处启动。第二种,系统存储器区。这算是一种非常规的启动模式吧。 它是用来实现ISP功能的。所谓的ISP,就是 In-System Programming(在系统烧录,或者是在系统编程)。这里的系统不是指操作系统,而是指,单片机固化在PCB板上,这么一个完整的设备系统。ISP不需要烧录器,也不需要把单片机从板子上卸下来。一般ISP通过串口把bin/hex文件直接ISP到单片机内部flash中去了。第三种,内嵌SRAM区,这也算是一种非常规的启动模式,该模式可以用来实现调试器调试功能的,不过不常用。
那么什么是时钟源呢?顾名思义,时钟源就是,时钟产生的源头。根据特定的需要,分为:纯内部,内外部,纯外部。纯内部的时钟,将所有的器件都封装到了CPU中,这就导致了,纯内部的时钟源不够精准。内外部的时钟源是,外部晶振与内部震荡电路协同工作,此种时钟源是最为常用的,也是最为可靠的。纯外部的时钟源,是直接在外部产生一个时钟,不需要额外的晶振什么的,此种方式需要额外的空间以及外设,成本相对较高。
stm32主频能够达到72MHZ,但是并不意味着它的内部能够直接产生72NHZ的频率,而是通过倍频做到的,而这其中的关键就是PLL(锁相环电路),它的作用就是,进行倍频。
stm32设有两套独立的时钟:HSx, LSx。如果要仔细划分的话,可以分为4套:纯内部,HSI, LSI;内外部,HSE,LSE。纯外部的时钟为:OSC_OUT,OSC32_IN