学习目标:
stm32实现Systick的毫秒级延时和微妙级延时
学习内容:
1、Systick 工作原理
Systick(系统定时器)是ARM Cortex M3/M4 内核的一个外设,因为所有的CM3/M4内核的单片机都带有这个定时器,这使得软件在CM3/M4单片机中可以很容被移植。系统定时器一般用于单片机操作系统产生时间,维持os的心跳和实现任务分时调度等,Systick 定时器是如此的重要,以至于CM3/M4为它专门开出一个异常类型,并且在向量表中有它的一席之地。
Systick是一个24位的向下递的计数器,每当Systick 从时钟源到来一个时钟,其值就会减1,而一般我们将Systick 的时钟源设置为系统时钟 HCLK(72MHz),这样也就意味着每过1/72M秒Systick里的计数器将会减1,当重装载数值寄存器里的值递减为 0 的时候,系统定时器就会产生一次中断,这样就有时间了。之后CPU自动重新装载计数器值并逐渐递减循环往复。
2、毫秒级延时的实现
Systick上电初始化(外部晶振还没开始工作,此时系统默认使用内部 HSI提供时钟源)