stm8 外部中断问题

2019-07-19 21:02发布

本帖最后由 catbal 于 2016-11-27 00:41 编辑

我使用PC2口设为有中断上拉输入后  为啥检测不到低电平  我通过灯来判断  C2 接按键   

void key_Init(void)
{
  
  //key
     GPIO_Init(GPIOC, GPIO_PIN_2, GPIO_MODE_IN_PU_IT);
   //GPIO_Init(GPIOC, GPIO_PIN_2, GPIO_MODE_IN_PU_NO_IT);
    //wifi_staus_led
    GPIO_Init(GPIOD, GPIO_PIN_2, GPIO_MODE_OUT_PP_LOW_FAST);
   
    GPIO_Init(GPIOB, GPIO_PIN_1, GPIO_MODE_IN_PU_NO_IT);
   
    GPIO_Init(GPIOC, GPIO_PIN_6, GPIO_MODE_OUT_PP_LOW_FAST);
    GPIO_Init(GPIOC, GPIO_PIN_7, GPIO_MODE_OUT_PP_LOW_FAST);
   
    EXTI_DeInit();
    EXTI_SetExtIntSensitivity(EXTI_PORT_GPIOC, EXTI_SENSITIVITY_FALL_ONLY);
   
}

void  mian()
{
CLK_HSIPrescalerConfig(CLK_PRESCALER_HSIDIV1);  
key_Init();
   while(1)
   {
       if(GPIO_ReadInputPin(GPIOC, GPIO_PIN_2)==0)
        GPIO_WriteHigh(GPIOD, GPIO_PIN_2);
    else
      GPIO_WriteLow(GPIOD, GPIO_PIN_2);
   }

#pragma vector=7
__interrupt void EXTI_PORTC_IRQHandler(void)
{
    TIM1_Cmd(ENABLE);
    key_time1=0;
        Delay_ms(10000);
        Delay_ms(10000);
     if(GPIO_ReadInputPin(GPIOC, GPIO_PIN_2)==0)
     {
        if(key_flag==1&&key_time<50)
        key_flag=2;
        else
          key_flag=1;
        Delay_ms(10000);
        Delay_ms(10000); Delay_ms(10000); Delay_ms(10000);
        Delay_ms(10000); Delay_ms(10000); Delay_ms(10000);
        Delay_ms(10000); Delay_ms(10000); Delay_ms(10000);
        if((GPIO_ReadInputPin(GPIOC, GPIO_PIN_2)==0))
        {
            key_flag=3;
        }
        Delay_ms(10000);
        
     }


}


}

友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。