定时器和外部触发的同步

目录

从模式:复位模式

从模式:门控模式

从模式:触发模式

从模式:外部时钟模式2 + 触发模式

相关寄存器参考

控制寄存器 1(TIMx_CR1)

从模式控制寄存器(TIMx_SMCR)

DMA/中断使能寄存器(TIMx_DIER)

状态寄存器(TIMx_SR)

捕获/比较模式寄存器 1(TIMx_CCMR1)

捕获/比较使能寄存器(TIMx_CCER)


为了方便阅读,本文涉及到的寄存器位在文后已做黄色标注。

​​​​​​​定时器之间的同步请看:http://t.csdn.cn/IoD3C


TIMx定时器能够在多种模式下和一个外部的触发同步:复位模式、门控模式和触发模式。

 图1 定时器框图 

从模式:复位模式

       在发生一个触发输入事件时,计数器和它的预分频器能够重新被初始化;同时,如果TIMx_CR1 寄存器的URS位为低,还会产生一个更新事件UEV;然后所有的预装载寄存器(TIMx_ARR, TIMx_CCRx)都会被更新。

        在下面的例子中,TI1输入端的上升沿导致向上计数器被清零:

        ● 配置通道1以检测TI1的上升沿。配置输入滤波器的带宽(在本例中,不需要任何滤波器,因此保持IC1F = 0000)。触发操作中不使用捕获预分频器,所以不需要配置它。CC1S位只选择输入捕获源,即TIMx_CCMR1寄存器中CC1S=01。置TIMx_CCER寄存器中CC1P=0以确定极性(只检测上升沿)。

        ● 置TIMx_SMCR寄存器中SMS=100,配置定时器为复位模式;置TIMx_SMCR寄存器中 TS =101,选择TI1作为输入源。

        ● 置TIMx_CR1寄存器中CEN=1,启动计数器。

       计数器开始依据内部时钟计数,然后正常运转直到TI1出现一个上升沿;此时,计数器被清零然后从0重新开始计数。同时,触发标志(TIMx_SR寄存器中的TIF位)被设置,根据TIMx_DIER寄 存器中TIE(中断使能)位和TDE(DMA使能)位的设置,产生一个中断请求或一个DMA请求。

       下图显示当自动重装载寄存器TIMx_ARR=0x36时的动作。在TI1上升沿和计数器的实际复位之间的延时,取决于TI1输入端的重同步电路。

图2  复位模式下的电路信号

从模式:门控模式

       按照选中的输入端电平使能计数器。 在如下的例子中,计数器只在TI1为低时向上计数:

      ● 配置通道1以检测TI1上的低电平。配置输入滤波器带宽(本例中,不需要滤波,所以保持 IC1F =0000)。触发操作中不使用捕获预分频器,所以不需要配置。CC1S位用于选择输入捕获源,置TIMx_CCMR1寄存器中CC1S=01。置TIMx_CCER寄存器中CC1P=1以确定极性(只检测低电平)。

      ● 置TIMx_SMCR寄存器中SMS=101,配置定时器为门控模式;置TIMx_SMCR寄存器中 TS =101,选择TI1作为输入源。

      ● 置TIMx_CR1寄存器中CEN=1,启动计数器。在门控模式下,如果CEN=0,则计数器不能启动,不论触发输入电平如何。

      只要TI1为低,计数器开始依据内部时钟计数,在TI1变高时停止计数。当计数器开始或停止时都设置TIMx_SR中的TIF标置。

      TI1上升沿和计数器实际停止之间的延时,取决于TI1输入端的重同步电路。

图3 门控模式下的电路信号 

从模式:触发模式

       输入端上选中的事件使能计数器。

       在下面的例子中,计数器在TI2输入的上升沿开始向上计数:

       ● 配置通道2检测TI2的上升沿。配置输入滤波器带宽(本例中,不需要任何滤波器,保持 IC2F=0000)。触发操作中不使用捕获预分频器,不需要配置。CC2S位只用于选择输入捕获源,置TIMx_CCMR1寄存器中CC2S=01。置TIMx_CCER寄存器中CC2P=1以确定极性 (只检测低电平)。

       ● 置TIMx_SMCR寄存器中SMS=110,配置定时器为触发模式;置TIMx_SMCR寄存器中 TS=110,选择TI2作为输入源。

       当TI2出现一个上升沿时,计数器开始在内部时钟驱动下计数,同时设置TIF标志。

       TI2上升沿和计数器启动计数之间的延时,取决于TI2输入端的重同步电路。

