目录
STM32F10系列总共最多有8个定时器
定时器的分类- 16 bit General Purpose Timer
- 16 bit Advanced Control Timer
- 16 bit Basic
定时器的种类 | 位数 | 计数器模式 | 产生DMA请求 | 捕获/比较通道 | 互补输出 | 特殊应用场景 |
高级定时器TIM1,TIM8 | 16 | 向上,向下,向上或向下 | 可以 | 4 | 有 | 带死区控制的互补输出和紧急刹车,可用于PWM电机控制 |
通用定时器TIM2~TIM5 | 16 | 向上,向下,向上或向下 | 可以 | 4 | 无 | 通用定时计数,PWM输出,输入捕获,输出比较 |
基本定时器TIM6,TIM7 | 16 | 向上,向下,向上或向下 | 可以 | 0 | 无 | 主要应用于驱动DAC |
- 位于低速的APB1总线
- 16位向上,向下,中心对齐计数模式,自动装载计数器TIMx_CNT
- 16位可编程预分频器TIMx_PSC,计数器时钟频率的分频系数为1~65535之间的任何数值
- 4个独立通道TIMx_CH1~4,这些通道可以用作:输入捕获,输出比较,PWM生成,单脉冲输出
- 可使用外部信号TIMx_ETR控制定时器和定时器互联的同步电路
- 可以产生中断或DMA请求(6个独立的IRQ或DMA请求生成器):更新,触发事件,输入捕获,输出比较,支持针对定位的增量编码器和霍尔传感器电路,触发输入作为外部时钟或者按周期的电流管理
- 可用于测量输入信号的脉冲长度或产生输出波形PWM
向上计数
从0计数到加载值,循环往复
向下计数
从加载值减到0,循环往复
中央对齐模式从0计数到加载值再回到0,循环往复
定时器的框图 定时器的时钟来源
时基单元
首先将CK_PSC进行预分频,得到CK_CNT时钟,这就是给CNT计数器的最终时钟
在这个时钟下,CNT计数器+/-地进行计数这里的+/-可以在触发控制器中进行配置
输入捕获对引脚的电平进行捕获,例如上升沿和下降沿我都去捕获,上升沿来临时,我在捕获/比较1寄存器中记录下当前计数值,在下降沿来临时,我再次在捕获/比较1寄存器中记录下当前计数值,这样,两个数值相减,我就能知道脉冲宽度了
同一个通道,只能作为输入捕获或输出比较
输出比较比如我们在捕获/比较1寄存器中设置一个值50,计数器从上100往下到0计数,到大于50时输出高电平,小于50时输出低电平,这样就可以产生PWM波
这样可以很方便地修改占空比(就是这里的50)和周期(就是这里的100)