《STM时钟系统》PPT课件.ppt
主讲教师:xxx,ALIENTEK,例说STM32,例说STM32,2023/7/30,广州市星翼电子科技有限公司,1,ALIENTEK,第 3 讲 STM32时钟系统,3.1 时钟系统框图 3.2 时钟系统知识总结 3.3 Stm32_Clock_Init()函数讲解 3.4 Systick延时,例说STM32,2,2023/7/30,广州市星翼电子科技有限公司,ALIENTEK,3.1时钟系统框图,例说STM32,3,2023/7/30,广州市星翼电子科技有限公司,ALIENTEK,3.2 时钟系统知识总结,例说STM32,4,2023/7/30,广州市星翼电子科技有限公司,STM32 有5个时钟源:HSI、HSE、LSI、LSE、PLL、HSI是高速内部时钟,RC振荡器,频率为8MHz,精度不高。、HSE是高速外部时钟,可接石英/陶瓷谐振器,或者接外部时钟源,频率范围为4MHz16MHz。、LSI是低速内部时钟,RC振荡器,频率为40kHz,提供低功耗时钟、LSE是低速外部时钟,接频率为32.768kHz的石英晶体。、PLL为锁相环倍频输出,其时钟输入源可选择为HSI/2、HSE 或者HSE/2。倍频可选择为216倍,但是其输出频率最大不得 超过72MHz。,ALIENTEK,例说STM32,5,2023/7/30,广州市星翼电子科技有限公司,系统时钟SYSCLK可来源于三个时钟源:、HSI振荡器时钟、HSE振荡器时钟、PLL时钟MCO引脚输出 STM32可以选择一个时钟信号输出到MCO脚(PA8)上,可以 选择为PLL输出的2分频、HSI、HSE、或者系统时钟。任何一个外设在使用之前,必须首先使能其相应的时钟。,ALIENTEK,例说STM32,6,2023/7/30,广州市星翼电子科技有限公司,几个重要的时钟:SYSCLK(系统时钟):AHB总线时钟 APB1总线时钟(低速):速度最高36MHz APB2总线时钟(高速):速度最高72MHz PLL时钟参考资料:,ALIENTEK,例说STM32,7,2023/7/30,广州市星翼电子科技有限公司,RCC相关寄存器:typedef struct _IO uint32_t CR;/HSI,HSE,CSS,PLL等的使能和就绪标志位 _IO uint32_t CFGR;/PLL等的时钟源选择,分频系数设定 _IO uint32_t CIR;/清除/使能 时钟就绪中断 _IO uint32_t APB2RSTR;/APB2线上外设复位寄存器 _IO uint32_t APB1RSTR;/APB1线上外设复位寄存器 _IO uint32_t AHBENR;/DMA,SDIO等时钟使能 _IO uint32_t APB2ENR;/APB2线上外设时钟使能 _IO uint32_t APB1ENR;/APB1线上外设时钟使能 _IO uint32_t BDCR;/备份域控制寄存器 _IO uint32_t CSR;/控制状态寄存器 RCC_TypeDef;对照STM32中文参考手册V107.3节 P85102了解这些寄存器的作用。,ALIENTEK,例说STM32,8,2023/7/30,广州市星翼电子科技有限公司,RCC相关寄存器:typedef struct _IO uint32_t CR;/HSI,HSE,CSS,PLL等的使能和就绪标志位 _IO uint32_t CFGR;/PLL等的时钟源选择,分频系数设定 _IO uint32_t CIR;/清除/使能 时钟就绪中断 _IO uint32_t APB2RSTR;/APB2线上外设复位寄存器 _IO uint32_t APB1RSTR;/APB1线上外设复位寄存器 _IO uint32_t AHBENR;/DMA,SDIO等时钟使能 _IO uint32_t APB2ENR;/APB2线上外设时钟使能 _IO uint32_t APB1ENR;/APB1线上外设时钟使能 _IO uint32_t BDCR;/备份域控制寄存器 _IO uint32_t CSR;/控制状态寄存器 RCC_TypeDef;对照STM32中文参考手册V107.3节 P85102了解这些寄存器的作用。,ALIENTEK,3.3 Stm32_Clock_Init()函数讲解,例说STM32,9,2023/7/30,广州市星翼电子科技有限公司,函数在实验 工程中的SYSTEM分组下面的sys.c和sys.h中。作用:初始化STM32的时钟。其中还包括对向量表的配置,以及相关外设的复位及配置。讲解参考:书本小节,ALIENTEK,例说STM32,10,2023/7/30,广州市星翼电子科技有限公司,ALIENTEK,3.4 Systick延时,例说STM32,11,2023/7/30,广州市星翼电子科技有限公司,3.4.1 什么是Systick定时器?3.4.2 Systick 相关寄存器 3.4.3 delay文件夹讲解,ALIENTEK,3.4.1 什么是systick定时器,例说STM32,12,2023/7/30,广州市星翼电子科技有限公司,Systick定时器就是系统滴答定时器,一个24位的倒计数定时器,计到0时,将从RELOAD寄存器中自动重装载定时初值。只要不把它在SysTick控制及状态寄存器中的使能位清除,就永不停息,即使在睡眠模式下也能工作。SysTick定时器被捆绑在NVIC中,用于产生SYSTICK异常(异常号:15)。,ALIENTEK,3.4.2 systick相关寄存器,例说STM32,13,2023/7/30,广州市星翼电子科技有限公司,CTRL SysTick控制和状态寄存器LOAD SysTick自动重装载除值寄存器VAL SysTick当前值寄存器CALIBSysTick校准值寄存器typedef struct _IO uint32_t CTRL;_IO uint32_t LOAD;_IO uint32_t VAL;_I uint32_t CALIB;SysTick_Type;,ALIENTEK,例说STM32,14,2023/7/30,广州市星翼电子科技有限公司,CTRL寄存器描述,ALIENTEK,例说STM32,15,2023/7/30,广州市星翼电子科技有限公司,LOAD 寄存器描述,VAL 寄存器描述,ALIENTEK,3.4.3 delay文件夹讲解,例说STM32,16,2023/7/30,广州市星翼电子科技有限公司,delay文件夹内包含了delay.c和delay.h两个文件,这两个文件用来实现系统的延时功能,其中包含3个函数:void delay_init(u8 SYSCLK);void delay_ms(u16 nms);void delay_us(u32 nus);函数的讲解请参考例说STM32和源码讲解。,ALIENTEK,例说STM32,17,2023/7/30,广州市星翼电子科技有限公司,ALIENTEK,例说STM32,18,2023/7/30,广州市星翼电子科技有限公司,