Serial port 对Arduino Uno的pySerial写入得到缓冲
我有一个Python脚本,它使用pySerial将短消息写入Arduino Uno板上的串行端口。存在一个循环,根据某些条件,循环中可能会发生多次写入,如下所示:Serial port 对Arduino Uno的pySerial写入得到缓冲,serial-port,arduino,pyserial,Serial Port,Arduino,Pyserial,我有一个Python脚本,它使用pySerial将短消息写入Arduino Uno板上的串行端口。存在一个循环,根据某些条件,循环中可能会发生多次写入,如下所示: while True: #Conditions block 1 if <CONDITION1>: serial.writelines("INIT") elif <CONDITION2>: serial.writelines("NEW") ...
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上,因为当我用IDE提供的串行监视器测试它时,它工作得非常好
我曾尝试在每次写之前增加最多10秒的睡眠时间,但没有成功 试试这个:
serial.write("INIT\r")
writelines
可能包含一个列表(但我现在无法查看)。谢谢。我正在使用的pySerial版本中没有writeline(),但我使用write()实现了同样的功能。出于某种原因,它只是起了作用。我猜这和行尾字符有关…好吧,编辑我的回答。我就是这么想的。您需要显式地写入行终止符,就像您键入它一样。我不这样认为,通常另一端在CR上进行定界,只需刷新就会给它字符,它仍将等待定界符。我正在Arduino程序中检查“\n”字符。无论writelines使用的是\n还是\r\n,它都应该可以正常工作。我从来没有怀疑过问题出在writelines身上,我对此感到十分惊讶。我仍然认为这与串行连接有关。
serial.write("INIT\r")