×
单片机 > 单片机程序设计 > 详情

STM32系列第5篇--Systick滴答定时器

发布时间:2020-08-31 发布时间:
|

Systick定时器,是一个简单的定时器,对于CM3,CM4内核芯片,都有Systick定时器。

Systick定时器常用来做延时,或者实时系统的心跳时钟。这样可以节省MCU资源,不用浪费一个定时器。比如UCOS中,分时复用,需要一个最小的时间戳,一般在STM32+UCOS系统中,都采用Systick做UCOS心跳时钟。

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

SysTick定时器被捆绑在NVIC中,用于产生SYSTICK异常(异常号:15)。

Systick中断的优先级也可以设置。

用中断的方式实现Delay延时:

static __IO uint32_t TimingDelay;void Delay(__IO uint32_t nTime)
{ 
   TimingDelay = nTime;   while(TimingDelay != 0);
}void SysTick_Handler(void)
{    if (TimingDelay != 0x00) 
    { 
       TimingDelay--;
     }
}int main(void)
{  …    if (SysTick_Config(SystemCoreClock / 1000)) //systick时钟为HCLK,中断时间间隔1ms
    {         while (1);
    }    while(1)
    { Delay(200);//2ms
     … 
    }
}


关键字:STM32系列  Systick  滴答定时器 

『本文转载自网络,版权归原作者所有,如有侵权请联系删除』

热门文章 更多
C51 特殊功能寄存器SFR的名称和地址