艰苦奋斗 发表于 2015-10-4 12:13:56

读数字输出口的状态

看标题,有人可能会迷糊,为什么要读输出口的状态?输出口能不能读状态?事件起因是因为今天要写个小车驱动程序,需要将L298的方向控制端口反转一小段时间来刹车,习惯了51单片机的 P1=~P1;的写法,就想Arudino是否也可以这样操作?查了一遍网络,没发现任何资料,查论坛的WIKI,也没有提到有关内容。哪就做个实验吧。把blink示例改写如下按位取反:void setup() {
// initialize digital pin 13 as an output.
pinMode(13, OUTPUT);
digitalWrite(13,HIGH);
Serial.begin(9600);
}

// the loop function runs over and over again forever
void loop() {
digitalWrite(13,~digitalRead(13));   // turn the LED on (HIGH is the voltage level)
Serial.println(digitalRead(13));
delay(1000);            // wait for a second
}编译通过,但测试结果是端口不能翻转。
再试一下逻辑取反:void setup() {
// initialize digital pin 13 as an output.
pinMode(13, OUTPUT);
digitalWrite(13,HIGH);
Serial.begin(9600);
}

// the loop function runs over and over again forever
void loop() {
digitalWrite(13,!digitalRead(13));   // turn the LED on (HIGH is the voltage level)
Serial.println(digitalRead(13));
delay(1000);            // wait for a second
}可以成功运行,LED正常闪烁,说明Arduino可以通过digitalRead()读取输出口的状态。
页: [1]
查看完整版本: 读数字输出口的状态