特点:多通道,一般有四个
16位或者32位的计数器(CNT)
多种时钟源(内部APB,外部时钟其他定时器)
多种功能模式:基本定时,中断输入捕获,PWM等
基本结构
APB总线 PSC预分配器 CNT CCR
1.基本定时模式
时钟源:
APB总线时钟按照(PSC预分配)(84-1才设置成84)设定频率计数,CNT增减当计数器达到预设的自动重装载值(ARR)时,产生更新时间(UEV),可以触发中断
应用:
产生精确的时间基准,周期性中断保证控制周期
2.编码器接口模式
时钟源:
引脚输入脉冲
ARR设置成最大值,CNT参与计数,CCR不参与
功能:
解码增量式编码器的A/B相信号计数器根据编码器的旋转方向递增或者递减
(正交编码器)两个相差90°控制正负旋转
应用:位置检测,速度测量等主要用于电机闭环控制
3.PWM模式
时钟源:
APB总线时钟
CNT在0至ARR,ARR决定周期频率,CCR决定占空比
功能:
通过设置自动重装载(ARR),,确定PWM周期,设置比较值(CCR)确定占空比。当计数器(CNT)在周期内达到CCR的值时,改变输出引脚的状态,产生PWM波形
4.输入捕获模式
时钟源:
APB总线时钟
CNT随着时钟计数,ARR最大值,CCR输入触发,保存CNT 的值
功能:
定时器捕获外部信号到达的时间,及当输入信号的沿到来时候将当前计数器的值保存到CCR中
一个定时器只有一个CNT,
但是有4个 ccr实体1个arr
四个pwm波的占空比可以不同,但是频率一定相同
常用API
PWM模式
-
HAL_TIM_PWM_Init(TIM_HandleTypeDef *htim) //初始化
-
HAL_TIM_PWM_Start(TIM_HandleTypeDef *htim, uint32_t Channel) //启动功能
-
HAL_TIM_PWM_Stop(TIM_HandleTypeDef *htim, uint32_t Channel) //停止功能
-
__HAL_TIM_SET_COMPARE(HANDLE, CHANNEL, COMPARE) //设置CCR
-
__HAL_TIM_SET_AUTORELOAD(HANDLE, AUTORELOAD) //设置ARR
定时中断模式
-
HAL_TIM_Base_Init(TIM_HandleTypeDef *htim) //初始化
-
HAL_TIM_Base_Start_IT(TIM_HandleTypeDef *htim) //启动功能
-
HAL_TIM_Base_Stop_IT(TIM_HandleTypeDef *htim) //停止功能
-
__HAL_TIM_SET_AUTORELOAD(HANDLE, AUTORELOAD) //ARR
-
__HAL_TIM_SET_COUNTER(HANDLE, COUNTER) //得到cnt
-
__HAL_TIM_GET_COUNTER(HANDLE) //看门狗
-
HAL_TIM_PeriodElapsedCallback(TIM_HandleTypeDef *htim) //中断处理