Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/variables/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 将变量分配给串行端口_Python_Variables_Serial Port_Port_Pyserial - Fatal编程技术网

Python 将变量分配给串行端口

Python 将变量分配给串行端口,python,variables,serial-port,port,pyserial,Python,Variables,Serial Port,Port,Pyserial,我必须给串行端口分配一个变量 ser = serial.Serial( port=VARIABLE baudrate=115200, parity=serial.PARITY_NONE, stopbits=serial.STOPBITS_ONE, bytesize=serial.EIGHTBITS ) 我尝试使用port=VARIABLE,但不起作用。 它似乎只接受路径,但在我的程序中,我有许多设备。据我所知,您在com端口上有多个设备,您希望选择其中一个并将该端口分配给变量 下面是读取COM

我必须给串行端口分配一个变量

ser = serial.Serial(
port=VARIABLE
baudrate=115200,
parity=serial.PARITY_NONE,
stopbits=serial.STOPBITS_ONE,
bytesize=serial.EIGHTBITS
)
我尝试使用
port=VARIABLE
,但不起作用。
它似乎只接受路径,但在我的程序中,我有许多设备。

据我所知,您在
com
端口上有多个设备,您希望选择其中一个并将该端口分配给
变量

下面是读取
COM
端口并将第一个端口指定为可用COM端口的代码。然后它探测
COM
端口,查看其是否打开

您可以检查
串行端口()
输出,以确定要使用的
COM端口
,并相应地将相应的端口
分配给
变量
。我使用了
端口0
,它是我的
COM1

函数
串行端口()
是跨平台的。我有窗户,它可以无缝工作

灵感来自

演示代码

import sys
import glob
import serial


def serial_ports():

    if sys.platform.startswith('win'):
        ports = ['COM%s' % (i + 1) for i in range(256)]
    elif sys.platform.startswith('linux') or sys.platform.startswith('cygwin'):
        # this excludes your current terminal "/dev/tty"
        ports = glob.glob('/dev/tty[A-Za-z]*')
    elif sys.platform.startswith('darwin'):
        ports = glob.glob('/dev/tty.*')
    else:
        raise EnvironmentError('Unsupported platform')

    result = []
    for port in ports:
        try:
            s = serial.Serial(port)
            s.close()
            result.append(port)
        except (OSError, serial.SerialException):
            pass
    return result


if __name__ == '__main__':

    VARIABLE = serial_ports()[0] #Assign first port as COM port    
    ser = serial.Serial(
    port=VARIABLE,
    baudrate=115200,
    parity=serial.PARITY_NONE,
    stopbits=serial.STOPBITS_ONE,
    bytesize=serial.EIGHTBITS
    )

    print "Is port", VARIABLE , " open ?", ser.isOpen()
输出

Python 2.7.9 (default, Dec 10 2014, 12:24:55) [MSC v.1500 32 bit (Intel)] on win32
Type "copyright", "credits" or "license()" for more information.
>>> ================================ RESTART ================================
>>> 
Is port COM1  open ? True
>>>