为何P1.3一直为低电平,导致按键没有作用

2019-03-24 09:52发布

请大神帮忙看下,就这么一个简单的程序  就是不知道错误在哪里??????急
#include"msp430g2553.h"

void main(void)
{
        WDTCTL=WDTPW+WDTHOLD;
        P1DIR=0X01;
        P1OUT|=BIT0;
        P1REN|=BIT3;        //设置内电阻
        P1OUT|=BIT3;    //设置上拉
        while(1)
        {
                if((P1IN&BIT3)==0)    //不用按下键也可以进去  太奇怪了 按道理P1IN应该为高电平??
                {
                        _delay_cycles(100000);
                        if((P1IN&BIT3)==0)
                        {
                                P1OUT^=BIT0;
                                _delay_cycles(10000);
                                while(!(P1IN&BIT3));     //程序一直在里面出不来????
                        }
                }
        }
       
}



此帖出自小平头技术问答
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
10条回答
tuibiannie
1楼-- · 2019-03-24 17:41
 精彩回答 2  元偷偷看……
tuibiannie
2楼-- · 2019-03-24 23:05
< :TI_MSP430_内容页_SA7 --> 用示波器测试,按下P1.3对应的按键  没有反应 一直为低电平
ienglgge
3楼-- · 2019-03-25 00:34
先测量一下,这个引脚是否对地短路。如果没有,设置成输入,加一个上拉电阻看看,电平什么样。
tuibiannie
4楼-- · 2019-03-25 00:39
 精彩回答 2  元偷偷看……
gh131413
5楼-- · 2019-03-25 05:46
这个原因慢慢找,肯定是哪个地方失误,找出来了更记得牢……
wateras1
6楼-- · 2019-03-25 06:05
#include "io430.h"
#include "intrinsics.h"
void main(void)
{
  unsigned int i=0;
  WDTCTL = WDTPW + WDTHOLD;
  P1DIR|=(BIT0+BIT6);
  P1DIR&=~BIT3;
  P1OUT|=(BIT0+BIT6);
  P1REN|=BIT3;
  while(1)
  {
    if(!(P1IN&BIT3))
    {
      for(i=0;i<23000;i++);
      if(!(P1IN&BIT3))
      {
        while(!(P1IN&BIT3));
        P1OUT^=(BIT6+BIT0);
      }
     
    }
   
   
  }
  
  

一周热门 更多>

相关问题

    相关文章