stm32定时器中断类型分析

  一直在用的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)

 

 

 

 

 

 

 

  没有头绪,还是去查看stm32数据手册吧。

TIM_IT_Update:更新中断,计数器向上溢出/向下溢出,计数器初始化(通过软件或者内部/外部触发) 

TIM_IT_CC1~4:都是捕获/比较中断,貌似都是平等的,即输入捕获,输出比较

TIM_IT_Trigger:触发事件(计数器启动、停止、初始化或者由内部/外部触发计数)

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

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

 

posted @ 2016-12-08 15:56  一只奋斗的考拉  阅读(13171)  评论(0编辑  收藏  举报