STM32高级定时器和通用定时器使用时的一些区别

通用定时器挂载在APB1总线,高级定时器挂载在APB2总线。配置NVIC中断分组时,利用NVIC_InitStructure.NVIC_IRQChannel=TIM2_IRQN;可以配置全部通用定时器中断,但是高级定时器的中断配置是分开的,如定时器1分别是TIM1_BRK_IRQn / TIM1_UP_IRQn / TIM1_TRG_COM_IRQn/TIM1_CC_IRQn。四种分别配置不同的定时器中断,在stm32f10x.h中有相应英文注释。在使用定时器1做输入捕获时使用的是TIM1_CC_IRQn进行配置。高级定时器的中断服务函数名也和通用定时器的中断服务函数名有区别。高级定时器的中断服务函数名分别是:

TIM1_BRK_IRQHandler/TIM1_UP_IRQHandler/TIM1_ TRG_IRQHandler / TIM1_CC_IRQHandler

/*以下代码摘自正点原子论坛网友回答,汉字为自己注释的*/

TIM1_BRK_IRQn  = 24,  /*!< TIM1 Break Interrupt  */  /* TIM1打破中断*/

TIM1_UP_IRQn = 25, SS /*!< TIM1 Update Interrupt  */  /* TIM1 更新中断*/ 

TIM1_TRG_COM_IRQn = 26, /*!< TIM1 Trigger and Commutation Interrupt  */  /* TIM1触发器和交换中断*/

TIM1_CC_IRQn = 27,  /*!< TIM1 Capture Compare Interrupt    */ /* TIM1捕捉比较中断 */

 

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值