图4 触发模式下的电路信号

从模式:外部时钟模式2 + 触发模式

        外部时钟模式2可以与另一种从模式(外部时钟模式1和编码器模式除外)一起使用。这时,ETR信号被用作外部时钟的输入,在复位模式、门控模式或触发模式时可以选择另一个输入作为触发输入。不建议使用TIMx_SMCR寄存器的TS位选择ETR作为TRGI。

       下面的例子中,TI1上出现一个上升沿之后,计数器即在ETR的每一个上升沿向上计数一次:

       1. 通过TIMx_SMCR寄存器配置外部触发输入电路:

                ─ ETF=0000:没有滤波

                ─ ETPS=00:不用预分频器

                ─ ETP=0:检测ETR的上升沿,置ECE=1使能外部时钟模式2

       2. 按如下配置通道1,检测TI的上升沿:

                ─ IC1F=0000:没有滤波

                ─ 触发操作中不使用捕获预分频器,不需要配置

                ─ 置TIMx_CCMR1寄存器中CC1S=01,选择输入捕获源

                ─ 置TIMx_CCER寄存器中CC1P=0以确定极性(只检测上升沿)

       3. 置TIMx_SMCR寄存器中SMS=110,配置定时器为触发模式。置TIMx_SMCR寄存器中 TS=101,选择TI1作为输入源。 当TI1上出现一个上升沿时,TIF标志被设置,计数器开始在ETR的上升沿计数。 ETR信号的上升沿和计数器实际复位间的延时,取决于ETRP输入端的重同步电路。

图5 外部时钟模式2 + 触发模式下的电路信号

相关寄存器参考

控制寄存器 1(TIMx_CR1)

偏移地址:0x00

复位值:0x0000

位15:10保留,始终读为0。
位9:8

CKD[1:0]: 时钟分频因子 (Clock division)

定义在定时器时钟(CK_INT)频率与数字滤波器(ETR,TIx)使用的采样频率之间的分频比例。

00:tDTS = tCK_INT

01:tDTS = 2 x tCK_INT

10:tDTS = 4 x tCK_INT

11:保留

位7

ARPE:自动重装载预装载允许位 (Auto-reload preload enable)

0:TIMx_ARR寄存器没有缓冲;

1:TIMx_ARR寄存器被装入缓冲器。

位6:5

CMS[1:0]:选择中央对齐模式 (Center-aligned mode selection)

00:边沿对齐模式。计数器依据方向位(DIR)向上或向下计数。

01:中央对齐模式1。计数器交替地向上和向下计数。配置为输出的通道(TIMx_CCMRx寄存器 中CCxS=00)的输出比较中断标志位,只在计数器向下计数时被设置。

10:中央对齐模式2。计数器交替地向上和向下计数。配置为输出的通道(TIMx_CCMRx寄存器 中CCxS=00)的输出比较中断标志位,只在计数器向上计数时被设置。

11:中央对齐模式3。计数器交替地向上和向下计数。配置为输出的通道(TIMx_CCMRx寄存器 中CCxS=00)的输出比较中断标志位,在计数器向上和向下计数时均被设置。

注:在计数器开启时(CEN=1),不允许从边沿对齐模式转换到中央对齐模式。

位4

DIR:方向 (Direction)

0:计数器向上计数;

1:计数器向下计数。

注:当计数器配置为中央对齐模式或编码器模式时,该位为只读。

位3

OPM:单脉冲模式 (One pulse mode)

0:在发生更新事件时,计数器不停止;

1:在发生下一次更新事件(清除CEN位)时,计数器停止。

位2

URS:更新请求源 (Update request source)

软件通过该位选择UEV事件的源

0:如果使能了更新中断或DMA请求,则下述任一事件产生更新中断或DMA请求:

        − 计数器溢出/下溢

        − 设置UG位

        − 从模式控制器产生的更新

1:如果使能了更新中断或DMA请求,则只有计数器溢出/下溢才产生更新中断或DMA请求。

位1

UDIS:禁止更新 (Update disable)

软件通过该位允许/禁止UEV事件的产生

