前言
这次主要讲了STM32 systick嘀嗒定时器和相关函数的应用,通过systick实现计时,但实际上正点原子的开发板已经把systick封装起来了用的自己的delay函数,反而更方便,这篇博客主要讲一下systick的相关寄存器和库函数,以及systick的应用。
SysTick基础知识
SysTick 是一个 24 位的倒计数定时器,当计数到 0 时,将从RELOAD 寄存器中自动重装载定时初值,开始新一轮计数,这是Systick的主要功能,就是一个无限循环的一个计数器。
SysTick 有四个寄存器分别是CTRL(SysTick控制及状态寄存器),LOAD(SysTick重装载数值寄存器),VAL(SysTick当前数值寄存器),CALIB(SysTick校准数值寄存器),因为systick是内核级别的,所以可以参考《Cortex-M3权威指南-中文》第八章最后一个小节,里面对怎么配置寄存器有详细的介绍。
SysTick寄存器
typedef struct
{
__IO uint32_t CTRL; /*!< Offset: 0x00 SysTick Control and Status Register */
__IO uint32_t LOAD; /*!< Offset: 0x04 SysTick Reload Value Register */
__IO uint32_t VAL; /*!< Offset: 0x08 SysTick Current Value Register */