STM32F4的定时器定时器参数设置

STM32F4的定时器定时器参数设置问题

函数:void TIM3_Int_Init(u16 arr,u16 psc);

//通用定时器3中断初始化
//arr:自动重装值。
//psc:时钟预分频数
//定时器溢出时间计算方法:Tout=((arr+1)*(psc+1))/Ft us.
//Ft=定时器工作频率,单位:Mhz
//这里使用的是定时器3!
void TIM3_Int_Init(u16 arr,u16 psc);

实例:

STM32F4的初始化定时器,TIM3_Int_Init(5000-1,8400-1);

TIM3_Int_Init(5000-1,8400-1)这一句是0.5s进入一次的中断。正点原子的中断代码,8400是分频系数,5000是预装载值。我们使用的是TIM3.根据时钟树,可以知道TIM3挂载在APB1下,APB1的时钟频率是=42MHZ,但是因为我们分频系数不等于1,所以TIM3的时钟为APB1的频率*2=84MHZ。

计算过程:

TIM3的时钟84/8400=0.01M, 
一个时钟周期为1_000_000/10_000=100us 
因为装载值是为5000,所以最后溢出的时间100us*5000=500_000us=0.5s 
最后可得这个程序0.5s进入一次定时器中断

在STM32F4的系统时钟中:
有这样的计算方式:

STM32F4的时钟 
HCLK = SYSCLK / 1 = 168MHz ,AHB总线时钟 
PCLK2 = HCLK / 2 = 84MHz 
PCLK1 = HCLK / 4 = 42MHz

关于STM32F4定时器时钟频率问题 
(1)当APB1和APB2分频数为1的时候,TIM1、TIM8~TIM11的时钟为APB2的时钟,TIM2~TIM7、TIM12~TIM14的时钟为APB1的时钟; 
(2)而如果APB1和APB2分频数不为1,那么TIM1、TIM8~TIM11的时钟为APB2的时钟的两倍,TIM2~TIM7、TIM12~TIM14的时钟为APB1的时钟的两倍。

解释为:

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值