首先,应该清楚RCC是什么?用来干嘛的?
RCC(复位和时钟控制 &Reset Clock Controller),用来管理MCU的时钟系统;
STM32的RCC和RTC有什么联系?
RCC是STM32的时钟控制器,可开启或关闭各总线的时钟,在使用各外设功能必须先开启其对应的时钟,没有这个时钟内部的各器件就不能正常运行。
而RTC是STM32内部集成的一个简单的时钟(计时用),如果不用就关闭,用的话先要通过RCC配置其时钟源,可看作是一个外设器件。
其次,要知道STM32的MCU系统初始化之后,才运行我们的main函数,那么,系统初始化做了什么事情,可以查看每款MCU相应的启动文件(例如startup_stm32f10x_hd);
MCU上,C语言运行的基本条件是必须有一个完整的堆栈空间。
所以,这里配置了栈空间的长度(Stack_size)和堆空间的长度(Heap_size),以及栈指针(sp);
接着,这部分代码,说明:
MCU上电时刻,运行在8MHZ,经过systemInit里面的setsysclock,系统最高72MHz工作