PySerial文件未找到

2024-09-28 22:09:10 发布

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

我尝试使用PySerial来接受来自RFID阅读器的输入。根据答案,here:我尝试过使用WinObj,发现有点奇怪:GLOBAL???文件夹中没有指向“更具体驱动程序”的COM3端口。但是,当我运行python -m serial.tools.list_ports命令时,它确实抛出了COM3。当我尝试一个简单的程序,比如:

import serial
ser = serial.Serial()
ser.port = 2
print(ser)
ser.open()

我得到以下输出:

^{pr2}$

所以,我知道PySerial正在正确的地方寻找我的阅读器,并且,根据两个不同的来源(设备管理器和命令行),设备正在注册。但我还是犯了这个错误。怎么回事?我在Windows8.1上使用Python3.3。在

编辑:这个错误实际上是我从python的命令行得到的。我从制作和运行上面的程序中得到的是:

AttributeError: 'function' object has no attribute 'Serial.'

我也很感激你能考虑一下。在


Tags: 答案命令行程序文件夹here错误serialglobal
2条回答

我要检查的第一件事是连接的com端口和当前正在使用的端口:

import serial.tools.list_ports
import sys

list = serial.tools.list_ports.comports()
connected = []
for element in list:
    connected.append(element.device)
print("Connected COM ports: " + str(connected))
# compliments of https://stackoverflow.com/questions/12090503/listing-available-com-ports-with-python#14224477
""" Lists serial port names

    :raises EnvironmentError:
        On unsupported or unknown platforms
    :returns:
        A list of the serial ports available on the system
"""
if sys.platform.startswith('win'):
# !attention assumes pyserial 3.x
    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
print("Availible COM Ports: " + str(result))

然后,确保使用所需参数调用串行端口构造函数:

^{pr2}$

当你打电话给我时”序列号。序列号()“如果没有任何参数,然后添加端口ID,我不完全确定它将要做什么,我总是显式引用我要在那里使用的端口。在

您的问题在于串行对象正在寻找字符串“COMXX”,否则它将无法工作。我不知道是否需要资本化。在

一定要这样配置。在

serial.Serial(port = "COM2")

相关问题 更多 >