处理器有一个24位系统定时器,SysTick,它可以向下计数从重载值到0,在下一个时钟边沿重载LOAD寄存器中的值,然后在随后的时钟下降计数。
当处理器停止进行调试时,计数值不再缩减。
系统滴答控制和状态寄存器(STK_CTRL)
地址偏移 0x00
复位值 0x0000 0000
需要的特权 特权的
系统滴答控制和状态寄存器(CTRL)使能滴答定时器的特点。
位31:17 保留,必须保持被清除。
位16 COUNTFLAG如果因为最后时间被读定时器记到0,返回1
位15:3 保留,必须保持被清除。
位2 CLKSOUCE时钟源选择。
选择时钟源,0,AHB/8;1处理器时钟(AHB)。
位1 TICHINT 滴答定时器异常请求使能。
0向下计数到0时不声称系统滴答异常请求。
1向下计数到0时声称系统滴答异常请求。
注释:软件可以使用COUNTFLAG决定系统滴答是否记到0。
位0 ENABLE 计数使能。使能计数器。当ENABLE设置为1时,计数器从LOAD寄存器载入RELOAD值且开始向下计数。在达到0时,它设置COUNTFLAG为1,根据TICKINT的值可选地声称系统滴答。然后再次载入RELOAD值,开始计数。
0计时器失能
1计数器使能
系统滴答重载值寄存器(STK_LOAD)
地址偏移 0x04
复位值 0x0000 0000
需要的特权 特权的
系统滴答控制和状态寄存器(CTRL)使能滴答定时器的特点。
位31:24 保留,必须保持被清除。
位23:0 RELOAD[23:0] 重载值
载入寄存器指定了当计时器使能和它达到0时载入到VAL寄存器的开始值。计算重载值,重载值可以是在0x0000 0001~0x00FF FFFF范围内的任意值。一个开始值0是可能的,但是没有效果因为系统滴答异常请求和COUNTFALG标志被激活在计数从1到0时。
重载值通过它的使用计算:为了生成一个个处理器时钟周期的多次触发的定时器,使用重载值N-1.例如,如果系统滴答中断需要每100时钟脉冲,色泽RELOAD为99;为了传递单一的系统滴答中断在N个处理器周期延迟后,使用一个重载值N,例如,一个滴答中断需要在400时钟脉冲后,设置RELOAD为400。
系统滴答当前值寄存器(STK_VAL)
地址偏移 0x08
复位值 0x0000 0000
需要的特权 特权的
位31:24 保留,必须保持被清除。
位23:0 CURRENT[23:0]当前计数值。
系统滴答当前值寄存器(VAL)包含了系统滴答定时器的当前值。读取返回系统滴答定时器的当前值。写入任何值将清除这个域为0,同样清除在STK_CTRL中的COUNTFLAG位为0。
系统滴答校准值寄存器(STK_CALIB)
地址偏移 0x0C
复位值 0x0000 2328
需要的特权 特权的
系统滴答校准值寄存器(CALIB)指示系统滴答校准属性。
位31 NOREF NOREF标志
读为0.指示一个独立的参考时钟被提供,它的时钟频率位HCLK/8。
位30 SKEW SKEW标志
读为0。为不精确1ms定时的校准值是未知的。因为TENMS是未知的。这可能影响系统滴答作为一个软件实时时钟的匹配。
位29:24 保留,必须保持被清除。
位23:0 TENMS[23:0] 校准值。
指明当系统滴答定时器以HCLK max/8作为外部时钟运行的校准值。这个值是产品从属的,请查考产品设计手册,系统滴答校准值部分。当HCLK编程在最大频率,系统滴答的周期是1ms。
如果校准信息是未知的,从处理器时钟或外部时钟频率计算所需校准值。
系统滴答设计提示和小技巧:系统滴答定时器运行在处理器时钟,如果这个时钟信号停止为了低功耗模式,系统滴答计时器停止;确保软件使用对齐字访问访问系统滴答寄存器。
系统滴答寄存器地图,下编提供显示了系统滴答寄存器地图和复位值。系统滴答寄存器块的基地址为0xE000 E010