|
STM32F1xx、STM32F2xx、STM32F4xx、STM32L1xx、STM32F30/31/37/38x 定时器概览* P4 U5 Y5 }6 E( X* Y" b% H& x: o) L `' w) d0 Z8 s2 x2 ?( c9 Z9 f" u 前言 5 L6 Z% J5 E/ ]- @, A ) F' M4 g) n% l9 s. V6 ~+ i 本文档: ' n) a# W* P- T6 G0 y# C# e ● 概述了 STM32F1xx、STM32F2xx、STM32F4xx、STM32L1xx 和 STM32F30/31/37/38x微控制器系列的定时器外设; 6 A) X+ o; K; o4 }' q ● 介绍了定时器的多种模式和特殊功能,如时钟源; % W( A% K; o0 {5 z! g5 y9 F ● 介绍了如何使用各种可用模式与功能; ● 介绍了如何计算各种配置下的时基; $ i* ^" {' o* E% D) T ● 除基本定时器模式外,还介绍了定时器同步序列以及用于电机控制应用的高级功能。 # K2 y- I4 r/ h/ d" |, U+ i" a) Z . o' n$ y: x I5 z( a 本文档针对各模式提供了典型配置以及使用方法的示例。除非另外说明,本文档余下部分中的术语 STM32xx 均用于指代 STM32F1xx、STM32F2xx、STM32F4xx、 STM32L1xx 和 STM32F30/31/37/38x 微控制器系列。 , h+ ?$ p# j- p( K. q9 d k$ T
1 概述 4 C1 r2 @4 y0 O, R. V# {+ r1 q- E8 SSTM 32 器件使用多种类型的定时器,各种定时器特点如下: ● 通用定时器:可用于输出比较(时序和延迟生成)、单脉冲模式、输入捕捉(用于测量外部信号频率)、传感器接口(编码器和霍尔传感器)等各种场合。 ) h( r8 Z) l4 c2 q- s● 高级定时器:此类定时器的功能最多。除通用功能外,它们还包含一些与电机控制和数字能量转换应用相关的功能:三个带死区控制的互补信号以及紧急关断输入。 ● 单通道或双通道定时器:用作通用定时器,通道数有限。 ● 带互补输出的单通道或双通道定时器:与上一类型相同,只是其中一个通道上具有死区发生器。这样可得到时基与高级定时器无关的互补信号。 7 D5 @ q$ J( W3 L0 F2 K7 X( ?! n& o● 基本定时器:没有任何输入/输出,既可用作时基定时器,也可用于触发 DAC 外设。 7 g4 T' X u% C5 p* f, C: A% S2 a: c k表 2 汇总了 STM32 系列定时器。 表 3 给出了定时器特性的总览。 ; Q S( `/ E6 r. q9 ] I: X/ a
注: STM32F30x 和 STM32F31x 定时器还具有一些新模式:不对称模式、混合模式、单脉冲可重复触发模式、混合 3 相 PWM 模式以及次级断路输入,这些模式仅适用于这两种系列。
2 基本定时器模式 # H9 K8 I/ L# X+ f- \0 T基本定时器经过编程可在以下其中一种配置下工作。 2.1 时钟输入源 定时器可同时与多个时钟同步: ● 内部时钟 & w( ^8 N% C" M( @● 外部时钟 2 K: z* o! t6 s4 p$ p) j6 |3 H. l— 外部时钟模式 1(TI1 或 TI2 引脚) — 外部时钟模式 2(ETR 引脚) 6 s, a0 ?& P/ S- ^0 |# a— 内部触发时钟 (ITRx) $ E+ @* E9 ]/ d- l6 B2.1.1 内部时钟 默认情况下,定时器由 RCC 提供的内部时钟驱动。要选择该时钟源,应该将 SMCR_SMS(如果存在)位复位。 2.1.2 外部时钟 / m: K$ k) B Z% X2 V外部时钟定时器分为两类: ● 连接到 TI1 或 TI2 引脚的外部时钟 ● 连接到 ETR 引脚的外部时钟在上述情况下,通过与 TIx 引脚或 ETR 引脚连接的外部信号提供时钟。并且应该验证最大外部时钟频率。 + I/ \+ O1 ~! c( ?8 W) c注: 1 除以上所有时钟源外,定时器还应该通过 APBx 时钟驱动。2 外部时钟并非直接馈送预分频器,而是首先通过专用逻辑块与 APBx 时钟同步。 ! y" }9 q7 A6 L! p% R外部时钟模式 1(TI1 或 TI2 引脚) 7 K$ i* v5 b" _6 A* |$ J! i在此模式下,外部时钟将施加到定时器的输入引脚 TI1 或 TI2 上。为此: 1. 配置定时器将 TIx 引脚用作输入: ' s+ q1 Q7 S) _ |. U% J, ca) 通过对 TIMx_CCMR1 寄存器中的 CCxS 位执行写操作,选择要使用的引脚。 ) E1 ~: Y5 g8 Hb) 选择输入的极性:对于 STM32F10x 系列:通过对 TIMx_CCER 寄存器中的 CCxP 位执行写操作,选择上升沿触发或下降沿触发;对于其它系列:通过对 TIMx_CCER 寄存器中的 CCxP 和 CCxNP 位执行写操作,选择上升/下降沿触发,或者边沿触发(a)。 * D* V% D- m4 R- W4 q! ?* b* W; w0 t# n& |& }+ I |
| 图图?嗯哼? |
微信公众号
手机版