串行监视器
串行监视器提供了一种向/从你的 Arduino 代码发送/接收信息的方法。 你可以使用它来查看程序打印的调试消息,或发送命令控制你的程序。
Arduino Uno and Mega
Arduino Uno和Mega在硬件上都支持串行协议(USART)。串行监视器将自动连接到硬件串行端口并检测波特率,因此它是开箱即用的,无需任何特殊配置。
你可以使用 Arduino's Serial class 与串行监视器交互:
void setup() {
Serial.begin(115200); // Any baud rate should work
Serial.println("Hello Arduino\n");
}
void loop() {
// Do nothing...
}
只有当你从程序中打印一些输出时,串行监视器才会显示。要更改这种行为,见下文。
Arduino Mega有多个硬件串行端口。你可以通过在 diagram.json 中配置引脚,将串行监视器连接到其他串行端口。例如,要将Serial2
连接到串行监视器,请在diagram.json中的connections
部分添加以下行:
[ "mega:17", "$serialMonitor:TX", "" ],
[ "mega:16", "$serialMonitor:RX", "" ],
将 mega
部分替换为 你的wokwi-arduino-mega
板卡使用的实际ID。
请注意:你需要将 $serialMonitor:TX
连接到你的串行端口的 RX
引脚,并将 $serialMonitor:RX
连接到你的串行端口的 TX
引脚。我知道,这可能会令人困惑。(交叉相连,互换角色,你发我收,我发你收)。
ATtiny85 + SoftwareSerial
ATtiny85芯片硬件上没有内置串口(USART)。但是你可以使用一个USART协议的软件实现,使用SoftwareSerial
库与串行监视器交互。
首先,通过将以下行添加到diagram.json中的connections
部分,来声明将用于串行通信的引脚:
[ "tiny:PB0", "$serialMonitor:TX", "" ],
[ "tiny:PB1", "$serialMonitor:RX", "" ],
将 tiny
部分替换为wokwi-attiny85
板卡使用的实际ID,将PB1
/PB0
替换为你想要使用的引脚名称。
然后,根据下面来配置SoftwareSerial库:
#include <SoftwareSerial.h>
SoftwareSerial Serial(PB0, PB1);
void setup() {
Serial.begin(9600); // Must be 9600
Serial.println("Hello Arduino\n");
}
void loop() {
// Do nothing...
}
要保证在代码中的引脚名称与图表文件中的引脚名称匹配。第一个参数和SoftwareSerial
的构造函数匹配并连接到$serialMonitor:TX
的引脚,并且第二个参数应和连接到$serialMonitor:RX
的引脚相匹配。
波特率必须设置为9600。这是在模拟器中硬编码的!如果使用不同的值,串行监视器会中出现垃圾信息。
如果你想参考完整示例,请查看ATtiny85 SoftwareSerial example project。
注意:如果你只想使用串行监视器打印调试消息,请查看the TinyDebug library。