如题,如果用低电平中断的话,bIO_INT_ACT位可以正常清零,但是这个下降沿中断就是不清零,导致一直进GPIO中断,难道还有哪里设置有问题吗
void GPIOInterruptCfg()
{
GPIO_IE |= bIE_IO_EDGE; //上升/下降触发
GPIO_IE |= bIE_P1_5_LO; //P15
IE_GPIO = 1; //GPIO中断开启
}
如题,如果用低电平中断的话,bIO_INT_ACT位可以正常清零,但是这个下降沿中断就是不清零,导致一直进GPIO中断,难道还有哪里设置有问题吗
void GPIOInterruptCfg()
{
GPIO_IE |= bIE_IO_EDGE; //上升/下降触发
GPIO_IE |= bIE_P1_5_LO; //P15
IE_GPIO = 1; //GPIO中断开启
}
同问,帮顶!
我使用立创商城的CH554新版开发板学习 WCH554G芯片,使用的是554芯片的GPIO的例程;
GPIO的P1.5下降沿中断,将P1.5设置为准双向模式,先P1.5输出=1, 万用表测得5V电平,然后将P1.5接GND,可以看到进入了GPIO中断(我在GPIO中断程序里设置一个P1.7=1来点亮指示灯),但是 bIO_INT_ACT 标志一直不清零;
我然后将P1.5重新设置为高阻输入模式,使用4.7K电阻上拉,当P1.5进行低电平接触时,可以看到进入了GPIO中断,但是 bIO_INT_ACT 标志还是一直不清零;
请教应该如何处理才能消除GPIO的下降沿中断?
自己网上搜索得到答案了,参见: http://bbs.eeworld.com.cn/thread-641208-1-4.html
可能是我对于GPIO的中断标志的描述理解不到位:
当bIE_IO_EDGE=1 时,该位作为边沿中断标志,为1 表示检
测到有效边沿,该位无法软件清零,只能在复位时或电平中断模式下或进入相应的中断服务程序时被自动清零;
我的理解: “或进入相应的中断服务程序时被自动清零" 有点误导读者了。