1、通用定时器的主要部分是一个【16位计数器】和与其相关的【自动装载寄存器】。 可以实现三种计数方式: a、【增计数】 b、【减计数】 c、【同时进行增减计数】(注意理解这里的同时,从同时非彼同时) datasheet上关于计数模式的解释如下! 在向上计数模式中,计数器从0 计数到自动加载值(TIMx_ARR计数器的内容) ,然后重新从0 开始
计数并且产生一个计数器溢出事件。
在向下模式中,计数器从自动装入的值(TIMx_ARR计数器的值)开始向下计数到0,然后从自动
装入的值重新开始并且产生一个计数器向下溢出事件。
在中央对齐模式,计数器从0 开始计数到自动加载的值(TIMx_ARR寄存器)−1 ,产生一个计数器
溢出事件,然后向下计数到1并且产生一个计数器下溢事件;然后再从0开始重新计数。
对于中央对齐模式,开始不怎么了解,现在我个人的理解就是相当于:如果初值是3的话,那么它的计数方式就是 3、2、1、0、1、2、3这样,先进性-1操作,后进行+1操作! 完毕! 2、那么首先就引进时钟单元:定时器是由什么提供时钟节拍的呢? 先来看一下几种时钟模式: 计数器时钟可以由下列时钟源提供:
·内部时钟(CK_INT)
·外部时钟模式1:外部输入脚(TIx)
·外部时钟模式2:外部触发输入(ETR)
·内部触发输入(ITRx):使用一个定时器作为另一个定时器的预分频器,如可以配置一个定时器Timer1而作为另一个定时器Timer2的预分频器。
由于定时器功能实在过于强大,所以采用内部时钟模式,其它的等有空在说吧!实在扛不住啊!那么什么是内部时钟模式呢??
截取网上的一张图,你就会相当清晰了 TIM1和TIM8是由APB2分频提供的,而TIM2--TIM7是由分频APB1提供的,从时钟来源,我们是否就可以猜测到定时器1和定时器8更加高级呢? APB2提供,最高可以到72M呀!至少我是这样猜想的!截取某网友对定时器时钟设置这部分的详解,如果你看了,你定会豁然开朗的,我把他的话整理了一下! 1、从图中可以看出,定时器的时钟不是直接来自APB1或APB2,而是来自于输入为APB1或APB2的一个倍频器,图中的蓝色部分,注意了是倍频器,不是分频器,继续看!!
2、下面以定时器2~7的时钟说明这个倍频器的作用:(当然定时器和定时器8也是这样的原理)
a、当APB1的预分频系数为1时,这个倍频器不起作用(也就是倍频系数为1),定时器的时钟频率等于APB1的频率; b、当 APB1的预分频系数为其它数值(即预分频系数为2、4、8或16)时,这个倍频器起作用,定时器的时钟频率等于APB1的频率两倍(倍频系数为2)。
|