定时器编程——常用结构体

1.定时器基本设置初始化结构体

定时器编程——常用结构体_第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张图片

2.定时器句柄结构体

定时器编程——常用结构体_第3张图片

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.定时器时钟配置结构体

定时器编程——常用结构体_第4张图片

ClockSource :时钟源,一般采用内部时钟源

ClockSourcePolarity:时钟极性,只有用ETR时钟源时才涉及(除了时钟源,下面三个结构体考试不涉及)

4.定时器输入捕获初始化结构体

定时器编程——常用结构体_第5张图片

ICPolarity:输入捕获极性(边沿选择),上升沿、下降沿、双边沿

ICSelection:输入捕获信号源选择:Tx、TRC

ICPrescaler:输入捕获分频器:1、2、4、8分频

ICFilter:输入捕获滤波器:0~0xF

定时器编程——常用结构体_第6张图片

5.定时器输出比较初始化结构体

定时器编程——常用结构体_第7张图片

定时器编程——常用结构体_第8张图片

6.定时器从模式配置结构体

定时器编程——常用结构体_第9张图片

7.定时器主模式配置结构体

定时器编程——常用结构体_第10张图片

8.定时器刹车和死区时间配置结构体

定时器编程——常用结构体_第11张图片

你可能感兴趣的:(单片机,嵌入式硬件)