新手上路
- 积分
- 21
- 金钱
- 21
- 注册时间
- 2018-1-16
- 在线时间
- 3 小时
|
1金钱
#include"exti.h"
#include"delay.h"
#include"led.h"
#include"key.h"
#include"beep.h"
void EXTI0_IRQHandler(void)
{
delay_ms(10);
if(WK_UP==1)
{
BEEP=!BEEP;
}
EXTI->PR=1<<0;
}
void EXTI2_IRQHandler(void)
{
delay_ms(10);
if(KEY0==0)
{
LED0=!LED0;
}
EXTI->PR=1<<2;
}
void EXTI3_IRQHandler(void)
{
delay_ms(10);
if(KEY1==0)
{
LED1=!LED1;
}
EXTI->PR=1<<3;
}
void EXTI4_IRQHandler(void)
{
delay_ms(10);
if(KEY2==0)
{
LED0=!LED0;
LED1=!LED1;
}
EXTI->PR=1<<4;
}
void EXTIX_Init(void)
{
KEY_Init();
Ex_NVIC_Config(GPIO_A,0,RTIR);
Ex_NVIC_Config(GPIO_E,2,FTIR);
Ex_NVIC_Config(GPIO_E,3,FTIR);
Ex_NVIC_Config(GPIO_E,4,FTIR);
MY_NVIC_Init(2,0,EXTI0_IRQn,2);
MY_NVIC_Init(2,1,EXTI2_IRQn,2);
MY_NVIC_Init(2,2,EXTI3_IRQn,2);
MY_NVIC_Init(2,3,EXTI4_IRQn,2);
}
这是我的代码,只有EXTI2_IRQHandler、EXTI3_IRQHandler、EXTI4_IRQHandler中KEY的顺序为KEY0、KEY1、KEY2时下装到开发板才会正常执行,如果是其他顺序时按下KEY0、KEY2指示灯会没有反应,但是仿真状态下顺序颠倒也是可以执行的。
|
|