Cortex-M3内核的处理器内部包含了一个SysTick定时器
sysTick是一个24位的倒计数定时器,当计数到0时则从RELOAD寄存器中自动重装载定时器的值开始新一轮计数。只要不把它在Systick控制及状态寄存器中的使能位清除,就永不停息。
以上文字说明了SysTick定时器的几个特点:
1.它是一个倒计数定时器。(最大值不能超过24位)
2.如果不置零使能位,定时器将一直循环。
systick->CTRL寄存器各位定义
位段 | 名称 | 类型 | 复位值 | 描述 |
16 | COUNTFLAG | R | 0 | 如果在上次读取本寄存器后,SysTick已经数到了0,则该位为1,如果读取该位,则该位自动清零。 |
2 | CLKSOURCE | R/W | 0 | 0=外部时钟源(STCLK) 1=内部时钟(FCLK) |
1 | TICKINT | R/W | 0 | 1=SysTick倒数到0时产生SysTick异常请求 0=数到0时无动作 |
0 | ENABLE | R/W | 0 | SysTick定时器的使能位 |
SysTick->LOAD 寄存器各位定义
位段 | 名称 | 类型 | 复位值 | 描述 |
23:0 | RELOAD | R/W | 0 | 当倒数至0时,将被重新装载的值 |
sysTick->VAL寄存器各位定义
位段 | 名称 | 类型 | 复位值 | 描述 |
23:0 | CURRENT | R/Wc | 0 | 读取时返回当前倒计数的值,写它则使之清零,同时还会清除在SysTick控制及状态寄存器种的COUNTGFLSAG标志 |