我有一个 Python 脚本,它使用 pySerial 将短消息写入我的 Arduino Uno 板上的串行端口。有一个循环,根据某些条件,循环内可能发生多次写入,如下所示:
while True:
#Conditions block 1
if <CONDITION1>:
serial.writelines("INIT")
elif <CONDITION2>:
serial.writelines("NEW")
...
#Conditions block 2
if <CONDITION1>:
# Fetch something from the Internet
serial.writelines("CHECK")
elif <CONDITION2>:
# Fetch something from the Internet
serial.writelines("STOP")
...
但是,当我的 Arduino 板收到此消息时,它会收到作为 INIT 的第一条消息,但第二条消息被读取为 INITSTOP 或 INITCHECK,第三条消息与之前的消息连接。我的 arduino 程序以这种方式检查特定消息:
if(msg.equals("CHECK")) {
// Do something
}
else if(msg.equals("INIT")) {
// Do Something else
}
有人可以指导我吗?顺便说一句,我认为问题不在于 Arduino,因为当我使用 IDE 提供的串行监视器对其进行测试时,它可以完美运行。
我尝试在每次写入前添加长达 10 秒的睡眠,但这并没有奏效。