STM32 ~ 定时器

定时器的基本框图:
在这里插入图片描述
不管是做PWM输出、定时中断还是输入捕获都肯定要搞清楚CK_INT 从哪里来,频率是多少?才能正确使用定时器。时钟肯定是来自时钟树,那我们就要去Reference manual里找找:
在这里插入图片描述
时钟源确实可以找到,但注意时钟存在翻倍可能性!if APBx PRESC= 1 x1 else x2 : 直接理解是如果APBx PRESC 预分频 设置成1 timer时钟等于APBx 不然 timer时钟为2倍APBx 。可是还是没有找到时钟源和timer时钟具体数值关系,这个就要去Datasheet里找了,找MCU系统框图:
在这里插入图片描述

我们发现有2个APB(Advanced Peripheral Bus) ,最大主频还还不一样,分别挂了多个定时器。到这里我们总算找到了timer的具体关联的时钟源了。如何计算频率呢?

举例1:假设使用的是timer2 AHB1=168MHz

// Timer2 On APB1 42MHz(MAX) ==> 可设 APB1 PRESC =4 APB1 =42MHz。

// if APBx PRESC = 1x1 else x2 ==> Timer2_CLK = 42MHz*2 = 84MHz 。

举例2:假设使用的是timer1、timer2 AHB1= 84 MHz

// Timer2 On APB1 42MHz(MAX) ==> 可设 APB1 PRESC =2 APB1 =42MHz。

// if APBx PRESC = 1x1 else x2 ==> Timer2_CLK = 42MHz*2 = 84MHz 。

// Timer1 On APB2 84MHz(MAX) ==> 可设 APB2 PRESC =1 APB2 =84MHz。

// if APBx PRESC = 1x1 else x2 ==> Timer1_CLK = 84MHz*1 = 84MHz 。

参考:
stm32定时器的理解
STM32定时器的使用(定时器中断、PWM输出和跳变捕获、主从模式)

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值