求助原子哥,关于TIM_IT_Update和TIM_FLAG_Update的问题

2019-07-21 02:52发布

原子哥的代码是:
void TIM3_IRQHandler(void)   //TIM3中断
{
        if (TIM_GetITStatus(TIM3, TIM_IT_Update) != RESET)  //检查TIM3更新中断发生与否
                {
                TIM_ClearITPendingBit(TIM3, TIM_IT_Update  );  //清除TIMx更新中断标志
                LED1=!LED1;
                }
}

但是清除中断标志位,用TIM_FLAG_Update也是。
在宏定义中:
这两个的值是一样的,所以有区别吗,没区别的话,为啥又要定义2个?
求助原子哥,解释一下。

友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
3条回答
活到老,学到老
1楼-- · 2019-07-21 04:02
jxh123 发表于 2018-1-29 12:56
通过TIM_ClearITPendingBit(TIM_TypeDef* TIMx, uint16_t TIM_IT)和TIM_ClearFlag(TIM_TypeDef* TIMx, ui ...

谢谢,谢谢
jxh123
2楼-- · 2019-07-21 02:53
 精彩回答 2  元偷偷看……
xfenghany
3楼-- · 2019-07-21 04:12
实际上两个函数实现的功能是一样的,都是清除相对应的标志位,只是标志位和中断位含义不一样,是标志位但是不一定会产生中断

一周热门 更多>