用于Arduino的Windows中的串行端口

时间:2014-05-10 10:39:58

标签: python-2.7 windows-7 serial-port arduino-uno

我正在使用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变量的格式不正确,或者我应该修改上面代码中的其他内容。 谢谢你的帮助。

1 个答案:

答案 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()