定时器需要掌握的知识较多,因此拆分为四个部分:时基单元、输出比较、输入捕获、从模式控制器
时基单元
时基单元需要了解五个部分:时钟来源、预分频器PSC、计数器CNT、自动重装寄存器ARR、重复计数器RCR
时钟来源:有两个,时钟树和从模式控制器,提供最基础的时钟方波信号
预分频器PSC:将时钟信号降频,降低倍率=PSC+1,需要手动设置PSC
计数器CNT:对PSC传过来的时钟脉冲信号进行计数,每接收一个脉冲信号,计数器就+1
常用函数
TIM_TimeBaseInit(TIMx,&结构体变量名);
作用:初始化TIM参数配置
参数1:TIMx, x = 1-4
参数2:TIM_TimeBaseInitTypeDef 类型的结构体变量名
TIM_TimeBaseInitTypeDef TIM_TimeBaseInitStruct; // 定义结构体变量
TIM_TimeBaseInitStruct.TIM_ClockDivision = TIM_CKD_DIV1; // 类似滤波,不会影响定时器
TIM_TimeBaseInitStruct.TIM_CounterMode = TIM_CounterMode_Up; // 计数模式,也就是方向
TIM_TimeBaseInitStruct.TIM_Period = 1000 - 1; // 周期即阈值,即计数多少次才会产生溢出
TIM_TimeBaseInitStruct.TIM_Prescaler = 72 - 1; // 预分频系数
TIM_TimeBaseInitStruct.TIM_RepetitionCounter = 0; // 重复计数系数
TIM_Cmd(TIMx,ENABLE);
作用:定时器的开关,控制定时器是否工作
参数1:TIMx, x = 1-4
参数2:ENABLE/DISABLE 使能/失能
TIM_ITConfig(TIMx,TIM_IT_xxx, ENABLE);
作用:设置某个标志位的开关
参数1:TIMx, x = 1-4
参数2:TIM_IT_xxx xxx = TIM中的某一个标志位
参数3:ENABLE/DISABLE 使能/失能
浙公网安备 33010602011771号