0:允许UEV。更新(UEV)事件由下述任一事件产生:

        − 计数器溢出/下溢

        − 设置UG位

        − 从模式控制器产生的更新具有缓存的寄存器被装入它们的预装载值。(译注:更新影子寄存器)

1:禁止UEV。不产生更新事件,影子寄存器(ARR、PSC、CCRx)保持它们的值。如果设置了 UG位或从模式控制器发出了一个硬件复位,则计数器和预分频器被重新初始化。

位0

CEN:使能计数器

0:禁止计数器;

1:使能计数器。

注:在软件设置了CEN位后,外部时钟、门控模式和编码器模式才能工作。

触发模式可以自动地通过硬件设置CEN位。 在单脉冲模式下,当发生更新事件时,CEN被自动清除。

从模式控制寄存器(TIMx_SMCR)

偏移地址:0x08

复位值:0x0000

位15

ETP:外部触发极性 (External trigger polarity)

该位选择是用ETR还是ETR的反相来作为触发操作

0:ETR不反相,高电平或上升沿有效;

1:ETR被反相,低电平或下降沿有效。

位14

ECE:外部时钟使能位 (External clock enable)

该位启用外部时钟模式2

0:禁止外部时钟模式2;

1:使能外部时钟模式2。计数器由ETRF信号上的任意有效边沿驱动。

注1:设置ECE位与选择外部时钟模式1并将TRGI连到ETRF(SMS=111和TS=111)具有相同功 效。

注2:下述从模式可以与外部时钟模式2同时使用:复位模式、门控模式和触发模式;但是,这 时TRGI不能连到ETRF(TS位不能是’111’)。

注3:外部时钟模式1和外部时钟模式2同时被使能时,外部时钟的输入是ETRF。

位13:12

ETPS[1:0]:外部触发预分频 (External trigger prescaler)

外部触发信号ETRP的频率必须最多是CK_INT频率的1/4。当输入较快的外部时钟时,可以使 用预分频降低ETRP的频率。

00:关闭预分频;

01:ETRP频率除以2;

10:ETRP频率除以4;

11:ETRP频率除以8。

位11:8

ETF[3:0]:外部触发滤波 (External trigger filter)

这些位定义了对ETRP信号采样的频率和对ETRP数字滤波的带宽。实际上,数字滤波器是一个 事件计数器,它记录到N个事件后会产生一个输出的跳变。

0000:无滤波器,以fDTS采样                            1000:采样频率fSAMPLING=fDTS/8,N=6

0001:采样频率fSAMPLING=fCK_INT,N=2     1001:采样频率fSAMPLING=fDTS/8,N=8

0010:采样频率fSAMPLING=fCK_INT,N=4     1010:采样频率fSAMPLING=fDTS/16,N=5

0011:采样频率fSAMPLING=fCK_INT,N=8     1011:采样频率fSAMPLING=fDTS/16,N=6

0100:采样频率fSAMPLING=fDTS/2,N=6        1100:采样频率fSAMPLING=fDTS/16,N=8

0101:采样频率fSAMPLING=fDTS/2,N=8        1101:采样频率fSAMPLING=fDTS/32,N=5

0110:采样频率fSAMPLING=fDTS/4,N=6        1110:采样频率fSAMPLING=fDTS/32,N=6

0111:采样频率fSAMPLING=fDTS/4,N=8        1111:采样频率fSAMPLING=fDTS/32,N=8

位7

MSM:主/从模式 (Master/slave mode)

0:无作用;

1:触发输入(TRGI)上的事件被延迟了,以允许在当前定时器(通过TRGO)与它的从定时器间的 完美同步。这对要求把几个定时器同步到一个单一的外部事件时是非常有用的。

位6:4

TS[2:0]:触发选择 (Trigger selection)

这3位选择用于同步计数器的触发输入。

000:内部触发0(ITR0),TIM1                                 100:TI1的边沿检测器(TI1F_ED)

001:内部触发1(ITR1),TIM2                                 101:滤波后的定时器输入1(TI1FP1)

010:内部触发2(ITR2),TIM3                                 110:滤波后的定时器输入2(TI2FP2)

011:内部触发3(ITR3),TIM4                                 111:外部触发输入(ETRF)

关于每个定时器中ITRx的细节,参见表1。

