SysTick——系统定时器

SysTick: 系统定时器,24位只能递减存在于内核,嵌套在NVIC中,所有的Cortex-M内核的单片机都具有这个定时器(M0没有)由于只有24位,所以递减计数器和重装载寄存器的最大值为2的24次方。

递减计数器在时钟的驱动下,从重装载寄存器的初值开始往下递减计数到0,到0后产生中断,同时置位COUNTFLAG标志位(在STK_CTRL寄存器),然后重装载寄存器重新开始递减计数,如此循环。

STK_CTRL寄存器

SysTick——系统定时器

SysTick——系统定时器

SysTick控制及状态寄存器

COUNTFLAG: 当递减计数器为0时,置一;如果软件读取了该位,该位就会自动清零。

CLKSOURCE:时钟源选择位,为0时时钟等于总线时钟除以8;为1时等于总线时钟。

TICKINT:中断使能,当计数器减到0时,为0,不使能中断,不执行中断程序;为1,进入中断程序。

ENABLE:定时器开关,为1,打开;为0,关闭。

SysTick重装载数值寄存器

RELOAD:重装载寄存器, 当计数器为0时,重新装载进去。

SysTick当前数值寄存器

CURRENT: 递减寄存器。

SysTick定时时间计算

t = reload * (1/clk)

 

SysTick寄存器结构体

在固件库文件:core_cm3.h中定义

SysTick——系统定时器

SysTick配置库函数

在固件库文件:core_cm3.h中定义

SysTick——系统定时器

 

 

 

 

 

 

上一篇:stm32f429系统时钟的配置学习。systick定时器的应用。典型的延时函数的编写。


下一篇:查看stm32的SysTick中断的优先级,比外设中断优先级高吗?