我正在使用Windows环境和Arduino。 我有一个python脚本,不是我写的,使用linux的串口。 由于我在Windows上工作,我应该转换此代码,以便让它在Windows上配置,然后使用连接在PC上的Arduino使用的串口。我的端口是COM15.i使用Windows 7 32位。我的python发行版是2.7.5,我已经安装了32位的pyserial模块。 感兴趣的代码如下:
def __init__(self,
port=DEFAULT_DEVICE,
bps=DEFAULT_DEVICE_SPEED_BPS,
interval=DEFAULT_INTERVAL):
self.unpack = None
self.interval = interval
self.ser = serial.Serial(baudrate=bps,
parity=serial.PARITY_NONE,
stopbits=serial.STOPBITS_ONE,
bytesize=serial.EIGHTBITS)
devs = glob.glob(port + "*")
for dev in devs:
logging.debug("scanning %s", dev)
self.ser.port = dev
self.ser.open()
time.sleep(2)
self.configure()
self.send_cmds(["#P%u" % self.interval])
logging.debug("attaching to port %s!", dev)
return
raise RuntimeError("unable to configure serial port")
“DEFAULT_DEVICE”变量是定义串行端口的变量。它被定义为:
DEFAULT_DEVICE = '/dev/ttyACM'
我认为我应该简单地在Windows中的串行格式中修改此变量,以使脚本正常工作并正确配置串行。在线搜索我发现只需输入:
DEFAULT_DEVICE = 'COM15'
它应该有用。我已经尝试过这种方式但是在启动代码时,我得到代码中定义的引发RuntimeError(“无法配置串口”)。 对这个问题有什么看法吗?也许我给DEFAULT_DEVICE变量的格式不正确,或者我应该修改上面代码中的其他内容。 谢谢你的帮助。
答案 0 :(得分:0)
如果你只需要COM15,我会简化它并从中获取for循环。下面的代码是否有效?如果没有,Windows上会挂起一些东西。
port = DEFAULT_DEVICE #'COM15'
ser = serial.Serial()
ser.port = port
ser.baudrate = DEFAULT_DEVICE_SPEED_BPS
ser.parity = serial.PARITY_NONE
ser.bytesize = serial.EIGHTBITS
ser.stopbits = serial.STOPBITS_ONE
ser.open()
ser.write("go\n")
ser.close()