比如说外部中断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)
{ }
这时候里面怎么写?
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
---------------------------------
if((EXTI->R & 0x20)==0x40) //说明中断线6发生了中断
if((EXTI->R & 0x20)==0x80) //说明中断线7发生了中断
这2个有点问题 没改完
if(EXTI->R & 0x40)
if(EXTI->R & 0x80)
---------------------------------
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;//清除中断挂起
这样子对了
---------------------------------
都可以,用定时器的话,mini板 4个定时器 一个定时器4路 理论上可以搞16路
一周热门 更多>