当前位置: 代码迷 >> 综合 >> STM32F10xxx20xxx21xxxL1xxxx Cortex-M3程序设计手册 阅读笔记四(5):系统滴答定时器
  详细解决方案

STM32F10xxx20xxx21xxxL1xxxx Cortex-M3程序设计手册 阅读笔记四(5):系统滴答定时器

热度:49   发布时间:2023-10-25 20:26:34.0

       处理器有一个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




  相关解决方案