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

【经验分享】STM32 通用定时器(TIM2到TIM5)

[复制链接]
STMCU小助手 发布时间:2022-6-13 17:33
01. 通用定时器简介
" j) b1 s* ]: U& b2 \通用定时器包含一个 16 位或 32 位自动重载计数器,该计数器由可编程预分频器驱动。
# z( ^% s% g6 }. S1 o
. d5 F0 S5 B7 O( f: v+ ~它们可用于多种用途,包括测量输入信号的脉冲宽度( 输入捕获 )或生成输出波形( 输出比较和 PWM)。
0 |; H+ Q" ]. Q  X
9 f$ S& C: f3 J' F( e% C8 k; K使用定时器预分频器和 RCC 时钟控制器预分频器,可将脉冲宽度和波形周期从几微秒调制到几毫秒。+ s7 M1 W7 N: k
# d1 w- _" a  ?; S9 X5 w5 F; T
这些定时器彼此完全独立,不共享任何资源。! {0 b+ \2 s6 v. V7 j% {& f

7 o9 r) _( y7 n; V5 x" d+ N02. TIM2到TIM5主要特性
9 ]: O& {: O8 \7 |  X* S0 e通用 TIMx 定时器具有以下特性:. o) N8 W  ]$ c- T4 i* X2 A+ M
● 16 位(TIM3 和 TIM4)或 32 位(TIM2 和 TIM5) 递增、递减和递增/递减自动重载计数器。/ z; }$ ?/ H% b) I# l
● 16 位可编程预分频器,用于对计数器时钟频率进行分频(即运行时修改),分频系数介于 1 到 65536 之间。
2 Y  ]' f! J. ]● 多达 4 个独立通道,可用于:& _! T$ i' Y/ S- `$ V- K8 H
— 输入捕获
0 u  {6 U" l. R6 ]8 g) p' ~— 输出比较1 G  n2 q2 M' G+ b6 S. I
— PWM 生成(边沿和中心对齐模式)
0 y6 J& q* d0 `# W— 单脉冲模式输出
9 S% H; E* A& c# o. ]● 使用外部信号控制定时器且可实现多个定时器互连的同步电路。; |' w! x/ g* z
● 发生如下事件时生成中断/DMA 请求:
  R, @# m9 E5 S4 U5 l3 d5 v3 ?$ ]" t— 更新:计数器上溢/下溢、计数器初始化(通过软件或内部/外部触发)
( G- w3 M; M$ ]7 b— 触发事件(计数器启动、停止、初始化或通过内部/外部触发计数)
# ?$ L, a. X7 c% U/ k8 V— 输入捕获
3 }' V! C5 M' ~: w4 Q# b— 输出比较
& ~* s, P3 T8 g. k! o# b2 g3 {' e● 支持定位用增量(正交)编码器和霍尔传感器电路
# @2 d$ x' W0 [' [& I$ m( X8 Z4 y● 外部时钟触发输入或逐周期电流管理. \/ F6 @3 i4 V7 }" {( p

4 E' n8 a! M( R' e& x03. TIM2到TIM5功能说明
  i: l4 p- f' e  R6 P/ k时基单元  Z! v( X& j4 \$ [" }5 J1 U  G
