gpio中断一旦使能,就会马上进入中断处理函数,尽管中断状态位没有被置1,这就造成多进了一次中断处理函数,往后的执行都是正确的。4357的引脚功能已经配置好。直接看我写的中断代码吧
void int_test(void)
{
NVIC_DisableIRQ(PIN_INT4_IRQn);//禁能中断,PIN_INT4_IRQn是指GPIO中断的4号中断源
Chip_SCU_GPIOIntPinSel(4,4,8);//4号中断源,Port4,pin number 4.
Chip_PININT_SetPinModeEdge(LPC_GPIO_PIN_INT,PININTCH4);//设置4号中断源为跳变沿触发模式
Chip_PININT_EnableIntHigh(LPC_GPIO_PIN_INT,PININTCH4);//使能4号中断源上升沿触发
Chip_PININT_ClearIntStatus(LPC_GPIO_PIN_INT,PININTCH4);//清除中断状态位
NVIC_EnableIRQ(PIN_INT4_IRQn);//使能
__nop();//在这里就会进入中断处理函数,搞不懂
__nop();
__nop();
__nop();
while(1);
}
void GPIO4_IRQHander(void)
{
Chip_PININT_ClearIntStatus(LPC_GPIO_PIN_INT,PININTCH4);//清除中断状态位
} |