微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 嵌入式设计 > STM32定时器详解 -----影子寄存器,预装寄存器

STM32定时器详解 -----影子寄存器,预装寄存器

时间:11-26 来源:互联网 点击:

使用这个配置

位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:使能计数器 (Counter enable)

0:禁止计数器;

1:使能计数器。

在软件设置了CEN位后,外部时钟、门控模式和编码器模式才能工作。触发模式可以自动地通过硬件设置CEN位。

6.事件产生寄存器

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

位7 BG:产生刹车事件 (Break generation) 该位由软件置’1’,用于产生一个刹车事件,由硬件自动清’0’。

0:无动作;

1:产生一个刹车事件。此时MOE=0、BIF=1,若开启对应的中断和DMA,则产生相应的中断和DMA。

位6 TG:产生触发事件 (Trigger generation) 该位由软件置’1’,用于产生一个触发事件,由硬件自动清’0’。

0:无动作;

1:TIMx_SR寄存器的TIF=1,若开启对应的中断和DMA,则产生相应的中断和DMA。

位5 COMG:捕获/比较事件,产生控制更新 (Capture/Compare control update generation) 该位由软件置’1’,由硬件自动清’0’。

0:无动作;

1:当CCPC=1,允许更新CCxE、CCxNE、OCxM位。

该位只对拥有互补输出的通道有效。

位4 CC4G:产生捕获/比较4事件 (Capture/Compare 4 generation) 参考CC1G描述。

位3 CC3G:产生捕获/比较3事件 (Capture/Compare 3 generation) 参考CC1G描述。

位2 CC2G:产生捕获/比较2事件 (Capture/Compare 2 generation) 参考CC1G描述。

位1 CC1G:产生捕获/比较1事件 (Capture/Compare 1 generation) 该位由软件置’1’,用于产生一个捕获/比较事件,由硬件自动清’0’。

0:无动作;

1:在通道CC1上产生一个捕获/比较事件:

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

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

若CC1IF已经为1,则设置CC1OF=1。

位0 UG:产生更新事件 (Update generation) 该位由软件置’1’,由硬件自动清’0’。

0:无动作;

1:重新初始化计数器,并产生一个更新事件。注意预分频器的计数器也被清’0’(但是预分频系数不变)。若在中心对称模式下或DIR=0(向上计数)则计数器被清’0’;若DIR=1(向下计数)则计数器取TIMx_ARR的值。

关于刹车事件,触发事件,捕获比较事件的描述,详见数据手册13章

程序分析:

固件库函数分析:

STM32的高级定时器功能十分强大,但相应的功能强大就意味着结

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top