注:这些位只能在未用到(如SMS=000)时被改变,以避免在改变时产生错误的边沿检测。

位3保留,始终读为0。
位2:0

SMS[2:0]:从模式选择 (Slave mode selection)

当选择了外部信号,触发信号(TRGI)的有效边沿与选中的外部输入极性相关(见输入控制寄存器 和控制寄存器的说明)

000:关闭从模式 – 如果CEN=1,则预分频器直接由内部时钟驱动。

001:编码器模式1 – 根据TI1FP1的电平,计数器在TI2FP2的边沿向上/下计数。

010:编码器模式2 – 根据TI2FP2的电平,计数器在TI1FP1的边沿向上/下计数。

011:编码器模式3 – 根据另一个信号的输入电平,计数器在TI1FP1和TI2FP2的边沿向上/下计 数。

100:复位模式 – 选中的触发输入(TRGI)的上升沿重新初始化计数器,并且产生一个更新寄存 器的信号。

101:门控模式 – 当触发输入(TRGI)为高时,计数器的时钟开启。一旦触发输入变为低,则计 数器停止(但不复位)。计数器的启动和停止都是受控的。

110:触发模式 – 计数器在触发输入TRGI的上升沿启动(但不复位),只有计数器的启动是受控 的。

111:外部时钟模式1 – 选中的触发输入(TRGI)的上升沿驱动计数器。

注:如果TI1F_EN被选为触发输入(TS=100)时,不要使用门控模式。这是因为,TI1F_ED在每 次TI1F变化时输出一个脉冲,然而门控模式是要检查触发输入的电平。

表1 TIMx内部触发连接
从定时器ITR0 (TS = 000)ITR1 (TS = 001)ITR2 (TS = 010)ITR3 (TS = 011)
TIM2TIM1TIM8TIM3TIM4
TIM3TIM1TIM2TIM5TIM4
TIM4TIM1TIM2TIM3TIM8
TIM5TIM2TIM3TIM4TIM8

DMA/中断使能寄存器(TIMx_DIER)

偏移地址:0x0C

复位值:0x0000

位15保留,始终读为0。
位14

TDE:允许触发DMA请求 (Trigger DMA request enable)

0:禁止触发DMA请求;

1:允许触发DMA请求。

位13保留,始终读为0。
位12

CC4DE:允许捕获/比较4的DMA请求 (Capture/Compare 4 DMA request enable)

0:禁止捕获/比较4的DMA请求;

1:允许捕获/比较4的DMA请求。

位11

CC3DE:允许捕获/比较3的DMA请求 (Capture/Compare 3 DMA request enable)

0:禁止捕获/比较3的DMA请求;

1:允许捕获/比较3的DMA请求。

位10

CC2DE:允许捕获/比较2的DMA请求 (Capture/Compare 2 DMA request enable)

0:禁止捕获/比较2的DMA请求;

1:允许捕获/比较2的DMA请求。

位9

CC1DE:允许捕获/比较1的DMA请求 (Capture/Compare 1 DMA request enable)

0:禁止捕获/比较1的DMA请求;

1:允许捕获/比较1的DMA请求。

位8

UDE:允许更新的DMA请求 (Update DMA request enable)

0:禁止更新的DMA请求;

1:允许更新的DMA请求。

位7保留,始终读为0。
位6

TIE:触发中断使能 (Trigger interrupt enable)

0:禁止触发中断;

1:使能触发中断。

位5保留,始终读为0。
位4

CC4IE:允许捕获/比较4中断 (Capture/Compare 4 interrupt enable)

0:禁止捕获/比较4中断;

1:允许捕获/比较4中断。

位3

CC3IE:允许捕获/比较3中断 (Capture/Compare 3 interrupt enable)

0:禁止捕获/比较3中断;

1:允许捕获/比较3中断。

位2

CC2IE:允许捕获/比较2中断 (Capture/Compare 2 interrupt enable)

0:禁止捕获/比较2中断;

1:允许捕获/比较2中断。

位1

CC1IE:允许捕获/比较1中断 (Capture/Compare 1 interrupt enable)

0:禁止捕获/比较1中断;

1:允许捕获/比较1中断。

位0

UIE:允许更新中断 (Update interrupt enable)

0:禁止更新中断;

1:允许更新中断。

状态寄存器(TIMx_SR)

偏移地址:0x10

