你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

基于STM32定时计算定时器经验分享

[复制链接]
攻城狮Melo 发布时间:2023-5-1 15:08
STM32 定时器频率
2 h- p) @, k1 e% @, \, Y: O
% l1 s% ]/ P& d- K6 o

2 B0 H- T" V. W& c b4cc8fedd9cc437a844c7de367a4b6ee.png
. b$ t3 k. f8 b: V3 G& ]5 f. C
$ \8 B! i% \3 `! j

2 l5 N: X9 W+ O1 L% S定时时间 = 定时器频率 / 倍频 /装载周期' O/ L5 j6 X0 q
1 x! b1 ?/ U& f: v

$ G/ j( R2 g! y# Z
  1. htim1.Init.Prescaler = 72-1;% @  w2 o6 p/ N( Z- y
  2.   htim1.Init.CounterMode = TIM_COUNTERMODE_UP;
      J/ q7 R1 k' g& h; x+ w
  3.   htim1.Init.Period = 1*1000*1000;
    " C# h" [# [# Y3 w2 C8 T1 E
复制代码

: s6 \; L. a, h5 I' M8 dtim = 72x10^6 / (72-1)/ 110001000 = 1us
3 \, w% ]$ J% P' S5 ?0 p! l
. _+ s1 s) e, D* C' `" `

+ Q) q: |* s% Q( r* _根据定时器时钟的频率,比如时钟的频率是72MHZ,可以理解为一秒钟STM32会自己数72M次,预分频系数就是将频率分割,比如分频系数是72,则该时钟的频率会变成72MHZ/72=1MHZ,但是在设置的时候要注意,数值应该是72-1。假定分频系数是72-1,那么频率变成1MHZ,也就意味着STM32在一秒钟会数1M次,即1us数一次。好了,接下来就是确定预装载值,比如需要定时1ms,由于1ms=1us*1000,那么预装载值就是1000-1;如此类推,在预分频系数确定的情况下,定时的时长就由预装载值确定了。至于要把值减一的原因,估计是计数是从0开始,所以要减一。# c# J! |% F2 E
% i& Z$ U; m5 j4 W$ n& [7 ]" h( R
例子
) G$ x6 B4 i" H; n. e
  1. //对于71MHZ的频率,500ms中断一次,这两个参数设置如下:, ~% {# E0 R, Z
  2. TIM_Prescaler=7199;   //预分频值
    . @" q2 d! E- w& o& G3 f7 A
  3. TIM_Period=4999;    //下一个更新事件装入活动的自动重装载寄存器周期的值
    $ t) u! N4 b2 \! R2 w3 O- a

  4. / l# ?- d2 ?) [$ j
  5.    //分频7200,用72000000/7200=10000Hz
    ) N- U% H3 d+ T7 Q0 c: a
  6.    //此时的周期就是1/10000=0.0001s6 t6 O1 G( f! @1 l+ Y0 x
  7.    //500ms=0.0001s*5000次
    , b  f5 G* b7 Q/ r& S: _, f. i7 f
  8.    //5000-1=4999次
      v7 W% [* T: O# }: N" j- Y
  9.    //即通过4999次系统的运行,就是500ms3 P) ?4 f: A: a9 l2 y  V- Q
复制代码
7 u) }& s( e5 e- E
公式8 z0 K2 n( ]% {/ W. w% z  z
对定时器周期公式的理解:
5 U' S* ~* _4 b+ V
  1. T=(arr+1)*(PSC+1)/Tck  
    ( d9 [8 m" v2 k8 e0 S$ q
复制代码
% Z* |$ g1 A. C1 @. K, w! e
其中TCK为时钟频率,PSC为时钟预分频系数,arr为自动重装载值。
* X: C% Z3 q3 _3 e: a) l$ E$ k& t; x, p# n
  1. f=Tck/(psc+1)*(arr+1)* b2 Q, r7 H+ M  L' o# Q
复制代码

, {- U1 Z  t, h, ]  D  VTck/(psc+1)即为时钟频率,1/f为机器周期,乘以(arr+1)即可得出定时器周期。
5 L0 A! v, E) G. z例子:TCK=72MHZ,psc=71.时钟周期=1us.(arr+1)值为多少,定时器周期就为多少毫秒。
( R5 I6 ^9 O% R$ T; g* U& @# ]9 F————————————————9 }& J( G: k; n% W5 D! V7 [" R
版权声明:静思心远8 `1 b3 L, o2 W
如有侵权请联系删除
$ ]* r+ h0 z: n9 u8 R0 R: E/ L4 V/ B& U& S/ v' S

* X( K( G! O4 [: L, B
赞 收藏 评论0 发布时间:2023-5-1 15:08

举报

0个回答

所属标签

相似技术帖

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
人形机器人运动控制、感知与智能配电
半导体创新技术与应用方向
EE架构与软件定义汽车
12V/48V 汽车智能配电(SPD)
区域控制单元(ZCU)与分区架构
关注我们
st-img 微信公众号
st-img 手机版