STM32定时器使用详解

本文详细解析了在72MHz时钟频率下STM32定时器的使用,介绍了计算定时值的方法,强调了预分频TIM_Prescaler和定时周期TIM_Period的计算公式,并特别指出当AHB时钟为72MHz时,APB1预分频系数应大于2以确保低速外设不超过36MHz的限制。通过示例函数TIM2Init()展示了如何初始化TIM2定时器。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

/*******************************************************************************

  •   										定时器定时时间计算公式																*
    

*72M下定时值 = (1+预分频TIM_Prescaler)/72 * (1+定时周期TIM_Period) *

  •   TIM的一个时钟计数周期 =	(1/72)us ,
      预分频后要经过(1+预分频TIM_Prescaler)个时钟周期(1/72)us 才会计一次数,
      一共要循环(1+定时周期TIM_Period)次,才会溢出,产生一个TIM中断事件,达到自己想要达到的定时时间
    

*备注:当AHB=72MHz时,APB1的预分频系数必须大于2,因为APB1总线挂的设备都属于低速外设,
它的最大频率只能为36MHz,如果APB1的预分频系数=2,则因为这个倍频器,TIM2–TIM7
仍可以达到72MHz的时钟频率
*******************************************************************************/
void TIM2Init()
{
TIM_TimeBaseInitTypeDef TIM_TimeBaseInitStructure;

TIM_TimeBaseInitStructure.TIM_Prescaler = 7199;  //设置预分频,使每一次的计数周期为100us
TIM_TimeBaseInitStructure.TIM_CounterMode = TIM_CounterMode_Up;
TIM_TimeBaseInitStructure.TIM_Period = 9999; //循环10000次,刚好为1s,循环完成后自动重装
TIM_TimeBaseInitStructure.TIM_ClockDivi
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值