This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

MSP430内部上拉电阻怎么配置啊



msp430 launchpad 芯片是m430g2553   无法检测按键 可能是因为没有上拉   然后我配置了上拉电阻  为什么不成功呢 我用电压表测到管脚电压是0  

WDTCTL = WDTPW + WDTHOLD; //关闭看门狗
P1DIR &=~BIT3; //定义P1.3按键
P1DIR|=BIT0; //定义P1.0led
P1REN|=BIT3;//上拉电阻
P1OUT|=BIT3;

程序在此  求指教

  • MSP430的管脚上拉直接设置PXREN的对应位就行了。更何况LAUNCHPAD的P1.3管脚外部加了一个47K的上拉电阻R34。你检查一下其他原因。

    给你一段参考代码,测试好的。

      #define  BUTTON  BIT3

    void main(void) {     WDTCTL = WDTPW + WDTHOLD;           P1DIR &= ~BUTTON;     P1IFG &= ~(BUTTON);         // 开启同步信号的中断处理      P1IES &= ~BUTTON;          // 设置下降沿触发中断     P1IE |= BUTTON;            // 使能同步管脚的中断         _BIS_SR(GIE);                while(1)     {

         } } #pragma vector = PORT1_VECTOR __interrupt void P1_IRQ(void) {     if (P1IFG & BUTTON)     {      //.....这里加你需要的代码      }

        P1IFG &= ~(BUTTON); }

     

  • 代码部分重新整理下:

      #define  BUTTON  BIT3

    void main(void)

     {  

       WDTCTL = WDTPW + WDTHOLD;          

        P1DIR &= ~BUTTON;    

        P1IFG &= ~(BUTTON);         // 开启同步信号的中断处理     

        P1IES &= ~BUTTON;          // 设置下降沿触发中断    

        P1IE |= BUTTON;            // 使能同步管脚的中断        

        _BIS_SR(GIE);               

        while(1)     {

         }

    }

    #pragma vector = PORT1_VECTOR

    __interrupt void P1_IRQ(void)

    {    

        if (P1IFG & BUTTON)   

        {      //.....这里加你需要的代码    

        }

        P1IFG &= ~(BUTTON);

    }

  • 谢谢   问题解决了  不过没有配置内部上拉电阻的时候按键确实是检测不到的  

  • 请问如何设置上拉电阻,是不是PxREN置1就行了,还是?