launchpad关于外部中断的问题(只触摸一下按钮就中断了)

2019-03-24 13:55发布

用的是G2553,写了一个很简单的外部中断的程序。 运行后发现,只需要轻轻触摸一下按钮S2,就触发中断了,根本不用按下去。
程序如下:
void main(void){ WDTCTL = WDTPW + WDTHOLD;             // Stop watchdog timer P1DIR |= BIT0;                        // Set P1.0 to output direction P1IE = BIT3;                          //the P2 interrupt is enable P1IFG &= ~BIT3;                           // P1.3 IFG cleared _BIS_SR(LPM3_bits + GIE); //进入LPM3模式/ 开中断允许}
#pragma vector=PORT1_VECTOR__interrupt void PORT1 (void){ P1OUT ^= 0x01;                      // Toggle P1.0 using exclusive-OR P1IFG &= ~BIT3;                     // P1.3 IFG cleared}
后来我发现,主函数加入这一句代码:P1REN |= BIT3;就可以解决这个问题。请问这是为什么?我看CCS自带例程里面的注释,P1REN这个寄存器好像是加上拉电阻,这和按钮的灵敏程度有什么关系?怎么会出现这种情况?
学MSP430时间不长,请教各位前辈、老师。谢谢! 此帖出自小平头技术问答
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
10条回答
一掠凡尘
2019-03-26 05:43
你木有接地额,接下地,再做个开关,我前天也遇到了这情况

一周热门 更多>

相关问题

    相关文章