STM32 | Systick定时器(第四天)

时间:2024-03-24 07:21:14

STM32 第四天

一、Systick定时器

1、定时器概念

定时器:是芯片内部用于计数从而得到时长的一种外设。

定时器定时长短与什么有关???(定时器定时长短与频率及计数大小有关)

定时器频率换算单位:1GHZ=1000MHZ=1000 000KHZ = 1000 000 000HZ

定时器定时时间计数个数/f(频率)   或者 (1/f(频率))*计数的个数

500/1MHZ = 500/1000 000 = 0.0005s = 0.5ms = 500us

在1MHZ下,1us计1个数;在100MHZ下,1us计100个数;

2、Systick定时器

Systick定时器,是一个简单的定时器,对于CM3,CM4内核芯片,都有Systick定时器。常用来做延时,或者实时系统的心跳时钟。这样可以节省MCU资源,不用浪费一个定时器。比如uCOS/FreeRTOS中,分时复用,需要一个最小的时间戳,一般在STM32+UCOS系统中,都采用Systick做uCOS心跳时钟。

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

一共4个Systick寄存器

CTRL             SysTick 控制和状态寄存器 

LOAD            SysTick 自动重装载除值寄存器 

VAL               SysTick 当前值寄存器 

CALIB              SysTick 校准值寄存器