& r# P# S5 ~! y  \
可编程定时器的主要模块由一个 16 位/32 位计数器及其相关的自动重装寄存器组成。此计数器可采用递增方式计数。计数器的时钟可通过预分频器进行分频。
$ d5 f8 g  `( C4 `' M. T* |9 H6 s% d! `1 D# _
计数器、自动重载寄存器和预分频器寄存器可通过软件进行读写。即使在计数器运行时也可执行读写操作。0 ~1 x5 c4 @. |& y
$ v) J5 h& ]- v- [
时基单元包括:0 ~1 Z, {9 m, S5 i( N

( O) i; V4 j  B8 p2 o% G3 {- e% ]1 j● 计数器寄存器 (TIMx_CNT)
( e% y' j" r5 p  c& E1 r$ l6 J0 r' b/ w4 _/ b
● 预分频器寄存器 (TIMx_PSC)
4 ~. s3 K% b2 M. L& Y; @
! G4 P1 S: d$ A* ~" K# C, q, k● 自动重载寄存器 (TIMx_ARR)
/ s1 C( E, |, |" F+ F
* p8 d* U7 |; U( o自动重载寄存器是预装载的。对自动重载寄存器执行写入或读取操作时会访问预装载寄存器。预装载寄存器的内容既可以直接传送到影子寄存器,也可以在每次发生更新事件 (UEV)时传送到影子寄存器,这取决于 TIMx_CR1 寄存器中的自动重载预装载使能位 (ARPE)。当计数器达到上溢值(或者在递减计数时达到下溢值)并且 TIMx_CR1 寄存器中的 UDIS 位为0 时,将发送更新事件。该更新事件也可由软件产生。下文将针对各配置的更新事件的产生进行详细介绍。  s  v2 q7 V, }% j8 f/ J0 p

2 {. W$ j6 c0 n' l% p6 A计数器由预分频器输出 CK_CNT 提供时钟,仅当 TIMx_CR1 寄存器中的计数器启动位 (CEN)置 1 时,才会启动计数器(有关计数器使能的更多详细信息,另请参见从模式控制器的相关说明)。
' _/ m4 y2 k! o) n: H3 y9 h. d' N2 O  m1 p' j
请注意,真正的计数器使能信号 CNT_EN 在 CEN 置 1 的一个时钟周期后被置 1。
4 P# ?: b, x3 h; c9 P( ^( F
  Q& a. m4 T2 q% i6 E预分频器说明
/ L  x  }& c) }
5 z/ T% ~/ \2 I, v) Y预分频器可对计数器时钟频率进行分频,分频系数介于 1 到 65536 之间。该预分频器基于16 位/32 位寄存器(TIMx_PSC 寄存器)所控8 V- `$ R* q& E5 ^0 U

9 b" U2 e. G) j2 ~. Y+ O! f制的 16 位计数器。由于该控制寄存器具有缓冲功能,因此预分频器可实现实时更改。而新的预分频比将在下一更新事件发生时被采用。
3 \) [5 {3 b2 S
+ i8 H7 c7 P& w5 }: T图 120 和 图 121 给出了在预分频比发生实时变化时一些计数器行为的示例:2 a* _- G" `# J) m( P

- O- F6 i" Q: F9 I预分频器分频由 1 变为 2 时的计数器时序图3 @9 O( K: }) X. M8 @
1 I  E5 U1 {" \, b
XA@W~[R~%JZI71UT@$T_7.png
0 D/ y4 B0 }! O8 a6 y% R2 k, q5 U/ s/ T
预分频器分频由 1 变为 4 时的计数器时序图
8 F. [. \: Y. q5 _3 }/ n
1 r4 J/ V$ ?1 G BZ}{Z]O)RSL@9Q4LXQKTU(B.png ' t+ l. F$ o6 L7 ^

& R0 O% Z9 ?# {' }8 n7 x3 }计数器模式2 p7 E" \! O! u- {

3 G! @( n, ?9 v9 o: S( @4 r递增计数模式
  A- d7 L  L0 ?# j3 ~5 U
, n6 k) z( m: @% V
在递增计数模式下,计数器从 0 计数到自动重载值(TIMx_ARR 寄存器的内容),然后重新从 0 开始计数并生成计数器上溢事件。
' W; L- b# Y+ v  i% J
, i' W  i, K3 ~0 x7 d! h递减计数模式
8 X: [) y3 J0 Z

' E% u5 C, O. D1 j0 a( A8 c, j在递减计数模式下,计数器从自动重载值(TIMx_ARR 寄存器的内容)开始递减计数到 0,然后重新从自动重载值开始计数并生成计数器
2 \- c( T; H; T$ i8 Y
& A' F& N: Z- k下溢事件。& _. L  r# S& O- P5 v; H

$ @8 b1 X, ^6 `0 r1 Z' }中心对齐模式(递增/ 递减计数)

# I4 |) e3 R( n, K+ n
/ B$ l* s9 n9 [3 T在中心对齐模式下,计数器从 0 开始计数到自动重载值(TIMx_ARR 寄存器的内容)— 1,生成计数器上溢事件;然后从自动重载值开始/ O: X6 d3 O5 U
) Q4 q# ?9 b! P" l& e: m  G9 k
向下计数到 1 并生成计数器下溢事件。之后从0 开始重新计数。$ V8 j; ?8 d6 V2 B5 X* c, ?
4 M$ i! p3 q( V# r  `
04. 时钟选择  u/ Z- E  @& r: k7 i5 `# o3 D
计数器时钟可由下列时钟源提供:: j' }2 X* W# s/ m% o1 c
% z7 |: ?8 g4 v
● 内部时钟 (CK_INT)
' ?% G% V( E7 }- T% W2 ]5 M% A8 V7 x6 g
● 外部时钟模式 1:外部输入引脚 (TIx)
& y4 q2 G9 ^1 N. R6 K* F( a) B6 A7 p9 T' j
● 外部时钟模式 2:外部触发输入 (ETR),仅适用于 TIM2、TIM3 和 TIM4。6 W5 U3 Q/ B; _; M2 G0 ?

" Q9 P4 q/ z/ W% ?4 m● 内部触发输入 (ITRx):使用一个定时器作为另一个定时器的预分频器,例如可以将定时器配置为定时器 2 的预分频器。
1 k- K8 T# [9 Y2 Q" e) t' R0 @. Y* r1 d6 a2 [' K! n
05. 寄存器
8 l4 K/ J. o. s8 `$ m% }5.1 TIMx 控制寄存器 1 (TIMx_CR1)

+ j8 A+ m" @/ ITIMx control register 13 l& }+ V/ y  {# e
偏移地址:0x000 G+ w, U4 I8 _% o. b. C( I
复位值:0x0000
! h0 q% U% b* z2 W4 L
% M  C% q* l9 }2 u# t# U 20200825202940954.png % V. b% s0 F. s% m, T  s* k
" [6 Y. C. C8 Y) n, K. z% A4 j
5.2 TIMx 控制寄存器 2 (TIMx_CR2)
* [" I( j. l. j$ K, Y" U, O" f/ Z/ @TIMx control register 27 L& I- [/ ~; U& T3 s5 y3 O8 e
偏移地址:0x048 ~4 M1 t* b  X0 |
复位值:0x0000: N# Q3 z; ]  o4 T
0 O* G! V( h% F) P$ B/ F" ]3 l
20200825202952731.png
" y- Q: Q7 M% j9 r% l4 i, J; ]
* r" c& Z0 z5 C9 b/ ]5.3 TIMx 从模式控制寄存器 (TIMx_SMCR)6 K0 U; w" e9 |" A  z
TIMx slave mode control register
! n' Q8 e' ~' ]8 y偏移地址:0x08  f2 G" [! N2 A0 ]
复位值:0x0000$ v1 ?. D* _7 c9 G

' k  z1 R# \0 q" [5 K6 O; y9 N8 H 20200825203001370.png
) j  R+ j6 m4 `, S7 t/ f+ U( g, j
. R$ L! n+ g- B; f' L5.4 TIMx DMA/ 中断使能寄存器 (TIMx_DIER)
0 }& f- L) @5 i4 H; |4 t% x6 rTIMx DMA/Interrupt enable register
7 g1 Q" I5 E1 t" U1 Z! \7 Q偏移地址:0x0C
5 K, v4 ]5 E) I5 h6 K6 \复位值:0x0000
9 ^: z/ W4 S2 |7 y" J& z7 f# i$ ?
& `8 `% L& g& v7 F; { 2020082520301336.png
) `$ C& M, d$ C, h
3 f! M- u1 x. y6 l5.5 TIMx 状态寄存器 (TIMx_SR)+ _8 W( j  d- N4 {0 P
TIMx status register4 R4 u$ t7 q: v! ]  I) x
偏移地址:0x10
/ Z0 x8 m7 h7 \, e7 u3 t8 g( C复位值:0x0000* A- _+ R- H3 t& z9 n9 b
! k1 k2 a. O9 _$ J' @" }
20200825203021983.png + O6 E5 j( m# b  S8 F! Z- t+ b2 ~0 f
" A  l) L0 `: H. v$ n0 M
5.6 TIMx 事件生成寄存器 (TIMx_EGR): `7 o! [$ s8 F, e3 x) k
TIMx event generation register
7 o/ p9 u4 I/ |- {2 Q  }5 Y偏移地址:0x14" H: L1 g* ~. o, O/ g3 |
复位值:0x0000
8 j. _7 X9 e- Q3 A  X+ R
! F/ G& r4 F4 n& D8 {1 c5 A, ? 20200825203030607.png ' f3 J; E3 e& \+ j; }4 s; j
" g& J3 L" f; R+ p, |7 I
5.7 TIMx 捕获/ 比较模式寄存器 1 (TIMx_CCMR1)
7 a! ?: z9 d1 x: W* ITIMx capture/compare mode register 1
& I0 I7 M( P7 N6 W9 z) m+ e, o偏移地址:0x18; s0 _6 G0 b; A8 R  U4 X
复位值:0x0000- N) f8 w; J, P' q0 J! c

& J" o9 [& }$ [# y. n+ Z) L" Q 20200825203039652.png   b3 g9 b4 A# H5 q2 q

$ y( o; m1 s$ ?- G- t. \5.8 TIMx 捕获/ 比较模式寄存器 2 (TIMx_CCMR2)' M4 z8 p# }; }" k) t! s" J7 N# p
TIMx capture/compare mode register 2, h; b; r6 u3 Q  o
偏移地址:0x1C
" [5 R8 f* N* |. S9 i6 T复位值:0x0000
3 e7 i) L* d* P2 g, |' j) ~  O/ D! i4 ]
20200825203051185.png
7 Z" y" g1 i" W  v) G2 M/ p
3 U% E  e+ L9 t1 f, _  I  I1 }5.9 TIMx 捕获/ 比较使能寄存器 (TIMx_CCER)
  k1 V+ r7 a- w5 G. o0 gTIMx capture/compare enable register0 u9 v/ A9 W+ {2 X% ^$ _
偏移地址:0x20
* }7 `  F$ l1 Y+ e7 F1 b0 D8 H复位值:0x0000
! A" U8 c- U& W6 k8 t7 [5 }- ]0 R, }2 y+ k
20200825203102283.png 6 B; n2 E  x/ O& }' t  y
& o! _# _: \6 t9 w+ F) _6 H& f- Y
5.10 TIMx 计数器 (TIMx_CNT)
5 G5 k. L9 ~5 n6 B0 kTIMx counter1 v9 J3 b: l. H. g, Z/ z
偏移地址:0x241 x, f2 \7 v, q$ G% `( X: o+ J: L
复位值:0x00008 U/ @% t/ b+ L, q) A6 C

+ Q+ S4 _# A5 a, r6 X% q 20200825203111788.png 1 @* y9 w: W% D4 ^/ w% S' ]
: e# X5 A4 f# J% ]1 y, _
5.11 TIMx 预分频器 (TIMx_PSC)
2 A' w( s3 }; ]8 F9 Z* [TIMx prescaler
, {; \  k& J3 j/ f# s* e0 c* a偏移地址:0x28
" ~9 P  P: Y: q6 j7 Y& N; \% s复位值:0x0000
6 G% P& w, ]4 ~4 c% {. h. t
- T" m" x3 c0 }/ c) y# _! G 20200825203122418.png
5 \) i- T) k, L) R$ z) w0 A. v9 }" s' M5 n* e& v, Y/ r
5.12 TIMx 自动重载寄存器 (TIMx_ARR)- ~# F$ m+ a: ?# W: N- c
TIMx auto-reload register+ Q$ K$ w$ a: e+ N9 W
偏移地址:0x2C
7 C: c/ k( J% H& o& z( I复位值:0x00007 ]2 w* b& `) B% J& l
' C/ l& T4 \7 F# t
2020082520313019.png
- G' g; ]3 `9 n+ O2 W* b* e' K+ y/ i
; \" R9 {! a' F  Y8 v5.13 TIMx 捕获/ 比较寄存器 1 (TIMx_CCR1)
! p/ l0 d$ f' u( |* t3 rTIMx capture/compare register 1
1 K* B# D) T  X" \) o2 L偏移地址:0x34
7 U, ~# B. E7 w* B复位值:0x0000 000
- j0 c* f7 L6 I: L7 l4 r& Q$ }' }" s' R% L. {7 p1 A0 Z( c) b) L
5.14 TIMx 捕获/ 比较寄存器 2 (TIMx_CCR2). x" Q. e2 r5 f" N' Z
TIMx capture/compare register 2
9 Q, \/ b4 M. b6 i偏移地址:0x38
8 U: ]; O7 c' C: z5 U) J6 K7 n0 b复位值:0x0000 0000
3 y0 z* r; q$ O; z8 z( Y# W9 b$ L$ Q' _
9 q; _: G& X7 y& T, z4 p) ? 20200825203142677.png 9 z% U/ a' n0 T9 g) j
% L7 J; x* d' _  f- Y* R( e( q( m
5.15 TIMx 捕获/ 比较寄存器 3 (TIMx_CCR3)
; J# }; H" R' z  ~) Q% V7 p; ^  jTIMx capture/compare register 3
8 c1 s& [( f% J' P& n7 e; U# J偏移地址:0x3C' g( w1 m  Z  d4 |( X+ t6 ~
复位值:0x0000 0000
, c) n8 {" a& Z7 C6 `
% q: p7 A  l8 d/ ]  Q' d) I9 r 20200825203158191.png
: j7 u) m7 j  e  X& L4 k3 c! {, f* V7 r8 M8 A9 y6 z7 b
5.16 TIMx 捕获/ 比较寄存器 4 (TIMx_CCR4)3 S5 ]: H9 Q5 s7 r6 Y+ Z! K/ B' M
TIMx capture/compare register 4# l$ W( m9 d2 t# v- U) k* P+ R8 y
偏移地址:0x40
4 E' w0 l( q; r复位值:0x0000 00008 h+ x1 R  E& y" L9 \1 |

# B1 J$ r1 n. r% ` 20200825203209253.png 8 M9 |6 Y- ]  A: L$ c9 \

8 c$ U  \! M/ M. X7 I1 w5.17 TIMx DMA 控制寄存器 (TIMx_DCR)
9 \) r# b1 `9 V5 V, _TIMx DMA control register
8 [8 a( L9 ^- x. {- E4 J  y偏移地址:0x48
6 f6 S! N5 n" S复位值:0x0000
7 Q5 V, B* W- Y5 \) h7 W6 z5 ?' O) M$ c( d4 u4 [
20200825203219175.png
7 M$ @) i1 a8 w4 ?5 w" }. T) h9 {. e, ]0 C( [
5.18 TIMx 全传输 DMA 地址 (TIMx_DMAR)
! }5 }5 K. g9 r. N& OTIMx DMA address for full transfer1 @; Y) ^2 |* z$ Z, ^6 |
偏移地址:0x4C
6 _4 V' r% T7 T/ s, H复位值:0x0000
# v% e: c4 f- ]- o2 ?: _5 G, L( c. m* H- f2 ?  F' q7 U
20200825203227355.png - `) C: M1 x5 I" X/ N- a% ]  l

+ k& A" k6 |/ d1 ^) ^5.19 TIM2 选项寄存器 (TIM2_OR). {0 \$ n0 y9 u) f4 _0 X
TIM2 option register$ R, s1 z: j& `
偏移地址:0x50
" {2 B0 W* ?1 Y' D6 R' u) U复位值:0x0000
" v- |" H+ J! k) Y  d8 m5 Y' N, V5 _" h, Q6 c
20200825203239310.png " \& f( j* ~: G2 c# ^+ }) P
# \% q3 g7 ~' ~( u6 ~
5.20 TIM5 选项寄存器 (TIM5_OR)" o; H  r0 Z3 S& G
TIM5 option register' f5 _) k5 m# Q# ^  m' w3 s
偏移地址:0x50
4 o2 N# C2 ~( J$ Q9 C* K复位值:0x0000
5 Z. ~7 ~9 F3 A1 n8 v9 d5 C/ ?* N) c% i
20200825203246817.png
+ S; F. V. x6 X$ Q& I7 V4 q9 N1 `; F) d6 L* R! j9 _; @1 f' W3 P0 x/ w$ d

9 ?1 z9 p4 Y. D* h3 l* \5 R9 v8 \% \
  g% d# M" W4 i0 a* R. D
赞 收藏 评论0 发布时间:2022-6-13 17:33

举报

0个回答

所属标签

相似技术帖

官网相关资源

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