SysTick,ST的数据手册上稍微提了一下但是没有详细介绍,这里我们仔细研究下。如有错误之处敬请更正。
SysTick位于NVIC中,它主要应用在操作系统中,所以平常我们用的很少,但是我们可以用它来做简单的延时,还是比较准确的。
那我们先看一下跟他相关的寄存器吧:
主要有四个寄存器:CTRL,RELOAD,VAL,CALIB
CALIB我们一般不用,所以就不做介绍了。
对CTRL的操作实际就是设置SysTick的时钟,以及使能等。
对LOAD的操作就是填充新的计数值
对VAL的操作时设置计数满后的操作
学习最快最感性的莫过于实例了,那我们就通过一个例子来学习SysTick
那我们先说下思路,延时函数通过SysTick来实现,进入延时函数时我们启动SysTick,根据工作的实际时钟频率来确定没us或者每ms的初值,然后通过计算能得到延时nus或者nms是应该填充的初值,但是LOAD寄存器只有24位是可用的,所以延时的上限为1860ms左右,足够我们用了。
那我们下边把代码贴上来: