PythonArduinoPrototypingAPI v2关闭序列号P

2024-10-01 07:47:41 发布

您现在位置:Python中文网/ 问答频道 /正文

我使用PythonArduino原型API-v2模块与我的OSEPUNO(Arduino克隆)通信。API确实有一个close()函数,它应该关闭端口。我想在打开程序时检查端口的状态。如果端口是打开的,我想关闭它,以便程序的其余部分可以访问该端口。在

以下是我目前为止的代码:

from arduino import Arduino
import time
import serial.tools.list_ports

#Find USB Port
def find_port():  #Finds which port the arduino is plugged into
    ports = list(serial.tools.list_ports.comports())
    for p in ports:
        if '0403' in p[2]: 
            print p
            return p[0]
usbport = find_port() 
b = Arduino(usbport) #adds port 

pin = 0

b.output([])

while (True):
    val = b.analogRead(pin)    
    print val        
    print usbport
    time.sleep(0.05)

Tags: 端口import程序apitimeportserialports
1条回答
网友
1楼 · 发布于 2024-10-01 07:47:41

我想出来了。我用pySerial检查端口是否打开,如果是,我关闭了它。这将确保端口可用于程序的其余部分。在

from arduino import Arduino
import time
import serial.tools.list_ports
import serial

#Find USB Port
def find_port():  #Finds which port the arduino is plugged into
    ports = list(serial.tools.list_ports.comports())
    for p in ports:
        if '0403' in p[2]: 
            print p
            return p[0]
usbport = find_port() #Calls function to get Arduinos USB port

def closeport(): #Closes port if currently open
    ser = serial.Serial(usbport) 
    if ser.isOpen() == True:
        ser.close()

closeport() #make sure port is available

b = Arduino(usbport) #opens Arduino with correct port
pin = 0  #Assigns analog out, pin 0
b.output([])
while (True):
    val = b.analogRead(pin)    
    print val        
    print usbport
    time.sleep(0.05)

我希望这对其他人有帮助。在

相关问题 更多 >