STM32通用定时器

1.stm32共有8个定时器,分为三种(高级定时器TIM1,TIM8、通用定时器TIM2~TIM5、基本定时器TIM6,TIM7),区别如下:

2.通用TIMx(TIM2\TIM3\TIM4\TIM5)定时器完全独立,没有任何公用的资源,都挂载在APB1总线上,功能包括:

    1.16位向上(计数器从0计数到自动加载值TIMx_ARR,然后重新从0开始计数并且产生一个计数器溢出事件)、向下(计数器从自动装入的值TIMx_ARR开始向下计数至0,然后循环,并产生一个计数器向下溢出事件)、向上/向下(中心对齐,计数器从0开始计数到自动装入的值-1,产生一个计数器溢出事件,然后向下计数到1并且产生一个计数器溢出事件;如此循环)自动装载计数器(TIMx_CNT)

    2.16位可编程(可以实时修改)预分频器(TIMx_PSC),计数器时钟频率的分频系数为1~65536之间的任意数值。

    3.4个独立通道(TIMx_CH1~4):输入捕获、输出比较、PWM生成(边缘或中间对齐模式)、单脉冲模式输出。

    4.使用外部信号(TIMx_CH1~4)控制定时器和定时器互连的同步电路(一个定时器控制另一个定时器)。

    5.如下时间发生时产生中断/DMA:更新(计数器向上/向下溢出,计数器初始化---通过软件或者内部/外部触发)、触发事件(计数器启动、停止、初始化或者由内部/外部触发计数)、输入捕获、输出比较。

    6.支持针对定位的增量(正交)编码器和霍尔传感器电路。

    7.触发输入作为外部时钟或者按周期的电流管理。

3.通用定时器一般应用:

    1.测量输入信号的脉冲长度(输入捕获)。

    2.产生输出波形(输出比较和PWM)。

4.通用定时器框图可以分为4个部分

    1.时钟发生单元(有四个来源一是APB1总线时钟---内部时钟CK_INT、二是外部时钟模式1---外部输入脚TIx、三是定时器级联输入、四是外部时钟模式2---外部触发输入ETR),给时基单元提供一个时钟。

    2.时基单元。

    3.输入捕获。

    4.输出比较(PWM)。

5.寄存器配置

    1.TIMx_SMCR选择内部时钟

    2.计数器TIMx_CNT,当前值寄存器

    3.预分频寄存器TIMx_PSC

    4.自动重装载寄存器TIMx_ARR,该寄存器在物理上的对应2个寄存器。一个是程序员可以直接操作的,另外一个是程序员看不到的,叫做“影子寄存器”。事实上,真正起作用的是影子寄存器,根据TIMx_CR1寄存器APRE位的设置:APRE=0时,预装载寄存器的值可以随时传送到影子寄存器。此时两者是相通的;而APRE=1,在每一次更新事件(UEV)时,才把预装载寄存器的内容传送到影子寄存器。

        5.控制寄存器1TIMx_CR1.位4控制计数方向,位0控制是否使能计数器。

    6.DMA/中断使能寄存器TIMx_DIER

溢出时间=(ARR+1)(PSC+1)/ Fclk;(PSC+1)/ Fclk即为分频后送给定时器的时钟,乘以重装载值即为最终的溢出时间。

  • 4
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值