读数字输出口的状态
看标题,有人可能会迷糊,为什么要读输出口的状态?输出口能不能读状态?事件起因是因为今天要写个小车驱动程序,需要将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]