复位值:0x0000

位15:13保留,始终读为0。
位12

CC4OF:捕获/比较4重复捕获标记 (Capture/Compare 4 overcapture flag)

参见CC1OF描述。

位11

CC3OF:捕获/比较3重复捕获标记 (Capture/Compare 3 overcapture flag)

参见CC1OF描述。

位10

CC2OF:捕获/比较2重复捕获标记 (Capture/Compare 2 overcapture flag)

参见CC1OF描述。

位9

CC1OF:捕获/比较1重复捕获标记 (Capture/Compare 1 overcapture flag)

仅当相应的通道被配置为输入捕获时,该标记可由硬件置’1’。写’0’可清除该位。

0:无重复捕获产生;

1:当计数器的值被捕获到TIMx_CCR1寄存器时,CC1IF的状态已经为’1’。

位8:7保留,始终读为0。
位6

TIF:触发器中断标记 (Trigger interrupt flag)

当发生触发事件(当从模式控制器处于除门控模式外的其它模式时,在TRGI输入端检测到有效 边沿,或门控模式下的任一边沿)时由硬件对该位置’1’。它由软件清’0’。

0:无触发器事件产生;

1:触发器中断等待响应。

位5保留,始终读为0。
位4

CC4IF:捕获/比较4 中断标记 (Capture/Compare 4 interrupt flag)

参考CC1IF描述。

位3

CC3IF:捕获/比较3 中断标记 (Capture/Compare 3 interrupt flag)

参考CC1IF描述。

位2

CC2IF:捕获/比较2 中断标记 (Capture/Compare 2 interrupt flag)

参考CC1IF描述。

位1

CC1IF:捕获/比较1 中断标记 (Capture/Compare 1 interrupt flag)

如果通道CC1配置为输出模式:

当计数器值与比较值匹配时该位由硬件置’1’,但在中心对称模式下除外(参考TIMx_CR1寄存器 的CMS位)。它由软件清’0’。

0:无匹配发生;

1:TIMx_CNT的值与TIMx_CCR1的值匹配。

如果通道CC1配置为输入模式:

当捕获事件发生时该位由硬件置’1’,它由软件清’0’或通过读TIMx_CCR1清’0’。

0:无输入捕获产生;

1:计数器值已被捕获(拷贝)至TIMx_CCR1(在IC1上检测到与所选极性相同的边沿)。

位0

UIF:更新中断标记 (Update interrupt flag)

当产生更新事件时该位由硬件置’1’。它由软件清’0’。

0:无更新事件产生;

1:更新中断等待响应。当寄存器被更新时该位由硬件置’1’:

        − 若TIMx_CR1寄存器的UDIS=0、URS=0,当TIMx_EGR寄存器的UG=1时产生更新事件 (软件对计数器CNT重新初始化);

        − 若TIMx_CR1寄存器的UDIS=0、URS=0,当计数器CNT被触发事件重初始化时产生更新 事件。(参考同步控制寄存器的说明)

捕获/比较模式寄存器 1(TIMx_CCMR1)

偏移地址:0x18

复位值:0x0000

通道可用于输入(捕获模式)或输出(比较模式),通道的方向由相应的CCxS定义。该寄存器其它 位的作用在输入和输出模式下不同。OCxx描述了通道在输出模式下的功能,ICxx描述了通道在 输出模式下的功能。因此必须注意,同一个位在输出模式和输入模式下的功能是不同的。

输出比较模式
位15OC2CE:输出比较2清0使能 (Output compare 2 clear enable)
位14:12OC2M[2:0]:输出比较2模式 (Output compare 2 mode)
位11OC2PE:输出比较2预装载使能 (Output compare 2 preload enable)
位10OC2FE:输出比较2快速使能 (Output compare 2 fast enable)
位9:8

CC2S[1:0]:捕获/比较2选择 (Capture/Compare 2 selection)

该位定义通道的方向(输入/输出),及输入脚的选择:

00:CC2通道被配置为输出;

01:CC2通道被配置为输入,IC2映射在TI2上;

10:CC2通道被配置为输入,IC2映射在TI1上;

11:CC2通道被配置为输入,IC2映射在TRC上。此模式仅工作在内部触发器输入被选中时(由 TIMx_SMCR寄存器的TS位选择)。

