1.定时器基本设置初始化结构体
Prescaler:定时器预分频设置,时钟源经过该分频器才是定时器时钟,它设定TIMx_PSC寄存器的值。可设置值范围为0~65535,实现1至65536分频(实际分频系数=TIMx_PSC+1),假设时钟为168MHz,设置Prescaler=167,这样分频后的时钟是168MHz/(167+1)=1MHz。
CouterMode:定时器计数模式,基本定时器只能向上计数,即TIMx_CNT只能从0开始递增。默认配置就是向上计数模式。高级定时器还有向下,中心对齐模式1/2/3(中心对齐的三种模式区别是中断产生位置不一样)
Period:定时器周期(ARR),可设置值为0~65535,设定TIMx_ARR寄存器值。在定时器预分频我们已经得到分频后的时钟为1MHz。Period的值我们设置为999, 这样, 定时器产生中断的频率 f = 1MHz/(999+1)=1KHz,T = 1/f (s) 即T = 1/1000(s)即为1ms的定时周期。
ClockDivision:时钟分频,设置定时器时钟(CK_INT)频率与死区发生器以及数字滤波器(ETR、TIx)所使用的死区及采样时钟(tDTS)之间的分频比。可选1分频(常用)、2分频、4分频。
RepetitionCounter:重复计数器,属于高级控制寄存器专用寄存器位,一般把它配置为0,则每来一次溢出事件会产生一次中断,如果配置成1则每来两次溢出事件才会产生一次中断,会多加一次
2.定时器句柄结构体
Instance:TIM寄存器基地址(选择第几个定时器)。
Init:定时器基本设置初始化。
Channel:定时器通道的选择,有四个通道(TIMx_CH1、 TIMx_CH2、 TIMx_CH3、 TIMx_CH4)。
hdma[7]:定时器DMA相关。有TIMx_CH1、 TIMx_CH2、 TIMx_CH3、 TIMx_CH4、 TIMx_UP、 TIMx_TRIG、 TIMx_COM总共7种DMA请求。
Lock:资源锁机制。
State:定时器操作的状态。
3.定时器时钟配置结构体
ClockSource :时钟源,一般采用内部时钟源
ClockSourcePolarity:时钟极性,只有用ETR时钟源时才涉及(除了时钟源,下面三个结构体考试不涉及)
4.定时器输入捕获初始化结构体
ICPolarity:输入捕获极性(边沿选择),上升沿、下降沿、双边沿
ICSelection:输入捕获信号源选择:Tx、TRC
ICPrescaler:输入捕获分频器:1、2、4、8分频
ICFilter:输入捕获滤波器:0~0xF