一,STM32三种定时器区别
2个高级定时器
4个通用定时器
2个基本定时器
二,定时器的计数模式
向上计数模式:
计数器从0开始计数,当计数到自动装载值(TIMx_ARR)时产生向上溢出事件
向下计数模式:
计数器从自动装载值(TIMx_ARR)开始向下计数,当计数到0时产生向下溢出事件
中央对齐模式(向上/向下计数):
计数器从0开始计数,到自动装载值(TIMx_ARR)-1时,产生计数器溢出事件,
然后向下计数到1,产生计数器溢出事件,然后再从0开始重新计数
三,通用定时器的介绍
对于总线时钟有疑问请查看 STM32时钟系统
通用定时器包括:TIM2,TIM3,TIM4,TIM5
位于低速APB1总线上
16位定时器,支持向上,向下,中央对齐
自动重装载寄存器TIMx_CNT
16位可编程(1-65535.可实时修改)预分频器 TIMx_PSC
4个独立通道(TIMx_CH1-CH4),彼此不影响
独立通道作用:
1,输入捕获
2,输出比较
3,PWM生成(边缘或中间对齐模式)
4,单脉冲模式输出
每个定时器有4个独立通道,每个通道同一时间只能使用输入捕获和输出比较的一种
支持定时器互联
STM32的每个通用定时器都是完全独立的,没有互相共享的任何资源
产生中断和/DMA的事件:(6个独立的IRQ/DMA请求生成器)
1,更新: 计数器向上溢出/向下溢出,计数器初始化(通过软件或者内部外部触发)
2,触发事件(计数器启动,停止,初始化,由内部/外部触发计数)
3,输入捕获
4,输出比较
5,支持针对定位的增量(正交)编码器和霍尔传感电路
6,触发输入作为外部时钟或按周期的电流管理
STM32通用定时器被用于:
测量输入信号的脉冲长度(输入捕获)或产生输出波形(输出比较和PWM)等
使用定时器预分频器和RCC时钟控制器预分频器,脉冲长度和波形周期可以在几个微秒到几个毫秒间调整
四,通用定时器框图
1,第一部分:时钟发生器
主要作用:产生时基单元的时钟
1)时基单元的时钟来源来自内部时钟
来自内部时钟:
触发控制器将内部APB1总线通过倍频得到的时钟作为时基单元的时钟来源
2)时基单元的时钟来源来自外部时钟
来自外部时钟:
外部引脚输入信号,TIMx_ETR(定时器2 3 4,定时器5没有这个寄存器),
通过极性选择,边沿检测,和预分频器,再通过输入滤波产生时钟
作为时基单元的时钟来源
3)时基单元的时钟来源来自其他定时器
来自其他定时器:
ITR0-ITR4内部触发输入口,通过定时器的级联,来自其他定时器的时钟,
通过选择器,触发控制器,作为时基单元的时钟来源
由其他定时器的TRGO,输入到ITR1-ITR4,定时器的级联
4)时基单元的时钟来源来自外部通道
外部通道输入:
通过选择器,通过触发控制器,作为时基单元的时钟来源
总结:
使用较多的应用场景是:内部时钟
2,时基单元部分
CK_PSC时钟信号进行预分频,产生CK_CNT时钟为计数器最终时钟
计数器在这个时钟的控制下进行计数,向上/向下/中央对齐计数是在触发控制器的相应寄存器中配置的
当计数器向上计数到重装载值或向下计数到0将触发中断或DMA请求
3,输入捕获部分
应用场景:计算脉冲宽度
先设置为捕获上升沿,输入信号进行输入滤波(抗干扰)和边沿检测,检测到上升沿,捕获比较寄存器会将这个值记下来
再设置为捕获下降沿,检测到下降沿,又记录下这个值,
通过这两个值可以计算脉冲宽度
每个定时器有4个独立通道,每个通道同一时间只能使用输入捕获和输出比较的一种
4,输出比较部分
PWM输出:
设置捕获/比较寄存器为一个置,当计数器比这个值大输出高电平,比这个值小输出低电平
这样可以产生一个波,通过调整占空比(捕获/比较寄存器的值),可以输出PWM
STM32通用定时器详解
7075

被折叠的 条评论
为什么被折叠?



