SysTick(系统定时器)

SysTick

Cortex-M3 在内核部分 包含了一个简单的定时器——SysTick timer。且所有的 CM3 芯片都带有这个定时器。

在 STM32 中 SysTick 以 HCLK(AHB 时钟)或 HCLK/8 作为运行时钟。
在这里插入图片描述

SysTick timer工作分析

SysTick 是一个 24 位的定时器,即一次最多可以计数 224 个时钟脉冲,这个脉冲计数值被保存到 当前计数值寄存器 STK_VAL (SysTick current value register) 中,只能向下计数。

每接收到一个时钟脉冲 STK_VAL 的值就向下减 1,直至 0,当 STK_VAL 的值被减至 0 时,由硬件自动把重载寄存器 STK_LOAD(SysTick reload value register)中保存的数据加载到 STK_VAL,重新向下计数。

当 STK_VAL 的值被计数至 0 时,触发异常,就可以在中断服务函数中处理定时事件了。当然,要使 SysTick 进行以上工作必须要进行 SysTick 配置。配置在寄存器STK_CTRL中完成。

定时时间的计算

经过ticks个脉冲(经过ticks个时钟周期)后将触发中断,触发中断后又重新开始计数。

定时的时间计算公式:T=ticks*(1/f),ticks为SysTick_Config()的输入参数,1/f为SysTick timer使用的时钟源的时钟周期,f为该时钟源的时钟频率 。

  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值