开中断之后,模拟I2C的SDA(GPIO_Pin_0)设置为输入读取数据...

2019-12-25 18:50发布

    DEAR ALL,
    请教一个问题,我开中断之后,模拟I2C的SDA(GPIO_Pin_0)设置为输入读取数据的时候会一直产生一个中断(EXTI0_IRQHandler)进来,导致I2C无法正常通讯。
    1、初始化的时候,I2C两根线初始化为输出:
            GPIO_Init(GPIOC, SCL, GPIO_Mode_Out_PP_High_Slow);
            GPIO_Init(GPIOC, SDA, GPIO_Mode_Out_PP_High_Slow);
    2、读SDA的数据时,重新初始化为带上拉输入,无中断:
            GPIO_Init(GPIOC, SDA, GPIO_Mode_In_PU_No_IT);
    这种情况下就会一直产生中断,EXTI0_IRQHandler,在中断里面清除中断标志位也还是一直产生。

    只要打开中断 enableInterrupts(); 就会如此。我现在做低功耗唤醒必须要开中断,我们现在用的芯片型号:STM8L101K3,麻烦各位帮忙看看有没有遇到过这种问题。
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。