在看STM8L的库函数时有个地方不太理解,想请教一下。
void TIM4_ClearITPendingBit(TIM4_IT_TypeDef TIM4_IT)
{
assert_param(IS_TIM4_IT(TIM4_IT));
TIM4->SR1 = (uint8_t)(~(uint8_t)TIM4_IT);
}
typedef enum
{
TIM4_IT_Update = ((uint8_t)0x01), /*!< Update Interrupt*/
TIM4_IT_Trigger = ((uint8_t)0x40) /*!< Trigger Interrupt*/
}TIM4_IT_TypeDef;
问题:
1.TIM4->SR1 = (uint8_t)(~(uint8_t)TIM4_IT);此句进行的是位操作吗?怎么理解?
2.TIM4_IT_Update= ((uint8_t)0x01), 此句是位定义吗?
3.按照我的理解清除标志位应该是TIM4->SR1 ^= (uint8_t)TIM4_IT;请问这样写有什么问题吗?
Thank you very much!
此帖出自
小平头技术问答
一周热门 更多>