l 16位的向上、向下、向上/向下(中心对齐)计数模式,支持自动重装载
l 16位的预分频器
l 每个定时器都有多个独立通道,每个通道可用于
* 输入捕获
* 输出比较
* PWM输出
* 单脉冲模式
l 高级定时器还可以产生互补输出
l 可以产生中断/DMA请求:
* 更新事件:计数器向上/向下溢出,计数器初始化(通过软或者内部/外部触发)
* 触发事件:计数器启动,停止,初始化或者有内部/外部触发计数
* 输入捕获
* 输出比较
一、定时器之计数模式 (一) 计数模式向上计数
计数器从0向上计数(递增)到自动装载值,然后再次回到0开始计数,并产生一个计数溢出事件
向下计数
计数器从自动装载值向下计数(递减)到0,然后再次回到自动装载值开始计数,并产生一个计数器向下溢出事件
中央对齐模式(向上/向下计数)
计数器从0开始计数到自动装载值-1,并产生一个计数器溢出事件,然后再向下计数到0+1,并产生一个计数溢出事件,然后再向上计数。
(二)定时器的溢出时间计算
time=(ARR+1)*(PSC+1)/Tclk
ARR为自动装载值
PSC:预分频系数
Tclk:定时器的APB时钟,通常等于系统时钟
如:
tclk为72M
psc为7199
arr为4999
time=(4999+1)*(7199+1)/72 000 000 = 0.5s = 500ms
(三)CubeMX设置这里需要注意的是你所需要使用的定时器是挂载在APB1还是APB2。相应的要调节他们时钟频率
选择
选择内部时钟
基础配置,这里配置的是1秒计数
l Prescaler (PSC- 16 bits value),预分频器(PSC- 16位值)
l Counter Mode,计数器模式:
up 向上
down 向下
Center Aligned mode 中心对齐模式
l Counter Period (AutoReload Register - 16 bits value),重装载值
l auto-reload preload,自动重装载开启
开启更新中断
中断优先级数字越低越高
(四)编程记录中断开启
HAL_StatusTypeDef HAL_TIM_Base_Start_IT(TIM_HandleTypeDef *htim)