嗨,有人知道为什么 Serial.print() 不适用于 Arduino micro 吗?
我尝试了这段代码
void setup() {
Serial.begin(9600); // initialization
while (!Serial){}
;
Serial.println("Begin");
}
但是串行监视器上没有显示任何内容。
提前致谢!
最佳答案
我猜你的意思是:
void setup() {
Serial.begin(9600);
while (!Serial);
Serial.println("Begin");
}
实际上你想要的是:
void setup() {
Serial.begin(9600);
Serial.println("Begin");
}
因为我认为 !Serial
不是定义的行为,因为 Serial
是串行通信的实例。在 Serial
类上调用 not
运算符可能会编译并工作,但无论是 true 还是 false,它总是会返回相同的结果。如果它返回 false,您将最终阻止您的 arduino 在该语句之后执行任何其他操作。
不过,基本上,当您设置串行通信时,您可以放心地假设它已准备好进行通信。有时,您可能需要延迟一点(根据我自己的经验,大约 3 秒),以便主机为每个基于 atmega32uX 的 arduinos 设置设备,Micro 和 Leonardo 就是这种情况。如果您不添加 3 秒的延迟,Arduino 将打印 Begin
语句,但您不会看到它,因为计算机没有再次重置设备在打印之前。
为了更好地理解我的意思,请尝试以下代码:
void setup() {
Serial.begin(9600);
Serial.println(10);
delay(1000);
Serial.println(9);
delay(1000);
Serial.println(8);
delay(1000);
Serial.println(7);
delay(1000);
Serial.println(6);
delay(1000);
Serial.println(5);
delay(1000);
Serial.println(4);
delay(1000);
Serial.println(3);
delay(1000);
Serial.println(2);
delay(1000);
Serial.println(1);
delay(1000);
Serial.println("Begin");
}
如果您很早打开串行监视器,您将只能看到从7
开始的输出。
HTH
关于arduino - 无法查看 Arduino micro 的 Serial.print(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21532500/