热度 13| |||
基本定时器TIM6和TIM7各包含一个16位自动装载计数器,由各自的可编程预分频器驱动。它们可以作为通用定时器提供时间基准,特别地可以为数模转换器(DAC)提供时钟。实际上,它们在芯片内部直接连接到DAC并通过触发输出直接驱动DAC。这2个定时器是互相独立,不共享任何资源。
16位可实时编程预分频器,分频系数:1–65536可调。
16位自动重装载计数器(计数方向:递增)。
产生中断/DMA请求的事件:更新事件。
计数器寄存器(TIMX_CNT)
预分频寄存器(TIMx_PSC)
自动重装载寄存器(TIMX_ARR)
自动重装载寄存器是预加载的,每次读写自动重装载寄存器时,实际上是通过读写预加载寄存器实现。根据TIMx_CR1寄存器中的自动重装载预加载使能位(ARPE),写入预加载寄存器的内容能够立即或在每次更新事件时,传送到它的影子寄存器。当TIMxCR1寄存器的UDIS位为’0’,则每当计数器达到溢出值时,硬件发出更新事件;软件也可以产生更新事件;UG=1,UDIS=0。计数器由预分频输出CK_CNT驱动,设置TIMx_CR1寄存器中的计数器使能位(CEN)使能计数器计数。
TIMx_CR1[7] APRE 自动重装载预装载使能(Auto-reload preload enable)
0:关闭TIMx_ARR寄存器的影子寄存器
1:使能TIMx_ARR寄存器的影子寄存器
TIMx_CR1[2] URS 更新请求源(Update request source)软件配置该位,选择更新事件源。
0:以下事件可产生一个更新中断或DMA请求:1、计数器上溢/下溢;2、设置UG位;3、从模式控制器产生的更新; 1:只有计数器上溢/下溢才产生一个更新中断或 DMA 请求
TIMx_CR1[1] UDIS 禁止更新(Update disable)该位用来允许或禁止更新事件的产生
0:允许更新事件(UEV) 1:禁止更新事件。不产生更新事件,影子寄存器(ARR、PSC、CCRx)保持值不变。如果设置了EGR_UG位为1,或者从模式控制器接收到硬件复位,计数器和预分频器被初始化。
TIMx_CR1[0] CEN 计数器使能(Counter enable)该位用来允许或禁止更新事件的产生
0:禁止计数器; 1:使能计数器
TIMx_CR1[4] OPM 单脉冲模式(One pulse mode)该位用来允许或禁止更新事件的产生
0:禁止单脉冲模式,在发生更新事件时,计数器继续计数
1:使能单脉冲模式,在发生下一次更新事件或软件清除CEN位时,计数器停止计数
TIMX_SR[0] UIF 更新中断标记(Update interrupt flag)
当产生更新事件时该位由硬件置1。它由软件清0。0:无更新中断发生,1:发生更新中断。
TIMx_DIER[0] UIE 允许更新事件中断(Update interrupt enable)
0:禁止更新事件中断,1:允许更新事件中断。
TIMx_EGR[0] UG 产生更新事件(Update generation)
0:无动作 1:初始化计数器,并产生一个更新事件。由硬件自动清0,如果选择了中央对齐或递增计数模式,计数器被清0;如果选择递减计数模式,计数器将载入自动重载值。预分频计数器将同时被清除。
TIMX_RCR[15:8] REP_CNT=RCR[15:8] 重复计数器实时写入的值(Repetition counter value of real-time writing)
在重复计数模式下,写入该位可以实时地将更新中断标志位(UIF)的检测点移位。注:在更新事件后写入该位,在更新事件前写入 REP_CNT 将会被REP的值覆盖,使移位无效。
TIMx_DIER[8] UDE 允许更新 DMA 请求(Update DMA request enable)
禁止更新 DMA 请求;1:允许更新 DMA 请求;注:仅适用于有内置 DMA 的产品。
TIMX_DCR[4:0] DBA=DCR[4:0] DMA 连续传送长度(DMA burst length)
这些位定义了 DMA 在连续模式下的访问寄存器的数量00000:1 次传输;00001:2 次传输;00010:3 次传输;......;10001:18 次传输
TIMX_DCR[12:8] DBL=DCR[12:8] DMA 基地址(DMA base address)
这些位定义了 DMA 在连续模式下访问TIMx_DMAR寄存器的第一个地址。DBA 定义为从 TIMx_CR1 寄存器所在地址开始的偏移值:00000:TIMx_CR1;00001:TIMx_CR2;00010:TIMx_SMCR。
TIMx_DMAR[15: 0] = DMAB, DMA连续传送寄存器 DMA_data_transfer_direction
对TIMx_DMAR寄存器的读或写会导致对以下地址所在寄存器的存取操作,TIMx_CR1地址 + DBA + DMA索引,其中: "TIMx_CR1地址"是控制寄存器1(TIMx_CR1) 所在的地址;"DBA"是TIMx_DCR寄存器中定义的基地址;"DMA索引"是由DMA自动控制的偏移量,它取决于TIMx_DCR寄存器中定义的DBL。