python3.5:串口读取错误

时间:2016-06-29 08:51:24

标签: python

使用python从COM4端口读取串口时,出现以下错误:

 ----------------------------------------------------------------------------
F:\Invsense\motion_driver_6.12\eMPL-pythonclient>python.exe eMPL-client.py 4
Traceback (most recent call last):
File "eMPL-client.py", line 543, in <module>
data_delegate = data)
File "eMPL-client.py", line 23, in __init__
self.s = serial.Serial(port,115200)
File "C:\Users\admin\AppData\Local\Programs\Python\Python35-32\lib\site-
 packages\pyserial-3.1.1-py3.5.egg\serial\serialwin32.py", line 31, in   __init__

文件&#34; C:\ Users \ admin \ AppData \ Local \ Programs \ Python \ Python35-32 \ lib \ site-    packages \ pyserial-3.1.1-py3.5.egg \ serial \ serialutil.py&#34;,第162行, init    文件&#34; C:\ Users \ admin \ AppData \ Local \ Programs \ Python \ Python35-32 \ lib \ site-    packages \ pyserial-3.1.1-py3.5.egg \ serial \ serialutil.py&#34;,第206行,在端口    ValueError:&#34; port&#34;必须是None或字符串,而不是

F:\ Invsense \ motion_driver_6.12 \ EMPL-pythonclient&GT;

此错误来自serialutil.py。你能帮我解决这个问题吗?我使用putty工具单独检查COM4端口,它工作正常。

此致 维奈

1 个答案:

答案 0 :(得分:0)

问题在于Invensense python脚本。

  1. 在文本编辑器中打开eMPL-client.py并搜索以下行:comport = int(sys.argv[1]) - 1

  2. 将其更改为:comport = sys.argv[1]

  3. 该脚本试图将字符串'COM4'转换为整数,然后将其传递给串函数,该函数无论如何都需要一个字符串。我想也许他们使用旧版pyserial,因为脚本中还有其他一些错误。

    1. 注释掉(或删除)这些行:

      self.s.setTimeout(0.1)
      self.s.setWriteTimeout(0.2)
      
    2. 使用python eMPL-client.py COM4

    3. 运行客户端

      毕竟这个我的python客户端正确显示MPU数据。我希望现在还为时不晚!