STM32中断服务函数不写这句不写这句TIM_ GetITStatus可以吗?
STM32中断服务函数不写这句不写这句TIM_ GetITStatus可以吗?为什么STM32中断的,在中断服务函数里还要写上判断中断来源这一句.
例如一般写法通常如下:
void TIM3_IRQHandler(void)
{
if ( TIM_GetITStatus(TIM3 , TIM_IT_Update) == RESET) //判断中断来源
{写要执行的代码
TIM_ClearITPendingBit(TIM3 , TIM_FLAG_Update);
}
RE:STM32中断服务函数不写这句不写这句TIM_ GetITStatus可以吗?
这个是为了判断是不是产生了对应的中断。回复:STM32中断服务函数不写这句不写这句TIM_ GetITStatus可以吗?
1、当然可以,你只要按照STM32处理中断的规矩处理相关问题后,就可以了。一般情况下,中断标志位是必须要清除的(包括硬件清除和软件清除)。
2、如果你要干掉这个语句的话,你就确认,这个中断函数是否只响应这个中断标志位,否则的话,你乱清除标志位可能会漏掉中断。
RE:STM32中断服务函数不写这句不写这句TIM_ GetITStatus可以吗?
当然可以,以串口为例,如果你只开了一个接收中断,其他如发送, 接收溢出,错误等全关闭,那么进入中断必然是接收中断,无需判断,真接清接收中断标志位即可。 可以去掉if语句
页:
[1]