573的中断这样写一旦接低电平程序就不运行了一样。

看了一下好像没有中断的例程,在pm里面看到一个,然后我就改了我用的PA12引脚,虽然配了上拉,但是量了下只有1.5V左右,而且一旦接低电平程序好像就不运行了。我有一个串口1s输出一次的,这里接低电平就一直不会输出了,我的中断也不是电平中断啊。

#define SENSOR_PIN  GPIO_Pin_12
void Set_Sensor_State(uint8_t Enable)
{
    if(Enable == 1)
    {
        GPIOA_ModeCfg( SENSOR_PIN, GPIO_ModeIN_PU );
        GPIOA_ITModeCfg( SENSOR_PIN, GPIO_ITMode_FallEdge );        // 下降沿唤醒
        GPIOA_ClearITFlagBit( SENSOR_PIN );
        PFIC_EnableIRQ( GPIO_A_IRQn );
    }
    else
    {
        PFIC_DisableIRQ( GPIO_A_IRQn );
    }
}
extern uint16_t Blink_Delay;
uint16_t Blink[2] = {500,1600},i = 0;
__attribute__((interrupt("WCH-Interrupt-fast")))
__attribute__((section(".highcode")))
void GPIOA_IRQHandler( void )
{
  if(GPIOA_ReadITFlagBit(SENSOR_PIN) == 1)
  {
      GPIOA_ClearITFlagBit( SENSOR_PIN );
      //中断处理函数
      Blink_Delay = Blink[!i];
  }
}


GPIOA_ReadITFlagBit  的实现原型是  (R16_PA_INT_IF&(pin))

这意味着, 如果判断某个pin中断有效 等于1 是不合适的,


你上面的程序 无论如何都不会等于1,以至于中断没有清, 一直卡在中断里.




那我想区分中断来源应该怎么做呢?


== GPIO_Pin_12这种是吧?


只有登录才能回复,可以选择微信账号登录