打印
[ARM9、LPC]

lpc4357 GPIO中断问题

[复制链接]
2060|1
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
vansi1989|  楼主 | 2015-6-29 12:56 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
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);//清除中断状态位
}

相关帖子

沙发
vansi1989|  楼主 | 2015-6-30 14:48 | 只看该作者
问题已解决,呵呵,虽然没人回答,还是把自己的解决方案贴一下。
首先,中断既然进入,肯定是检测到了触发信号。查找了很久,发现是调试器的缓存问题,调试器记录了上一次中断状态标志位,下次调试的时候它会默认得到了中断触发。我用的ulink,试了jlink就没问题。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

10

主题

40

帖子

0

粉丝