今天主要总结一下滴答定时器的相关操作:
首先,他是一个24位的倒数定时器,当计数到0的时候,会从LORA寄存器中重新装载值,只要不把CTRL寄存器中ENABLE清零,他就不会停止。
滴答的结构体如下
typedef struct
{
__IO uint32_t CTRL; /*!< Offset: 0x000 (R/W) SysTick Control and Status Register /
__IO uint32_t LOAD; /!< Offset: 0x004 (R/W) SysTick Reload Value Register /
__IO uint32_t VAL; /!< Offset: 0x008 (R/W) SysTick Current Value Register /
__I uint32_t CALIB; /!< Offset: 0x00C (R/ ) SysTick Calibration Register */
} SysTick_Type;
通常使用前三个寄存器。
控制盒状态寄存器(CTRL),用来控制systick核查询定时器状态。
复位值为:SysTick->CTRL = 0x00000000;
重装值(LOAD)寄存器,用于重新装载设定的值
当前值(VAL)寄存器,用于存储当前定时器的值,
定时器初始化步骤:
1.选择时钟源
2.设定重载值(reload)
3.开启中断
4.启动滴答定时器