正点原子STM32探索者学习笔记3

编写者:龙诗科

邮箱:longshike2010@163.com

2015-5-18

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

2.Systick定时器常用来做延时,或者实时系统的心跳时钟。这样可以节省MCU资源,不用浪费一个定时器。

3.Systick定时器就是系统滴答定时器,一个24位的倒计数定时器,计到0时,将从RELOAD寄存器中自动重载定时初值。

4.Systick定时器可以被捆绑在NVIC,其中断优先级可以设置。

5.有4个Systic寄存器:CTRL(控制和状态寄存器)如下:

用Systick实现延迟函数的例子如下:

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
     … 
     }
}

 

posted @ 2016-05-19 14:46  只为技术而狂  阅读(502)  评论(0编辑  收藏  举报