1 实验目的
(1) 理解滴答定时器SysTick 定时器的工作原理;
(2) 学会使用中断函数。
2 实验任务
(1) 编写 SysTick 定时器初始化程序;
(2) 编写 SysTick 定时器的中断服务函数。
3 实验说明
(1) SysTick 定时器,是一个简单的定时器,对于 CM3,CM4 内核芯片,都
有 SysTick 定时器。SysTick 定时器就是系统滴答定时器,一个 24 位的倒计数定
时器,计到 0 时,将从 RELOAD 寄存器中自动重新装载定时初值。只要不把它
在 SysTick 控制及状态寄存器中的使能位清除,就永不停息,即使在睡眠模式下
也能工作。SysTick 定时器常用来做延时,或者实时系统的心跳时钟。这样可以
节省 MCU 资源,不用浪费一个定时器。比如 UCOS 中,分时复用,需要一个最
小的时间戳,一般在 STM32+UCOS 系统中,都采用SysTick 做 UCOS 心跳时钟。
(2) SysTick_CLKSourceConfig()// SysTick 时钟源选择 misc.c 文件中
SysTick_Config(uint32_t ticks)//初始化 SysTick,时钟为 HCLK,并开启中断。
以上就是滴答定时器常用的库函数了,第一个函数为滴答器选择时钟源。时
钟源的选择有以下两种:内部时钟源 SysTick_CLKSource_HCLK 和以及外部时
钟源 SysTick_CLKSource_HCLK_Div8,后者为前者的八分之一。
假如SysTick_CLKSource_HCLK为72MHz,那么SysTick_CLKSource_HCLK
_Div8 为 9MHz。前面提到滴答定时器其实是一个 24 位递减的定时器。第二个函
数用来初始化滴答定时器,也就是为其设置初值。