我开始进行Arduino编程,并且在使用pySerial库中的write()命令时遇到了一些麻烦。我有一个arduino程序,可以使用arduino IDE的Serial终端正常工作。我可以编写命令,它会使用blackmagic 3g-SDI shell返回一些文本并更改相机的参数。每次发送内容时,它应该返回一条确认消息或错误消息,这证明我使用pySerial write()函数未发送任何内容。我也知道有实际的通信,因为当我使用readline()时,我可以在程序的开头看到“开始”消息。
我已经尝试过使用腻子,并按照完整的教程逐步在命令行中直接使用腻子,但是同样发生的是,我真的不知道我还能做些什么,我已经访问了许多论坛和主题,尝试了不同的东西。
import serial
import time
arduino = serial.Serial("COM3",baudrate = 9600, timeout = 2)
#arduino.open()
print(arduino.is_open)
time.sleep(2)
def sendCommand(command):
arduino.write(bytes(b"command"))
done = arduino.readline()
doneDecoded = done.decode('ascii')
print(doneDecoded)
print(done)
print('done')
pass
while True:
command =input(" Write your command : ")
sendCommand(command)
我希望从arduino收到对我输入的任何形式的响应,但是现在响应只是空白,好像他没有收到任何数据一样。
Arduino很可能只是在等待EOL(行尾)字符(或序列)开始处理可变长度命令。
EOL通常是\r
或\n
或两者结合。尝试在您的后发送arduino.write(bytes(b"command"))
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句