写在前面:
本次实验我们将学习Systic滴答定时器,以及Hal_Delay的关系
1. 知识要点
1.1 Systic的概念
SysTick定时器是Cortex-M系列处理器内核自带的一个24位倒计数(向下计数)定时器,主要用于实现定时和延时功能。当计数器的值从某个初始值倒计数到0时,它会自动从RELOAD寄存器中加载预设的初始值继续倒计数,从而形成一个周期性的定时器。
1.2 SysTick的主要特点
- 24位向下计数:SysTick定时器的计数器是24位的,可以存储从0到2^24-1的值,倒计数到0时会触发中断。
- 自动重装载:计数器到0后,会自动从RELOAD寄存器中加载初始值并继续倒计数,这样可以实现定时器的周期性工作。
- 系统定时器:SysTick定时器通常用于操作系统中的时钟节拍,也可以用作简单的延时。
- 简单配置:SysTick定时器配置简单,只需设置RELOAD值和控制寄存器即可开始工作。
1.3 SysTick定时器的寄存器
- SysTick控制及状态寄存器(STK_CTRL):
- 用于启动和停止定时器,控制中断使能,以及检查定时器状态。
- SysTick重装载寄存器(STK_LOAD):
- SysTick当前值寄存器(STK_VAL):
- SysTick校准值寄存器(STK_CALIB):
2. 程序学习
2.1函数介绍
2.2.1 HAL_InitTick
HAL库自带该函数,用于配置SysTick定时器作为时间基准源,使其固定时间触发一次中断,该时间可以通过修改时间基准来实现。这个函数会在程序开始时自动调用,或者在时钟重新配置时调用。以下是对这段代码的详细解释: