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 校准值寄存器