ishenglx 发表于 2016-12-4 13:51:21

请问IO口INPUT模式自己输入高电平是什么原因

int out1 = 2;
int out1_kg1 = 5;
int out1_kg2 = 6;
int out1_kg1_st = LOW;
int out1_kg2_st = LOW;
void setup()//程序初始化
{
pinMode(out1_kg1,INPUT);
pinMode(out1_kg2,INPUT);

//pinMode(out1,OUTPUT);
Serial.begin(9600);//设置波特率9600
delay(500);
//out1_kg1_st = digitalRead(out1_kg1);
//out1_kg2_st = digitalRead(out1_kg2);
}


void loop()//程序主体循环
{
int tp1 = digitalRead(out1_kg1);
int tp2 = digitalRead(out1_kg2);
Serial.println(tp1);
Serial.println(tp2);
Serial.println("---------");
delay(1000);
}
用的是 pro mini 但是我io口上什么都没接怎么会一会输入HIGH,一会输入LOW,这是什么原因啊。。

pathletboy 发表于 2016-12-4 14:53:02

默认是浮空输入,电平本身就不确定,你可以选择内部上拉或者外部上拉,上拉后,电平默认为高。
内部上拉设置
pinMode(out1_kg1, INPUT_PULLUP);
pinMode(out1_kg2, INPUT_PULLUP);

ishenglx 发表于 2016-12-4 16:17:29

pathletboy 发表于 2016-12-4 14:53
默认是浮空输入,电平本身就不确定,你可以选择内部上拉或者外部上拉,上拉后,电平默认为高。
内部上拉设 ...

按下按钮会输出什么?

pathletboy 发表于 2016-12-4 17:28:59

避开电路谈电平,那我只能回答你可高可低。

ishenglx 发表于 2016-12-4 17:32:38

pathletboy 发表于 2016-12-4 17:28
避开电路谈电平,那我只能回答你可高可低。

pinMode(out1,OUTPUT);

ishenglx 发表于 2016-12-4 17:32:56

pathletboy 发表于 2016-12-4 17:28
避开电路谈电平,那我只能回答你可高可低。

pinMode(out1,OUTPUT);
这样会有影响吗?

ishenglx 发表于 2016-12-5 08:30:45

pathletboy 发表于 2016-12-4 14:53
默认是浮空输入,电平本身就不确定,你可以选择内部上拉或者外部上拉,上拉后,电平默认为高。
内部上拉设 ...

谢谢,问题解决了

单片机菜鸟 发表于 2016-12-5 09:45:28

悬空引脚可高可低要么上拉要么下拉
页: [1]
查看完整版本: 请问IO口INPUT模式自己输入高电平是什么原因