STM32 通用定时器相关寄存器

TIMx_CR1(控制寄存器1)

9-8位:CKD[1:0]时钟分频因子,定义在定时器时钟(CK_INT)频率与数字滤波器(ETR,TIx)使用的采样频率之间的分频比例。

定义:00(tDTS = tCK_INT),01(tDTS = 2 x tCK_INT),10(tDTS = 4 x tCK_INT)11:保留

7位:ARPE:自动重装载预装载允许位,定义:0(TIMx_ARR寄存器没有缓冲),1(TIMx_ARR寄存器被装入缓冲器)

6-5位:CMS[1:0]选择中央对齐模式,定义:00:边沿对齐模式。计数器依据方向位(DIR)向上或向下计数。

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

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

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

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

4位:DIR:方向,定义:0(计数器向上计数),1(计数器向下计数),注:当计数器配置为中央对齐模式或编码器模式时,该位为只读

3位:OPM:单脉冲模式,定义:0(在发生更新事件时,计数器不停止),1(在发生下一次更新事件(清除CEN位)时,计数器停止)

2位:URS:更新请求源,软件通过该位选择UEV事件的源,0(如果使能更新中断或DMA请求,则计数器溢出/下溢-设置UG位-从模式控制器产生的更新会产生)

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

1位:UDIS禁止更新,软件通过该位允许/禁止UEV事件的产生,0:允许UEV。更新(UEV)事件由计数器溢出/下溢,设置UG位,从模式控制器产生的更新,事件产生

具有缓存的寄存器被装入它们的预装载值

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

则计数器和预分频器被重新初始化。

0位:CEN使能计数器,定义:0(禁止计数器),1(使能计数器)注:在软件设置了CEN位后,外部时钟、门控模式和编码器模式才能工作。

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

TIMx_CR2(控制寄存器2)

7位:TI1S-TI1选择,定义:0(TIMx_CH1引脚连到TI1输入),1(TIMx_CH1、TIMx_CH2和TIMx_CH3引脚经异或后连到TI1输入)

6-4位:MMS主模式选择,这3位用于选择在主模式下送到从定时器的同步信息(TRGO)定义:

000:复位 – TIMx_EGR寄存器的UG位被用于作为触发输出(TRGO)。如果是触发输入产生的复位(从模式控制器处于复位模式),

则TRGO上的信号相对实际的复位会有一个延迟

001:使能 – 计数器使能信号CNT_EN被用于作为触发输出(TRGO)。有时需要在同一时间启动多个定时器或控制在一段时间内使能从定时器。

计数器使能信号是通过CEN控制位和门控模式下的触发输入信号的逻辑或产生。

当计数器使能信号受控于触发输入时,TRGO上会有一个延迟,除非选择了主/从模式(见TIMx_SMCR寄存器中MSM位的描述)。

010:更新 – 更新事件被选为触发输入(TRGO)。例如,一个主定时器的时钟可以被用作一个从定时器的预分频器

011:比较脉冲 – 在发生一次捕获或一次比较成功时,当要设置CC1IF标志时(即使它已经为高),触发输出送出一个正脉冲(TRGO)

100:比较 – OC1REF信号被用于作为触发输出(TRGO)  101:比较 – OC2REF信号被用于作为触发输出(TRGO)

110:比较 – OC3REF信号被用于作为触发输出(TRGO)  111:比较 – OC4REF信号被用于作为触发输出(TRGO)

3位:CCDS:捕获/比较的DMA选择,定义:0(当发生CCx事件时,送出CCx的DMA请求),1(当发生更新事件时,送出CCx的DMA请求)

TIMx_SMCR(从模式控制寄存器)

15位:ETP:外部触发极性,该位选择是用ETR还是ETR的反相来作为触发操作,定义:0(ETR不反相,高电平或上升沿有效),1(ETR被反相,低电平或下降沿有效)

14位:ECE:外部时钟使能位,该位启用外部时钟模式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外部触发预分频,外部触发信号ETRP的频率必须最多是CK_INT频率的1/4。
当输入较快的外部时钟时,可以使用预分频降低ETRP的频率

定义:00(关闭预分频),01(ETRP频率除以2),10(ETRP频率除以4),11(ETRP频率除以8)

11-8位:ETF外部触发滤波,这些位定义了对ETRP信号采样的频率和对ETRP数字滤波的带宽。
实际上,数字滤波器是一个事件计数器,它记录到N个事件后

