SysTick定时器

一、SysTick定时器基础知识讲解

1、是一个简单的定时器,对于ST的CM3、CM4、CM7内核芯片,都有Systick定时器

2、常用来做延时,或者定时系统的心跳时钟,这样可以节省MCU资源,不用浪费一个定时器,比如UCOS中,分时复用,需要一个最小的时间戳,一般在STM32+UCOS系统中,都采用Systick做UCOS心跳时钟。

3、SysTick定时器就是系统滴答定时器,一个24位的到技术定时器,计到0时,将从RELOAD寄存器中自动重装定时处值,只要不把它在SysTick控制及状态寄存器中的使能位清除,就永不停息,即使在睡眠模式下也能工作。

4、Systick定时器被捆绑在NVIC中,用于产生SYSTICK异常(异常好15)

5、SYSTick终端的优先级也可以设置。

6、4个SysTick寄存器

*CTRL 控制和状态寄存器

对于STM32,外部时钟源是HCLK(AHB总线时钟)的1/8

                       内核时钟是HCLK时钟

配置函数 HAL_SYSTICK_CLKSourceConfig();

*LOAD 自动重载除值寄存器

24位寄存器,当倒数至零时,将被重装载的值

*VAL 当前值寄存器——从上往下计数,当前值,写它则使之清零,同时还会清除SysTick控制及状态寄存器中的COUNTFLAG标志

*CALIB 校准值寄存器

二、SYSTick相关寄存器库函数讲解

*HAL库中的Systick相关函数

HAL_SYSTICK_CLKSourceConfig(); //Systick时钟源选择

Systick_Config(uint32_t ticks); 初始化SYSTick,时钟为HCLK,并开启中断

*Systick中断服务函数: void SysTick_Handler(void)

三、delay延时函数讲解(SysTick应用)

你可能感兴趣的:(STM32)