注:CC2S仅在通道关闭时(TIMx_CCER寄存器的CC2E=’0’)才是可写的。

位7

OC1CE:输出比较1清0使能 (Output compare 1 clear enable)

0:OC1REF 不受ETRF输入的影响;

1:一旦检测到ETRF输入高电平,清除OC1REF=0。

位6:4

OC1M[2:0]:输出比较1模式 (Output compare 1 enable)

该3位定义了输出参考信号OC1REF的动作,而OC1REF决定了OC1的值。OC1REF是高电平 有效,而OC1的有效电平取决于CC1P位。

000:冻结。输出比较寄存器TIMx_CCR1与计数器TIMx_CNT间的比较对OC1REF不起作用;

001 :匹配时设置通道 1 为有效电平。当计数器 TIMx_CNT 的值与捕获 / 比较寄存器 1 (TIMx_CCR1)相同时,强制OC1REF为高。

010 :匹配时设置通道 1 为无效电平。当计数器 TIMx_CNT 的值与捕获 / 比较寄存器 1 (TIMx_CCR1)相同时,强制OC1REF为低。

011:翻转。当TIMx_CCR1=TIMx_CNT时,翻转OC1REF的电平。

100:强制为无效电平。强制OC1REF为低。

101:强制为有效电平。强制OC1REF为高。

110:PWM模式1- 在向上计数时,一旦TIMx_CNTTIMx_CCR1时通道1为无效电平(OC1REF=0),否 则为有效电平(OC1REF=1)。

111:PWM模式2- 在向上计数时,一旦TIMx_CNTTIMx_CCR1时通道1为有效电平,否则为无效电 平。

注1:一旦LOCK级别设为3(TIMx_BDTR寄存器中的LOCK位)并且CC1S=’00’(该通道配置成输 出)则该位不能被修改。

注2:在PWM模式1或PWM模式2中,只有当比较结果改变了或在输出比较模式中从冻结模式 切换到PWM模式时,OC1REF电平才改变。

位3

OC1PE:输出比较1预装载使能 (Output compare 1 preload enable)

0:禁止TIMx_CCR1寄存器的预装载功能,可随时写入TIMx_CCR1寄存器,并且新写入的数 值立即起作用。

1:开启TIMx_CCR1寄存器的预装载功能,读写操作仅对预装载寄存器操作,TIMx_CCR1的 预装载值在更新事件到来时被传送至当前寄存器中。

注1:一旦LOCK级别设为3(TIMx_BDTR寄存器中的LOCK位)并且CC1S=’00’(该通道配置成输 出)则该位不能被修改。

注2:仅在单脉冲模式下(TIMx_CR1寄存器的OPM=’1’),可以在未确认预装载寄存器情况下使 用PWM模式,否则其动作不确定。

位2

OC1FE:输出比较1 快速使能 (Output compare 1 fast enable)

该位用于加快CC输出对触发器输入事件的响应。

0:根据计数器与CCR1的值,CC1正常操作,即使触发器是打开的。当触发器的输入出现一个 有效沿时,激活CC1输出的最小延时为5个时钟周期。

1:输入到触发器的有效沿的作用就象发生了一次比较匹配。因此,OC被设置为比较电平而与 比较结果无关。采样触发器的有效沿和CC1输出间的延时被缩短为3个时钟周期。

该位只在通道被配置成PWM1或PWM2模式时起作用。

位1:0

CC1S[1:0]:捕获/比较1 选择 (Capture/Compare 1 selection)

这2位定义通道的方向(输入/输出),及输入脚的选择:

00:CC1通道被配置为输出;

01:CC1通道被配置为输入,IC1映射在TI1上;

10:CC1通道被配置为输入,IC1映射在TI2上;

11:CC1通道被配置为输入,IC1映射在TRC上。此模式仅工作在内部触发器输入被选中时(由 TIMx_SMCR寄存器的TS位选择)。

注:CC1S仅在通道关闭时(TIMx_CCER寄存器的CC1E=’0’)才是可写的。

输入捕获模式
位15:12IC2F[3:0]:输入捕获2滤波器 (Input capture 2 filter)
位11:10IC2PSC[1:0]:输入/捕获2预分频器 (input capture 2 prescaler)
位9:8

CC2S[1:0]:捕获/比较2选择 (Capture/compare 2 selection)

