gpt4 book ai didi

python - 将变量分配给 pyserial 端口

转载 作者:太空宇宙 更新时间:2023-11-03 16:45:47 25 4
gpt4 key购买 nike

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

ser = serial.Serial(
port=VARIABLE
baudrate=115200,
parity=serial.PARITY_NONE,
stopbits=serial.STOPBITS_ONE,
bytesize=serial.EIGHTBITS
)

我尝试使用port=VARIABLE,但这不起作用。它似乎只接受路径,但在我的程序中我有很多设备。

最佳答案

据我了解,您在 com 端口上有多个设备,您希望选择其中一个并将该端口分配给 VARIABLE

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

您可以检查 serial_ports() 输出以确定要使用哪个 COM PORT,并将相应的端口 slice 分配给 变量。我使用了 port 0 这是我的 COM1

函数serial_ports()是跨平台的。我有 window ,它可以无缝运行。

灵感来自here

演示代码

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
>>>

关于python - 将变量分配给 pyserial 端口,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36319480/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com