【发布时间】:2014-09-11 22:52:57
【问题描述】:
我有一个 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 秒的睡眠,但没有成功。
【问题讨论】:
标签: serial-port arduino pyserial