这2位定义通道的方向(输入/输出),及输入脚的选择:

00:CC2通道被配置为输出;

01:CC2通道被配置为输入,IC2映射在TI2上;

10:CC2通道被配置为输入,IC2映射在TI1上;

11:CC2通道被配置为输入,IC2映射在TRC上。此模式仅工作在内部触发器输入被选中时(由 TIMx_SMCR寄存器的TS位选择)。

注:CC2S仅在通道关闭时(TIMx_CCER寄存器的CC2E=’0’)才是可写的。

位7:4

IC1F[3:0]:输入捕获1滤波器 (Input capture 1 filter)

这几位定义了TI1输入的采样频率及数字滤波器长度。数字滤波器由一个事件计数器组成,它记录到N个事件后会产生一个输出的跳变:

0000:无滤波器,以fDTS采样                            1000:采样频率fSAMPLING=fDTS/8,N=6

0001:采样频率fSAMPLING=fCK_INT,N=2     1001:采样频率fSAMPLING=fDTS/8,N=8

0010:采样频率fSAMPLING=fCK_INT,N=4     1010:采样频率fSAMPLING=fDTS/16,N=5

0011:采样频率fSAMPLING=fCK_INT,N=8     1011:采样频率fSAMPLING=fDTS/16,N=6

0100:采样频率fSAMPLING=fDTS/2,N=6        1100:采样频率fSAMPLING=fDTS/16,N=8

0101:采样频率fSAMPLING=fDTS/2,N=8        1101:采样频率fSAMPLING=fDTS/32,N=5

0110:采样频率fSAMPLING=fDTS/4,N=6        1110:采样频率fSAMPLING=fDTS/32,N=6

0111:采样频率fSAMPLING=fDTS/4,N=8        1111:采样频率fSAMPLING=fDTS/32,N=8 注:在现在的芯片版本中,当ICxF[3:0]=1、2或3时,公式中的fDTS由CK_INT替代。

位3:2

IC1PSC[1:0]:输入/捕获1预分频器 (Input capture 1 prescaler)

这2位定义了CC1输入(IC1)的预分频系数。 一旦CC1E=’0’(TIMx_CCER寄存器中),则预分频器复位。

00:无预分频器,捕获输入口上检测到的每一个边沿都触发一次捕获;

01:每2个事件触发一次捕获;

10:每4个事件触发一次捕获;

11:每8个事件触发一次捕获。

位1:0

CC1S[1:0]:捕获/比较1选择 (Capture/Compare 1 selection)

这2位定义通道的方向(输入/输出),及输入脚的选择:

00:CC1通道被配置为输出;

01:CC1通道被配置为输入,IC1映射在TI1上;

10:CC1通道被配置为输入,IC1映射在TI2上;

11:CC1通道被配置为输入,IC1映射在TRC上。此模式仅工作在内部触发器输入被选中时(由 TIMx_SMCR寄存器的TS位选择)。

注:CC1S仅在通道关闭时(TIMx_CCER寄存器的CC1E=’0’)才是可写的。

捕获/比较使能寄存器(TIMx_CCER)

偏移地址:0x20

复位值:0x0000

位15:14保留,始终读为0。
位13

CC4P:输入/捕获4输出极性 (Capture/Compare 4 output polarity)

参考CC1P的描述。

位12

CC4E:输入/捕获4输出使能 (Capture/Compare 4 output enable)

参考CC1E 的描述。

位11:10保留,始终读为0。
位9

CC3P:输入/捕获3输出极性 (Capture/Compare 3 output polarity)

参考CC1P的描述。

位8

CC3E:输入/捕获3输出使能 (Capture/Compare 3 output enable)

参考CC1E 的描述。

位7:6保留,始终读为0。
位5

CC2P:输入/捕获2输出极性 (Capture/Compare 2 output polarity)

参考CC1P的描述。

位4

CC2E:输入/捕获2输出使能 (Capture/Compare 2 output enable)

参考CC1E的描述。

位3:2保留,始终读为0。
位1

CC1P:输入/捕获1输出极性 (Capture/Compare 1 output polarity)

CC1通道配置为输出:

0:OC1高电平有效

1:OC1低电平有效

CC1通道配置为输入:

该位选择是IC1还是IC1的反相信号作为触发或捕获信号。

