STM32 时钟
- 为什么不直接用内部时钟?
因为内部时钟不准确,用于备用
- MCO是什么?
用于向外界输出芯片内的一些时钟,便于调试或向别的芯片提供时钟
- CSS是什么?
CSS在外部HSE时钟异常时,会自动切换到内部时钟。可用软件控制CSS是否工作
系统时钟初始化:
使用V3.5的固件库时,在main函数执行之前会先执行SystemInit(这一点在startup_stm32f10x_md.s中被设置)(SystemInit函数在system_stm32f10x.c中),SystemInit根据system_stm32f10x.c内预定义的系统时钟(默认SYSCLK_FREQ_72MHz 72M)和 stm32f10x.h内预定义的HSE_VALUE(默认8M)来设置各种时钟(最终默认结果:使用外部8M,系统时钟和AHB 72M,PCLK1即APB1 36M,PCLK2即APB2 72M)),SystemInit会去调用SetSysClock,SetSysClock回去调用SetSysClockTo72等,SetSysClockTo72会设置AHB,APB1,APB2等。