1.为什么要用SysTick
看过我前面文章的友友们都知道,我发的STM32系列都是从初学者开始发的,而让led闪烁需要用到延时,由于才是初学,没学到系统延时函数就用了笨方法,定义一个很大的数写进循环,让CPU先执行自减操作,执行完需要花费一定时间,从而达到一个时间间隔的作用,但是这个是时间是不准确的,有时候运行快点就会让LED闪烁的快,LED闪烁受到CPU运行速度影响,使用我们现在就先来学习在裸机中应用较多的SysTick系统定时器的使用。
2.SysTick介绍
它是M3内核的一个外设,所有使用这个内核的芯片都有这个外设,它被嵌入在NVIC中,它是一个24位的向下递减计时器,它每计数一次花费九分之一微秒(1秒=1,000 毫秒 =1,000,000 微秒),也就是一微秒递减9次。通过查看递减次数就可以得到微秒级的时间。当它为0 的时候自动从LoAD中获取它的初值继续向下递减。递减到0的时候还会产生一个中断信号。在我们的裸机开发当中会经常使用它做一个延时
3.SysTick定时器操作
如果你要使用中断,就要把TICKINT设置成1,计时结束后就会产生异常请求,产生中断。
CALIB基本不会用到
4.初始化SysTick实际操作流程
5.代码如下 :
这样就能精确的控制LED闪烁速度,可以精确到微秒级。