大神们,外部中断服务函数,5以上怎么用?

2019-07-21 03:01发布

比如说外部中断2的服务函数,很简单:
void EXTI2_IRQHandler(void) {   delay_ms(10); //消抖        if(KEY2==0)           {  LED0=!LED0;        }                    EXTI_ClearITPendingBit(EXTI_Line2);//清除LINE2上的中断标志位 }

0~4的服务函数都很简单,他们都是独立的,直接往里写就行。但是到了5以上就变成公用函数,我就不太明白怎么用了。

大大们能不能举个例子,比如我想用外部中断5,这时候:
void EXTI9_5_IRQHandler(void)
{    }
这时候里面怎么写?
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
19条回答
xiaojianjian
1楼-- · 2019-07-22 09:48
 精彩回答 2  元偷偷看……
lycreturn
2楼-- · 2019-07-22 13:10
回复【14楼】xiaojianjian:
---------------------------------
 if((EXTI->R & 0x20)==0x40)  //说明中断线6发生了中断   
if((EXTI->R & 0x20)==0x80)  //说明中断线7发生了中断 
这2个有点问题   没改完
 if(EXTI->R & 0x40) 
 if(EXTI->R & 0x80)
xiaojianjian
3楼-- · 2019-07-22 15:01
回复【15楼】lycreturn:
---------------------------------
 if((EXTI->R & 0x20)==0x20)  //说明中断线5发生了中断      
{  
  //中断内容  
}  
 if((EXTI->R & 0x40)==0x40)  //说明中断线6发生了中断      
{  
  //中断内容  

 if((EXTI->R & 0x80)==0x80)  //说明中断线7发生了中断      
{  
  //中断内容  

EXTI->R|=1<<5;//清除中断挂起 
EXTI->R|=1<<6;//清除中断挂起 
EXTI->R|=1<<7;//清除中断挂起

这样子对了
xiaojianjian
4楼-- · 2019-07-22 15:46
 精彩回答 2  元偷偷看……
lycreturn
5楼-- · 2019-07-22 17:52
回复【17楼】xiaojianjian:
---------------------------------
都可以,用定时器的话,mini板  4个定时器  一个定时器4路  理论上可以搞16路
xiaojianjian
6楼-- · 2019-07-22 22:29
 精彩回答 2  元偷偷看……

一周热门 更多>