我正在编写一个与Arduino通信的python脚本。每次我关闭python脚本并再次打开它时,Arduino都会重新启动。这是因为脚本在启动时重新打开了串口,因此我的Arduino重新启动。有没有办法在不重启Arduino的情况下打开脚本中的串口?
这是我的Python代码:
import time
import serial
from sys import argv
script,elemento,control =argv
arduino= serial.Serial('COM7',9600)
#while True:
time.sleep(1)
elemento=int(elemento)
control=int(control)
if (elemento>0) & (elemento<10):
print(elemento)
print(control)
if control == 1:
arduino.write(str(elemento))
time.sleep(0.5)
arduino.write(str(control))
elif control == 0:
arduino.write(str(elemento))
arduino.write(str(control))
arduino.close()
答案 0 :(得分:1)
Arduino被重置,因为串口打开命令正在激励DTR线。我的python经验非常少,但是link将dsrdtr显示为第九个参数。通过在那里放一个bool你应该能够让它停止重置。我不确定你是想要0还是1,所以你必须进行实验。
此外,根据具体的电路板和焊接能力,通常有一个组件可以从电路板上移除,以阻止串口重置电路板。请注意,此选项使上载新固件变得更加困难,因为引导加载程序使用重置启动。
祝你好运!