Skip to main content
 首页 » 编程设计

python之如何在不重启的情况下打开Arduino串口

2025年05月04日75虾米姐

我正在编写一个与 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,所以您必须进行试验。

此外,根据具体的电路板和您的焊接能力,通常有一个组件可以从电路板上移除以阻止串口重置电路板。请注意,此选项会使上传新固件变得更加困难,因为引导加载程序使用重置来启动。

祝你好运!