笔记4:STM32F4基本定时器

一. 定时器简介在这里插入图片描述在这里插入图片描述
二.基本定时器
简介:TIM6和TIM7:16位计数器,只能采用向上计数,没有外部GPIO,属于内部资源,不能对外输出信号,时钟来源于PCLK1,即为挂在APB1下。
定时器时钟频率:
在这里插入图片描述
由上图可以看出,因为APB1总线分频因子为4≠1,因此TIM6和TIM7时钟频率=42✖2MHz=84MHz.
时基部分:
在这里插入图片描述
时基部分包含三个寄存器:预分频寄存器,自动重载寄存器(ARR),计数器。
计数器的时钟-CK_CNT=定时器内部时钟(TIM6=TIM7=84MHz)/(PSC+1)。这也就是说,每计数一次的时间T1=1/CK_CNT。如果ARR(自动重载计数器)中的值为NUM,总的计数时间=T1(NUM+1)。如果使能了中断,自动重载寄存器中的值*T1即为中断的周期,即一次中断之后到下一次中断的时间。并且在中断事件生成时,计时器清零,重新开始计数*
影子寄存器:起缓冲作用。上图中PSC寄存器和ARR寄存器都有一个影子,代表他们都有一个影子寄存器。如果使用影子寄存器:用户值->寄存器->影子寄存器->起作用,如果不适用影子寄存器,则这个用户值进入寄存器就立马起作用,使用影子寄存器后,这个用户值只有在产生中断后下一次计数时才开始起作用。
TIM6,TIM7的时基初始化结构体:

typedef struct
{
unit16_t TIM_Prescaler;     			//设置分频系数(PSC)
unit16_t TIM_CouterMode    ;    		//计数模式,基本定时器默认向上计数
unit32_t TIM_Period;       			//重载值(ARR)
unit16_t TIM_ClockDivision;             //外部输入时钟分频因子,基本定时器没有
unit8_t TIM_PepetionCounter;		    //重复计数器,基本定时器没有,高级定时器独有
}TIM_TimeBaseInitTypeDef

(本文是观看野火视频学习总结)

猜你喜欢

转载自blog.csdn.net/weixin_46468790/article/details/107108928