void EXTI0_IRQHandler(void)
{
delay_ms(10);//消抖
while(PE__3==0) //WK_UP按键
{
  B__1=0;delay_ms(200);
  B__1=1;delay_ms(200);
}
EXTI-> R=1<<0; //清除LINE0上的中断标志位
}
//外部中断2服务程序
void EXTI1_IRQHandler(void)
{
delay_ms(10);//消抖
while(PE__2==0) //按键KEY2
{
  B__1=0;delay_ms(300);
  B__1=1;delay_ms(300);
}
EXTI-> R=1<<1; //清除LINE2上的中断标志位
}
//外部中断3服务程序
void EXTI2_IRQHandler(void)
{
delay_ms(10);//消抖
while(PE__1==0) //按键KEY1
{
  B__1=0;delay_ms(400);
  B__1=1;delay_ms(400);
}
EXTI-> R=1<<2; //清除LINE3上的中断标志位
}
//外部中断4服务程序
void EXTI3_IRQHandler(void)
{
delay_ms(10);//消抖
while(PE__0==0) //按键KEY0
{
  B__1=0;delay_ms(500);
PB__1=1;delay_ms(500);
}
EXTI->PR=1<<3; //清除LINE4上的中断标志位
}
//外部中断初始化程序
//初始化PA0/PE2/PE3/PE4为中断输入.
void EXTIX_Init(void)
{
GPIO_IN_Init(); //这是自己写的引脚初始
Ex_NVIC_Config(GPIO_E,0,FTIR); //下降沿触发
Ex_NVIC_Config(GPIO_E,1,FTIR); //下降沿触发
Ex_NVIC_Config(GPIO_E,2,FTIR); //下降沿触发
Ex_NVIC_Config(GPIO_E,3,FTIR); //下降沿触发
MY_NVIC_Init(2,3,EXTI0_IRQChannel,2); //抢占2,子优先级3,组2
MY_NVIC_Init(2,2,EXTI1_IRQChannel,2); //抢占2,子优先级2,组2
MY_NVIC_Init(2,1,EXTI2_IRQChannel,2); //抢占2,子优先级1,组2
MY_NVIC_Init(2,0,EXTI3_IRQChannel,2); //抢占2,子优先级0,组2
}
为什么我自己改了引脚在仿真里怎么也不正常 我上面的写法有没有问题 求高人指点!!! |