会产生一个输出的跳变,定义:

  • 0000(无滤波器,以fDTS采样)
  • 0001(采样频率fSAMPLING=fCK_INT,N=2)
  • 0010(采样频率fSAMPLING=fCK_INT,N=4)
  • 0011(采样频率fSAMPLING=fCK_INT,N=8)
  • 0100(采样频率fSAMPLING=fDTS/2,N=6)
  • 0101(采样频率fSAMPLING=fDTS/2,N=8)
  • 0110(采样频率fSAMPLING=fDTS/4,N=6)
  • 0111(采样频率fSAMPLING=fDTS/4,N=8)
  • 1000(采样频率fSAMPLING=fDTS/8,N=6)
  • 1001(采样频率fSAMPLING=fDTS/8,N=8)
  • 1010(采样频率fSAMPLING=fDTS/16,N=5)
  • 1011:采样频率fSAMPLING=fDTS/16,N=6
  • 1100(采样频率fSAMPLING=fDTS/16,N=8)
  • 1101(采样频率fSAMPLING=fDTS/32,N=5)
  • 1110(采样频率fSAMPLING=fDTS/32,N=6)
  • 1111(采样频率fSAMPLING=fDTS/32,N=8)

7位:MSM主/从模式,定义:0(无作用),1(触发输入(TRGI)上的事件被延迟了,以允许在当前定时器(通过TRGO)与它的从定时器间的完美同步。

这对要求把几个定时器同步到一个单一的外部事件时是非常有用的)

