2019-08-13 22:27发布
ADS1993 发表于 2017-9-22 11:09 [mw_shl_code=c,true]void EXTI9_5_IRQHandler(void) {
17779131997 发表于 2017-9-27 20:59 谢谢解释,这个了解,但是优先级呢?那5~9是用一个通道的吧,怎么整呢
lanlzp 发表于 2017-9-27 22:40 if else 决定处理顺序,硬件不能提供优先级判断
最多设置5个标签!
{
if(EXTI_GetITStatus(EXTI_Line5) != RESET) //确保是否产生了EXTI Line中断
{
EXTI_ClearITPendingBit(EXTI_Line5); //清除标志
EXTI_ClearFlag(EXTI_Line5);
if((GPIO_ReadInputDataBit(GPIOA, GPIO_Pin_5) == 1))
{
}
}
else if(EXTI_GetITStatus(EXTI_Line6) != RESET) //确保是否产生了EXTI Line中断
{
EXTI_ClearITPendingBit(EXTI_Line6); //清除标志
EXTI_ClearFlag(EXTI_Line6);
if((GPIO_ReadInputDataBit(GPIOA, GPIO_Pin_6) == 1))
{
}
}
else if(EXTI_GetITStatus(EXTI_Line7) != RESET) //确保是否产生了EXTI Line中断
{
EXTI_ClearITPendingBit(EXTI_Line7); //清除标志
EXTI_ClearFlag(EXTI_Line7);
if((GPIO_ReadInputDataBit(GPIOA, GPIO_Pin_7) == 1))
{
}
}
else if(EXTI_GetITStatus(EXTI_Line8) != RESET) //确保是否产生了EXTI Line中断
{
EXTI_ClearITPendingBit(EXTI_Line8); //清除标志
EXTI_ClearFlag(EXTI_Line8);
if((GPIO_ReadInputDataBit(GPIOA, GPIO_Pin_8) == 1))
{
}
}
else if(EXTI_GetITStatus(EXTI_Line9) != RESET) //确保是否产生了EXTI Line中断
{
EXTI_ClearITPendingBit(EXTI_Line9); //清除标志
EXTI_ClearFlag(EXTI_Line9);
if((GPIO_ReadInputDataBit(GPIOA, GPIO_Pin_9) == 1))
{
}
}
}[/mw_shl_code]
谢谢解释,这个了解,但是优先级呢?那5~9是用一个通道的吧,怎么整呢
if else 决定处理顺序,硬件不能提供优先级判断
了解了,多谢
一周热门 更多>