通用定时器

在目前的阶段对于我来说用通用定时器就可以了,所以这边也就对通用定时器做一个总结

首先每个定时器都是完全独立的,没有互相共享任何资源。它们可以一起同步操作。

         通用定时器(General-Purpose Timers)


  功能: 通用定时器提供了更多的功能和配置选项,包括PWM生成、脉冲计数、输入捕获、输出比较等功能。
  用途场景: 适用于需要更复杂的定时功能的应用,如PWM控制、频率测量、脉冲计数等。测量输入信号的脉冲长度(输入捕获)或者 产生输出波形 ( 输出比较 和 PWM )等。

定时器的工作原理

  例如:基本定时器的计数器只能进行向上计数,计数器 根据频率进行向上计数,即每来一个 CNT脉冲,CNT 值就加 1。当 CNT值与ARR的设定值相等时计数器就会重新从 0 开始计数并生成计数器上溢事件(更新事件),如此重复以上过程。

2. 通用定时器(General-Purpose Timers)
  功能: 通用定时器提供了更多的功能和配置选项,包括PWM生成、脉冲计数、输入捕获、输出比较等功能。
  用途场景: 适用于需要更复杂的定时功能的应用,如PWM控制、频率测量、脉冲计数等。测量输入信号的脉冲长度(输入捕获)或者 产生输出波形 ( 输出比较 和 PWM )等。

STM32F407的通用定时器

定时器最大时钟即为定时器工作频率

由于没学过数电,那些框图也不是很了解,就先省略了,等之后学明白了再把这部分补上去。orz

定时器的计数模式

1.递增计数  2.递减计数  3.中心对齐

上图中,纵轴表示计数器的计数值,横轴表示时间, ARR 表示自动重载寄存器的值,小红
点就是更新事件发生的时间点。举个例子,递增计数模式下,当计数值等于 ARR 时,计数器的
值被复位为 0 ,定时器溢出,并伴随着更新事件的发生,后面继续递增计数。递减计数模式和
中心对齐模式请参考前面的描述。

定时时间(溢出周期)计算

arr:自动重装值。
psc:时钟预分频数
定时器溢出时间计算方法:Tout=((arr+1)*(psc+1))/Ft us.
Ft=定时器工作频率,单位:Mhz

假如定时1s,定时器时钟频率为72Mhz。则arr=9999,psc=7199时,Tout= (9999+1)*(7199+1) / 72=1000 000 us =1s。

 比如配置一个1s的定时器,这里用的是定时器4

代码如下

  htim4.Instance = TIM4;
  htim4.Init.Prescaler = 8400-1;
  htim4.Init.CounterMode = TIM_COUNTERMODE_UP;
  htim4.Init.Period = 10000-1;
  htim4.Init.ClockDivision = TIM_CLOCKDIVISION_DIV1;
  htim4.Init.AutoReloadPreload = TIM_AUTORELOAD_PRELOAD_DISABLE;

  • 11
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值