当前位置:
文档之家› SysTick定时器自学笔记(含Stm32源程序)
SysTick定时器自学笔记(含Stm32源程序)
SysTick定时器
所有基于ARM Cortex-M3内核的控制器都带有SysTick定时器。使用定时器与使用while循环定时的区别在于定时器是独立于主程序运行的,当时 间到达的时候会发生中断,运行预先设定的中断程序。这样中断的程序的运行就不会受到主程序的影响。及时在主程序中发生了卡死,定时器仍然 会正常产生中断,运行中断程序。
首先,我们需要设定SysTick的时钟源,然后给其装在一个重装值。在时钟源的驱动下,定时器会进行减一操作,发生溢出后会产生中断。
STM32编程
在最新的库中,仅需使用SysTick_Config设置其时钟源即可。 #include "Include.h" uint32_t time=1000; int main(void) { Init_LED(); SysTick_Config(SystemCoreClock/1000); while (1) { if(time==0) { D5_TOGGLE; time=1000; } } }
其中Init_LED();包含了GPIO的初始化,D5_TOGGLE包含了命令是D5端口的LED灯电压翻转。
在STM32f10x_it.c中SysTick定时器中断部分添加 extern uint32_t time; void Sys
SysTick_Handler是系统关键字,放在STM32f10x_it.c中是为了把所有的中断都放在一起方便管理,也可以直接书写在main.c中。
参考文献:
stm32自学手册(北京航空航天出版社\蒙博宇编著)