STM32高级定时器和通用定时器初始化区别

本文详细介绍了STM32高级定时器与基本定时器的区别,重点解释了高级定时器特有的重复次数寄存器及其配置方法,并通过示例对比了高级定时器与基本定时器的初始化过程。

前言

 有时我们在初始化STM32高级定时器的时候,发现以初始化STM32基本定时器同样的方法初始化高级定时器定时器不能进入中断,这是因为STM32高级定时器和基本定时器有所区别,下面跟大家介绍下。

stm32高级定时器包含如下图1所示的寄存器:
stm32高级定时器时基单元
stm32基本定时器包含如下图2所示的寄存器:
在这里插入图片描述
我们发现stm32高级定时器在时基单元中多了个重复次数寄存器,故在配置是加上重复次数配置寄存器的配置即可。

下面是库函数配置TIM1高级定时器和TIM3基本定时器的区别:

//高级定时器1中断初始化
//这里时钟选择为APB1的2倍,而APB1为36M
//arr:自动重装值。
//psc:时钟预分频数
//这里使用的是定时器3!
void TIM1_Int_Init(u16 arr,u16 psc)
{
   
   
    TIM_TimeBaseInitTypeDef  TIM_TimeBaseStructure;
	NVIC_InitTypeDef NVIC_InitStructure;

	RCC_APB2PeriphClockCmd(RCC_APB2Periph_TIM1, ENABLE); //时钟使能
	
	//定时器TIM1初始化
	TIM_TimeBaseStructure.TIM_Period = arr; //设置在下一个更新事件装入活动的自动重装载寄存器周期的值	
### STM32 高级定时器通用定时器区别 #### 功能对比 STM32系列微控制器中的高级定时器通用定时器虽然都属于定时器类别,但在功能应用场合上有显著差异。 - **通道数量** 高级定时器通常具有更多的通道用于输入捕获/输出比较操作。例如,TIM1 TIM8 是常见的高级定时器实例,拥有多个互补通道支持复杂的电机控制需求[^2]。 - **死区时间插入** 只有高级定时器具备内置的死区时间插入功能,这对于防止功率开关器件直通非常重要,在逆变电路或H桥驱动场景下尤为有用。 - **刹车输入(紧急停止)** 高级定时器还提供了一个特殊的刹车输入引脚(BRK),当检测到该信号有效时可以立即关闭所有输出以实现快速保护机制;而这一点是普通通用定时器所不具备的能力。 - **同步接口** 这两类定时之间另一个重要差别在于是否存在外部触发单元(ETR)以及主从模式下的相互连接能力——即能否作为其他定时资源的时间基准源来进行多轴协调运作。显然前者在这方面表现得更为出色。 ```c // 示例代码展示如何初始化一个高级定时器 (假设为 TIM1) void Init_Advanced_Timer(void){ __HAL_RCC_TIM1_CLK_ENABLE(); // 启用 TIM1 的时钟 TIM_HandleTypeDef htim1; htim1.Instance = TIM1; htim1.Init.Prescaler = 79; htim1.Init.CounterMode = TIM_COUNTERMODE_UP; htim1.Init.Period = 999; HAL_TIM_PWM_Init(&htim1); } ```
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值