我正在编写一个与 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()
请您参考如下方法:
Arduino 被重置,因为串行端口打开命令正在向 DTR 线发出脉冲。我的 python 经验很少,但是这个 link将 dsrdtr 显示为第九个参数。通过在此处放置一个 bool 值,您应该能够使其停止重置。我不确定您是想要 0 还是 1,所以您必须进行试验。
此外,根据具体的电路板和您的焊接能力,通常有一个组件可以从电路板上移除以阻止串口重置电路板。请注意,此选项会使上传新固件变得更加困难,因为引导加载程序使用重置来启动。
祝你好运!
