Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/arduino/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Serial port 对Arduino Uno的pySerial写入得到缓冲_Serial Port_Arduino_Pyserial - Fatal编程技术网

Serial port 对Arduino Uno的pySerial写入得到缓冲

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") ...

我有一个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上,因为当我用IDE提供的串行监视器测试它时,它工作得非常好

我曾尝试在每次写之前增加最多10秒的睡眠时间,但没有成功

试试这个:

serial.write("INIT\r")

writelines
可能包含一个列表(但我现在无法查看)。

谢谢。我正在使用的pySerial版本中没有writeline(),但我使用write()实现了同样的功能。出于某种原因,它只是起了作用。我猜这和行尾字符有关…好吧,编辑我的回答。我就是这么想的。您需要显式地写入行终止符,就像您键入它一样。我不这样认为,通常另一端在CR上进行定界,只需刷新就会给它字符,它仍将等待定界符。我正在Arduino程序中检查“\n”字符。无论writelines使用的是\n还是\r\n,它都应该可以正常工作。我从来没有怀疑过问题出在writelines身上,我对此感到十分惊讶。我仍然认为这与串行连接有关。
serial.write("INIT\r")