stm32定时器中断类型分析

本文深入探讨了STM32定时器的各种中断类型,包括更新中断(TIM_IT_Update)、捕获/比较中断(TIM_IT_CC1~4)、触发中断(TIM_IT_Trigger)等,并解释了它们在实际应用中的作用及区别。

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

  •  一直在用的stm32定时器的中断都是TIM_IT_Update更新中断,也没问为什么,直到碰到有人使用TIM_IT_CC1中断,才想到这定时器的中断类型究竟有什么区别,都怪当时学习stm32的时候不够精啊,百度好久也没见有人解释清楚,下面开始我的探究之路。下面是所有的定时器中断类型。
#define TIM_IT_Update                      ((uint16_t)0x0001)
#define TIM_IT_CC1                         ((uint16_t)0x0002)
#define TIM_IT_CC2                         ((uint16_t)0x0004)
#define TIM_IT_CC3                         ((uint16_t)0x0008)
#define TIM_IT_CC4                         ((uint16_t)0x0010)
#define TIM_IT_COM                         ((uint16_t)0x0020)
#define TIM_IT_Trigger                     ((uint16_t)0x0040)
#define TIM_IT_Break                       ((uint16_t)0x0080)

  • TIM_IT_Update:更新中断,计数器向上溢出/向下溢出,计数器初始化(通过软件或者内部/外部触发) 
  • TIM_IT_CC1~4:都是捕获/比较中断,貌似都是平等的,即输入捕获,输出比较
  • TIM_IT_Trigger:触发事件(计数器启动、停止、初始化或者由内部/外部触发计数)

使用的时候都是调用函数TIM_ITConfig()来使能指定的中断类型,调用TIM_GetITStatus()函数来查看是否有中断发生,入口参数都是平等的。

可能就是不同的事件导致中断的发生略有不同

 

评论 8
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值