标签:优先 电源 isa alt inf ble 一个 系统时钟初始化 reset
一、sys文件夹包含五个文件,其中,我们需要重点了解两个,sys.c和sys.h。
二、sys.h里面定义了STM32F1的I/O口输入读取宏定义和输出宏定义。
sys.c里面定义了很多与STM32F1底层硬件相关的设置函数,包括系统时钟的配置、I/O配置、中断的配置等。
三、sys.h 中几个其他的全局宏定义:
//0,不支持 OS; 1,支持 OS #define SYSTEM_SUPPORT_OS 0 //定义系统文件夹是否支持 OS //Ex_NVIC_Config 专用定义 #define GPIO_A 0 #define GPIO_B 1 #define GPIO_C 2 #define GPIO_D 3 #define GPIO_E 4 #define GPIO_F 5 #define GPIO_G 6 #define FTIR 1 //下降沿触发 #define RTIR 2 //上升沿触发 //JTAG 模式设置定义 #define JTAG_SWD_DISABLE 0X02 #define SWD_ENABLE 0X01 #define JTAG_SWD_ENABLE 0X00
SYSTEM_SUPPORT_OS,这个宏定义用来定义 SYSTEM 文件夹是否支持操作系统( OS),
如果在 OS 下面使用 SYSTEM 文件夹,那么设置这个值为 1 即可,否则设置为 0(默认)。
四、Stm32_Clock_Init函数
★ 1、STM32的时钟树图
①PLLMUL
PLLMUL用于设置STM32的PLLCLK,STM32支持2~16倍频设置。
常用的是8MHz外部晶振+9倍频设置,刚好得到72MHz的PLLCLK。
②SW
SW是STM32的SYSCLK切换开关。
从图中可以看出,SYSCLK的来源可以是3个:HSI、PLLCLK和HSE,一般选择PLLCLK作为SYSCLK,最大为72MHz
③SYSTICK(系统滴答时钟)
从图中可以看出,来源是AHB分频后再8分频,一般设置AHB不分频,所以SYSTICK的频率就等于SYSCK/8
④PCLK1
PCLK1是APB1总线上外设的时钟,最大为36MHz
⑤PCLK2