新手上路
- 积分
- 40
- 金钱
- 40
- 注册时间
- 2019-9-23
- 在线时间
- 7 小时
|
4金钱
tpad.c中第70行为获取上升沿捕获 TIM_GetFlagStatus(TIM5, TIM_IT_CC2)
为什么传入的参数是用的中断TIM_IT_CC2,而不是TIM_FLAG_CC2,后面我去查了参数有效性发现这两个参数的地址都是0x0004,这里是不是原子哥代码写错了呢?
其次在 TPAD_Reset 函数中用的是清除中断待处理位函数TIM_ClearITPendingBit,为什么不用清除待处理标志位函数TIM_ClearFlag?
void TIM_ClearITPendingBit(TIM_TypeDef* TIMx, uint16_t TIM_IT)
{
/* Check the parameters */
assert_param(IS_TIM_ALL_PERIPH(TIMx));
assert_param(IS_TIM_IT(TIM_IT));
/* Clear the IT pending Bit */
TIMx->SR = (uint16_t)~TIM_IT;
}
void TIM_ClearFlag(TIM_TypeDef* TIMx, uint16_t TIM_FLAG)
{
/* Check the parameters */
assert_param(IS_TIM_ALL_PERIPH(TIMx));
assert_param(IS_TIM_CLEAR_FLAG(TIM_FLAG));
/* Clear the flags */
TIMx->SR = (uint16_t)~TIM_FLAG;
}
这是两个函数,我发现它们都是操作SR寄存器,那么这两个参数TIM_IT,TIM_FLAG到底有什么区别,他们都是什么含义?
一头雾水,求大佬解答
|
|