0:不反相:捕获发生在IC1的上升沿;当用作外部触发器时,IC1不反相。

1:反相:捕获发生在IC1的下降沿;当用作外部触发器时,IC1反相。

位0

CC1E:输入/捕获1输出使能 (Capture/Compare 1 output enable)

CC1通道配置为输出:

0: 关闭- OC1禁止输出。

1: 开启- OC1信号输出到对应的输出引脚。

CC1通道配置为输入:

该位决定了计数器的值是否能捕获入TIMx_CCR1寄存器。

0:捕获禁止;

1:捕获使能。

  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
### 回答1: STM32定时器触发同步规则组是一种在STM32微控制器中使用的定时器配置模式。它的作用是利用定时器触发来实现多个外设之间的同步操作。 在STM32微控制器中,有多个定时器模块可用于不同的应用需求。这些定时器模块提供了多种功能,如计时、PWM输出、编码器输入等。在一些应用中,我们可能需要多个定时器模块以同步运行,此时就可以使用定时器触发同步规则组。 定时器触发同步规则组允许我们设置一个主定时器,并将其他定时器模块设置为从定时器。主定时器可以通过定时器的输出信号来驱动其他定时器模块的启动、停止、重装载等操作。这样,所有定时器模块的运行将同步在一起,提高了多个外设之间的协同工作效率。 在使用定时器触发同步规则组时,我们需要先配置定时器模块的时钟源、计数模式、重载值等参数。然后,在主定时器溢出或其他特定事件发生时,它会触发其他定时器模块执行相应的操作。这些触发事件可以是定时器中断、外部信号触发输入捕获等。 总的来说,通过STM32定时器触发同步规则组的使用,我们可以实现多个外设之间的同步操作,提高系统的性能和效率。但在配置和使用过程中,我们需要仔细考虑各个定时器模块的功能和参数设置,以确保它们能够按照要求同步工作。 ### 回答2: STM32定时器触发同步规则组是指在STM32系列微控制器中,通过配置定时器触发源和同步规则,实现定时器之间的同步操作。 同步规则组主要包括以下几种: 1. 软件同步:通过编程方式触发定时器的启动和停止操作,使多个定时器在同一时刻开始计时或停止计时。 2. 外部触发同步:通过配置定时器外部触发源,将多个定时器连接到同一个外部事件源上,使得这些定时器在相同的外部事件触发时开始计时或停止计时。 3. 主从同步:通过配置定时器的主时钟源(Master)和从时钟源(Slave),将多个定时器连接为主从关系,使得主定时器的计时周期可以控制从定时器的启动和停止。 4. 多级级联同步:通过配置定时器的级联模式,将多个定时器级联在一起,使得整个定时器系统按照级联顺序依次开始计时或停止计时。 通过合理配置同步规则组,可以实现多个定时器之间的同步操作,提高系统的定时精度和稳定性。同时,也可以根据具体应用需求,灵活选择不同的同步规则组。在STM32系列微控制器中,定时器触发同步规则组使得定时器的应用更加灵活和可靠。 ### 回答3: STM32定时器触发同步规则组是指具有相同触发源的多个定时器组成的一组规则。在STM32微控制器中,我们可以使用定时器触发同步规则组来实现对各个定时器同步控制。 定时器触发同步规则组通常由一个主定时器和多个从定时器组成。主定时器负责产生触发信号,然后通过触发信号来启动或停止从定时器的计数。这样可以保证多个定时器的计数始终保持同步。 在使用STM32定时器触发同步规则组时,我们可以通过配置主定时器的计数模式、预分频器和自动重载寄存器等参数来控制触发信号的产生频率和触发时机。同时,我们还可以通过配置从定时器的计数模式、预分频器和自动重载寄存器等参数来控制从定时器的计数方式和计数范围。 通过定时器触发同步规则组,我们可以实现多个定时器之间的同步操作。例如,我们可以将主定时器触发信号连接到从定时器的启动输入,当主定时器计数满足预设条件时,触发信号会传递到从定时器并启动其计数。这样就可以实现多个定时器同时开始计数,从而实现系统中多个定时任务的同步执行。 总之,STM32定时器触发同步规则组是一种用于实现多个定时器之间同步控制的功能强大的技术。它可以帮助我们实现复杂的定时任务,并提高系统的可靠性和稳定性。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值