我有一个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秒的睡眠,但这没有用。
答案 0 :(得分:1)
请尝试这样做:
serial.write("INIT\r")
writelines
可能需要一个列表(但我现在无法检查)。