STM32
直播中

刘秀英

7年用户 1319经验值
私信 关注
[问答]

如何去计算Stm32定时器的定时呢

如何去计算STM32定时器的定时呢?其计算公式是什么?

回帖(1)

陈芸

2021-10-25 10:55:01
  Stm32定时器定时计算通过计数溢出计算,也就是说计数溢出就触发中断
  计算公式:
  TimeOut = ((Prescaler + 1) * (Period + 1) ) / TimeClockFren;
  解释下公式参数意义:
  TimeOut:定时器溢出时间(单位为us),多少触发(进入)一次TIM中断。
  Prescaler:分频TIM时钟的预分频器值。
  Period:计数重载值,TIM计数当超过这个值,则重新计数。
  TimeClockFren:定时器的输入时钟频率(单位MHZ),也就是当前使用的TIM所用的CLOK的时钟频率。如果不清楚,可通过相关参数得到。
  eg:
  TIM2_InitStruct.Instance = TIM2;
  TIM2_InitStruct.Init.Prescaler = 1999;
  TIM2_InitStruct.Init.Period = 999;
  。..。..
  如上所示,上述代码在TimeClockFren为2.09Mhz的频率下,则定时器溢出的时间为
  TimeOut = ((1999 + 1) * (999 + 1) ) / 2;
  TimeOut = 1000000us = 1s。
  因此,定时器则1s触发一次中断。
举报

更多回帖

发帖
×
20
完善资料,
赚取积分