6-4位:TS[2:0]:触发选择,这3位选择用于同步计数器的触发输入,定义:

  • 000(内部触发0(ITR0),TIM1),
  • 001(内部触发1(ITR1),TIM2)
  • 010(内部触发2(ITR2),TIM3)
  • 011(内部触发3(ITR3),TIM4)
  • 100(TI1的边沿检测器(TI1F_ED))
  • 101(滤波后的定时器输入1(TI1FP1)
  • 110(滤波后的定时器输入2(TI2FP2)
  • 111(外部触发输入(ETRF)

注:这些位只能在未用到(如SMS=000)时被改变,以避免在改变时产生错误的边沿检测。关于定时器细节见P285表78

2-0位:SMS[2:0]从模式选择,当选择了外部信号,触发信号(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变化时输出一个脉冲,然而门控模式是要检查触发输入的电平。

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

14位:TDE:允许触发DMA请求,定义:0(禁止),1(允许)

12位:CC4DE:允许捕获/比较4的DMA请求,定义:0(禁止),1(允许)

11位:CC3DE:允许捕获/比较3的DMA请求,定义:0(禁止),1(允许)

10位:CC2DE:允许捕获/比较2的DMA请求,定义:0(禁止),1(允许)

9位:CC1DE:允许捕获/比较1的DMA请求,定义:0(禁止),1(允许)

8位:UDE:允许更新的DMA请求,定义:0(禁止),1(允许)

6位:TIE:触发中断使能,定义:0(禁止),1(允许)

4位:CC4IE:允许捕获/比较4中断,定义:0(禁止),1(允许)

3位:CC3IE:允许捕获/比较3中断,定义:0(禁止),1(允许)

2位:CC2IE:允许捕获/比较2中断,定义:0(禁止),1(允许)

1位:CC1IE:允许捕获/比较1中断,定义:0(禁止),1(允许)

0位:UIE允许更新中断,定义:0(禁止),1(允许)

TIMx_SR(状态寄存器)

9位:CC(1-4)OF:捕获/比较1重复捕获标记,仅当相应的通道被配置为输入捕获时,该标记可由硬件置’1’。写’0’可清除该位,定义:0(无重复捕获产生)

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

7位:BIF刹车标记中断,一旦刹车输入有效,由硬件对该位置’1’。如果刹车输入无效,则该位可由软件清’0。定义:0(无刹车),11(有刹车)

6位:TIF触发器中断标记,当发生触发事件(当从模式控制器处于除门控模式外的其它模式时,在TRGI输入端检测到有效边沿,或门控模式下的任一边沿)

时由硬件对该位置’1’。它由软件清’0’,定义:0(无触发事件),1(触发器中断等待响应)

4,3,2,1位:CC(4-1)IF捕获/比较(4-1)中断标记,如果通道CC1配置为输出模式(软件清0,硬件置1(在中心对称下除外),定义:0(无匹配),1(TIMx_CNT与TIMx_CCR1匹配)

如果通道CC1配置为输入模式:(硬件置1,软件清0,或通过读TIMx_CCR1清’0’),定义:0(无输入捕获产生),

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

0位:UIF更新中断标记(硬件置1,软件清0)定义:0(无更新事件)1(更新中断等待响应。当寄存器被更新时该位由硬件置’1’)

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

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

TIMx_EGR(事件产生寄存器)

6位:TG产生触发事件(软件置1,硬件清0),定义:0(无动作),1(TIMx_SR寄存器的TIF=1,若开启对应的中断和DMA,则产生相应的中断和DMA)

5位:COMG捕获/比较事件,产生控制更新(软件置1,硬件清0),定义:0(无动作),1(当CCPC=1,允许更新CCxE、CCxNE、OCxM位)注:该位只对拥有互补输出的通道有效

4,3,2,1位:CC(4-1)G:产生捕获/比较(4-1)事件(软件置1,硬件清0),定义:0(无动作),1(在通道CC1上产生一个捕获/比较事件)

若通道CC1配置为输出,设置CC1IF=1,若开启对应的中断和DMA,则产生相应的中断和DMA

若通道CC1配置为输入,当前的计数器值被捕获至TIMx_CCR1寄存器;设置CC1IF=1,若开启对应的中断和DMA,则产生相应的中断和DMA。若CC1IF已经为1,则设置CC1OF=1

则设置CC1OF=1

0位:UG产生更新事件(软件置1,硬件清0),定义:0(无动作),1(重新初始化计数器,并产生一个更新事件。注意预分频器的计数器也被清’0’

(但是预分频系数不变)。若在中心对称模式下或DIR=0(向上计数)则计数器被清’0’;若DIR=1(向下计数)则计数器取TIMx_ARR的值)

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

TIMx_CCMR2(捕获/比较模式寄存器2)

输出比较和输入捕获功能不同,在寄存器中的设置也不同。

输出比较模式

15位:OC2CE:输出比较2清0使能

14-12位:OC2M[2:0]:输出比较2模式

11位:OC2PE:输出比较2预装载使能

10位:OC2FE:输出比较2快速使能

9-8位:CC2S[1:0]:捕获/比较2选择,该位定义通道的方向(输入/输出),及输入脚的选择,定义:00(CC2通道被配置为输出) 01(CC2通道被配置为输入,IC2映射在TI2上)

10(CC2通道被配置为输入,IC2映射在TI1上) 11(CC2通道被配置为输入,IC2映射在TRC上。此模式仅工作在内部触发器输入被选中时。

(由TIMx_SMCR寄存器的TS位选择),注:CC2S仅在通道关闭时(TIMx_CCER寄存器的CC2E=0)才是可写的。

9-8位:CC4S[1:0]:捕获/比较4选择;该位定义通道的方向(输入/输出);及输入脚的选择,定义:00(CC4通道被配置为输出)01(CC4通道被配置为输入,IC4映射在TI4上)

10(CC4通道被配置为输入,IC4映射在TI3上) 11(CC4通道被配置为输入,IC4映射在TRC上。此模式仅工作在内部触发器输入被选中时。

(由TIMx_SMCR寄存器的TS位选择),注:CC4S仅在通道关闭时(TIMx_CCER寄存器的CC4E=0)才是可写的。

7位:OC1CE:输出比较1清’0’使能,定义:0(OC1REF 不受ETRF输入的影响),1(一旦检测到ETRF输入高电平,清除OC1REF=0)

6-4位:OC1M[2:0]输出比较1模式,该3位定义了输出参考信号OC1REF的动作,而OC1REF决定了OC1、OC1N的值。OC1REF是高电平有效,而OC1、OC1N

的有效电平取决于CC1P、CC1NP位,定义:000(冻结。输出比较寄存器TIMx_CCR1与计数器TIMx_CNT间的比较对OC1REF不起作用)

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

011(翻转。当TIMx_CCR1=TIMx_CNT时,翻转OC1REF的电平)100(强制为无效电平。强制OC1REF为低)101(强制OC1REF为高)

110:PWM模式1- 在向上计数时,一旦TIMx_CNT<TIMx_CCR1时通道1为有效电平,否则为无效电平;在向下计数时,一旦TIMx_CNT>TIMx_CCR1时通道1

为无效电平(OC1REF=0),否则为有效电平(OC1REF=1)。

111:PWM模式2- 在向上计数时,一旦TIMx_CNT<TIMx_CCR1时通道1为无效电平,否则为有效电平;在向下计数时,一旦TIMx_CNT>TIMx_CCR1时通道1

为有效电平,否则为无效电平。

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

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

3位:OC1PE输出比较1预装载使能,定义: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 快速使能,该位用于加快CC输出对触发输入事件的响应,定义:

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

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

3个时钟周期)OCFE只在通道被配置成PWM1或PWM2模式时起作用。

1-0位:CC1S[1:0]捕获/比较1 选择,这2位定义通道的方向(输入/输出),及输入脚的选择,定义:00(CC1通道被配置为输出),01(CC1通道被配置为输入,IC1映射在TI1上)

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

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

1-0位:CC3S[1:0]捕获/比较3 选择,这2位定义通道的方向(输入/输出),及输入脚的选择,定义:00(CC3通道被配置为输出),01(CC3通道被配置为输入,IC3映射在TI3上)

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

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

输入捕获模式

15-12位:输入捕获2滤波器

11-10位:CC2S[1:0]输入/捕获2预分频器

9-8位:CC2S[1:0]捕获/比较2选择,这2位定义通道的方向(输入/输出),及输入脚的选择,定义:00(CC2通道被配置为输出)01(CC2通道被配置为输入,

IC2映射在TI2上),10(CC2通道被配置为输入,IC2映射在TI1上),11(CC2通道被配置为输入,IC2映射在TRC上),此模式仅工作在内部触发器输入被选中时

(由TIMx_SMCR寄存器的TS位选择),注:CC2S仅在通道关闭时(TIMx_CCER寄存器的CC2E=0)才是可写的。

9-8位:CC4S[1:0]捕获/比较4选择,这2位定义通道的方向(输入/输出),及输入脚的选择,定义:00(CC4通道被配置为输出)01(CC4通道被配置为输入,

IC4映射在TI4上),10(CC4通道被配置为输入,IC4映射在TI3上),11(CC4通道被配置为输入,IC4映射在TRC上),此模式仅工作在内部触发器输入被选中时

(由TIMx_SMCR寄存器的TS位选择),注:CC2S仅在通道关闭时(TIMx_CCER寄存器的CC4E=0)才是可写的。

7-4位:IC1F[3:0]:输入捕获1滤波器,这几位定义了TI1输入的采样频率及数字滤波器长度,数字滤波器由一个事件计数器组成,记录到N个事件后会产生一个输出的跳变

定义:0000(无滤波器,以fDTS采样)0010(采样频率fSAMPLING=fCK_INT,N=4)0011(采样频率fSAMPLING=fCK_INT,N=8)0100(fSAMPLING=fDTS/2,N=6)

0101(fSAMPLING=fDTS/2,N=8),0110(fSAMPLING=fDTS/4,N=6),0111(fSAMPLING=fDTS/4,N=8),1000(fSAMPLING=fDTS/8,N=6)

1001(fSAMPLING=fDTS/8,N=8),1010(fSAMPLING=fDTS/16,N=5),1011(fSAMPLING=fDTS/16,N=6),1100(fSAMPLING=fDTS/16,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)

3-2位:IC1PSC[1:0]输入/捕获1预分频器,这2位定义了CC1输入(IC1)的预分频系数,一旦CC1E=0(TIMx_CCER寄存器中),则预分频器复位。

00(无预分频器,捕获输入口上检测到的每一个边沿都触发一次捕获),01(每2个事件触发一次捕获),10(每4个事件触发一次捕获),11(每8个事件触发一次捕获)

1-0位:CC1S[1:0]捕获/比较1选择,这2位定义通道的方向(输入/输出),及输入脚的选择,定义:00(CC1通道被配置为输出),01(CC1通道被配置为输入,IC1映射在TI1上

10(CC1通道被配置为输入,IC1映射在TI2上),11:CC1通道被配置为输入,IC1映射在TRC上。此模式仅工作在内部触发器输入被选中时

(由TIMx_SMCR寄存器的TS位选择)。注:CC1S仅在通道关闭时(TIMx_CCER寄存器的CC1E=0)才是可写的。

1-0位:CC3S[1:0]捕获/比较3选择,这2位定义通道的方向(输入/输出),及输入脚的选择,定义:00(CC3通道被配置为输出),01(CC3通道被配置为输入,IC3映射在TI3上

10(CC3通道被配置为输入,IC3映射在TI4上),11:CC3通道被配置为输入,IC3映射在TRC上。此模式仅工作在内部触发器输入被选中时

(由TIMx_SMCR寄存器的TS位选择)。注:CC3S仅在通道关闭时(TIMx_CCER寄存器的CC3E=0)才是可写的。

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

15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0

保留 CC4P CC4E 保留 CC3P CC3E 保留 CC2P CC2E 保留 CC1P CC1E

13,9,5,1位:CC(4-1)P:输入/捕获3输出极性,定义:CC1通道配置为输出-0(OC1高电平有效),1(OC1低电平有效)

CC1通道配置为输入:该位选择是IC1还是IC1的反相信号作为触发或捕获信号,0:不反相:捕获发生在IC1的上升沿;当用作外部触发器时,IC1不反相。

1(相反,捕获发生在IC1的下降沿)注:一旦LOCK级别(TIMx_BDTR寄存器中的LOCK位)设为3或2,则该位不能被修改

128,4,0位:CC(4-1)E:输入/捕获3输出使能,定义:CC1通道配置为输出-

0(关闭- OC1禁止输出,因此OC1的输出电平依赖于MOE、OSSI、OSSR、OIS1、OIS1N和CC1NE位的值),1(开启)

CC1通道配置为输入,该位决定了计数器的值是否能捕获入TIMx_CCR1寄存器。0(捕获禁止),1(捕获使能)

TIMx_CNT(计数器)

0-15位:CNT[15:0]计数器的值

TIMx_PSC(预分频器)

0-15位:PSC[15:0]预分频器的值,计数器的时钟频率(CK_CNT)等于fCK_PSC/( PSC[15:0]+1)。

PSC包含了每次当更新事件产生时,装入当前预分频器寄存器的值;更新事件包括计数器被TIM_EGR的UG位清’0’或被工作在复位模式的从控制器清’0’

TIMx_ARR(自动重装载寄存器)

15-0位:ARR[15:0]自动重装载的值,ARR包含了将要传送至实际的自动重装载寄存器的数值,当自动重装载的值为空时,计数器不工作

TIMx_CCR1(捕获/比较寄存器1)

TIMx_CCR2(捕获/比较寄存器1)

TIMx_CCR3(捕获/比较寄存器1)

TIMx_CCR4(捕获/比较寄存器1)

15-0位:CCR1[15:0]捕获/比较1的值,若CC1通道配置为输出:CCR1包含了装入当前捕获/比较1寄存器的值(预装载值)。

如果在TIMx_CCMR1寄存器(OC1PE位)中未选择预装载特性,写入的数值会被立即传输至当前寄存器中。否则只有当更新事件发生时,

此预装载值才传输至当前捕获/比较1寄存器中。当前捕获/比较寄存器参与同计数器TIMx_CNT的比较,并在OC1端口上产生输出信号。

若CC1通道配置为输入:CCR1包含了由上一次输入捕获1事件(IC1)传输的计数器值

TIMx_DCR(DMA控制寄存器)

12-8位:DBL[4:0]DMA连续传送长度,这些位定义了DMA在连续模式下的传送长度(当对TIMx_DMAR寄存器进行读或写时,定时器则进行一次连续传送),

即:定义传输的次数,传输可以是半字(双字节)或字节:00000:1次传输 00001:2次传输 ...... 00010:3次传输 ...... 10001:18次传输

4-0位:DBA[4:0]DMA基地址,这些位定义了DMA在连续模式下的基地址(当对TIMx_DMAR寄存器进行读或写时),DBA定义为从TIMx_CR1寄存器所在地址开始的偏移量

00000:TIMx_CR1, 00001:TIMx_CR2, 00010:TIMx_SMCR, ......

TIMx_DMAR(连续模式的DMA地址)

15-0位:DMAB[15:0]DMA连续传送寄存器,对TIMx_DMAR寄存器的读或写会导致对以下地址所在寄存器的存取操作,TIMx_CR1地址 + DBA + DMA索引,其中:

"TIMx_CR1地址"是控制寄存器1(TIMx_CR1)所在的地址:"DBA"是TIMx_DCR寄存器中定义的基地址:"DMA索引"是由DMA自动控制的偏移量,

它取决于TIMx_DCR寄存器中定义的DBL。

时间: 2024-10-16 09:58:28

STM32 通用定时器相关寄存器的相关文章

STM32通用定时器实现LED灯闪烁

刚才看了一下STM32通用定时器的教程,其实和51的定时器使用差不多.只是因为32的时钟更复杂,可操控的寄存器更多,所以写的时候可能更复杂. 使用通用定时器中断的一般步骤:1.使能定时器时钟 这个需要看时钟树,使能对应的时钟就好了.这里我使用的是TIM3,所以使能APB1的时钟即可. 2.设置定时器的分频系数和重装载值 定时器中断的时间为:Tout = (arr+1)/[Tclk/(psc+1)] 其实这个定时器中断时间还是要具体分析,这里是这样,其他地方或许不是这样,具体还是要参考<STM32

STM32通用定时器配置

一.STM32通用定时器原理 STM32 系列的CPU,有多达8个定时器,其中TIM1和TIM8是能够产生三对PWM互补输出的高级定时器,常用于三相电机的驱动,它们的时钟由APB2的输出产生.其它6个为普通定时器,时钟由APB1的输出产生. 下图是STM32参考手册上时钟分配图中,有关定时器时钟部分的截图: 从图中可以看出,定时器的时钟不是直接来自APB1或APB2,而是来自于输入为APB1或APB2的一个倍频器,图中的蓝色部分. 下面以通用定时器2的时钟说明这个倍频器的作用:当APB1的预分频

STM32通用定时器库函数设置

通用定时器 STM32的通用定时器为:TIM2.TIM3.TIM4和TIM5 在使用通用定时器时利用库函数直接设置定时器如下: 1.使能定时器TIM_X的时钟:(X=2.3.4.5) RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIMX,ENABLE); 2.计算要定时的时间,根据定时时间来设定分频数和最大计数值(以向上计数为例子),其中计算关系如下: 系统时钟(一般为72MHZ) = 定时器分频数 * 计数值 假如分频数为7200,则定时器时钟为:72MHZ/7

STM32 通用定时器的几种配置方式

STM32 通用定时器的几种配置方式 //------------------------------------------------------------------------------ // 1.普通定时使用 #include"stm32f10x.h" #include"time.h" static Time_NVIC_Config( void ) { NVIC_InitTypeDef NVIC_InitStructure; NVIC_SetVecto

stm32通用定时器中断问题

在使用stm32的通用定时器定时中断的时候,发现定时器在完成初始化配置后,定时器UIF位会立刻置位,导致在使能中断后,程序会立刻进入定时器中断. 如果设计代码时不希望定时器配置完成后,立刻进入中断,可以在定时器配置完成后,立刻清除UIF标志位(TIMx->SR &= 0xFFFE) ,再使能定时器更新中断.比如用库函数这么写: TIM_ClearITPendingBit(TIM4, TIM_IT_Update  ); TIM_ITConfig(TIM4,TIM_IT_Update,ENABL

STM32通用定时器

功能描述 特性 内部定时器怎么来的

[stm32] STM32的通用定时器TIMx系统了解

通用定时器(TIMx) 一.TIMx简介 二.TIMx主要功能 三.TIMx功能描述 3.1 时基单元 3.2 计数器模式 3.3 时钟选择 3.4 捕获/比较通道 3.5 输入捕获模式 3.6 PWM输入模式 3.7 强置输出模式 3.8 输出比较模式 3.9 PWM 模式 3.10 单脉冲模式 四.简单例子理解TIMx 4.1 使得PB5-TIM3通道2产生频率为12.5Hz的方波,该方波控制LED1的闪烁 4.2 周期控制通用定时器3的2通道,实现1KHz的不同占空比波形,控制LED实现呼

STM32学习笔记11(通用定时器作为输入捕获2)

通用定时器作为输入捕获的使用.我们将用 TIM5 的通道 1 (PA0)来做输入捕获,捕获 PA0 上高电平的脉宽(用 WK_UP 按键输入高电平),通过串口打印高电平脉宽时间 输入捕获简介 输入捕获模式可以用来测量脉冲宽度或者测量频率. STM32 的定时器,除了 TIM6 和 TIM7,其他定时器都有输入捕获功能.STM32 的输入捕获,简单的说就是通过检测 TIMx_CHx 上的边沿信号,在边沿信号发生跳变(比如上升沿/下降沿)的时候,将当前定时器的值(TIMx_CNT)存放到对应的通道的

STM32学习笔记(五)——通用定时器计数延时

STM32定时器概述 STM32F40x系列总共最多有14个定时器,定时器分为三类:基本定时器.通用定时器和高级定时器.它们的都是通过计数来达到定时的目的,和51的定时器差不多,基本原理都是一样的,就是功能多了一些,这些计数器都是自动重新装载初值的,使用起来非常方便,而且计数时钟频率可以通过分频系数来设置.本文章将介绍使用定时器中断来控制LED间隔1s闪烁. 计数的时钟来源主要有四个: 内部时钟CK_INT 外部时钟模式1:外部输入脚TIx 外部时钟模式2:外部触发输入ETR,仅适用于 TIM2