正点原子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 … } }