在Windows 10主机上的Linux虚拟机中使用串行端口从外部设备读取数据

时间:2018-04-10 21:36:12

标签: linux python-2.7 serial-port pyserial

我在Windows 10主机上安装了Linux(Lubuntu)虚拟机。从我的虚拟机我想通过串口连接python到外部设备并读取1000个字节。因此我使用的是pyserial库。

在Windows 10主机上,我可以使用

if(serialHandler.isOpen()):
    serialHandler.read(1000)

一切都很完美。

在linux虚拟机中,相同的代码只给我512字节。所以我试着将read调用放入while循环中。看起来像

if(serialHandler.isOpen()):
    while serialHandler.inWaiting():
        serialHandler.read(1)

无论如何它只给我512字节。我尝试了几件事但没有成功。我试图延迟线程(休眠)以给外部设备更多时间来处理我的读取请求。我尝试了不同的代码和超时等。

All只给我512字节。我的假设是这个问题的根源与Linux中的串行缓冲区有关但我无法解决它。如何获得我需要的1000字节的后半部分?它与从Linux虚拟机到Windows主机的端口映射有关吗?任何解决问题的提示?

更新

LUBUNTU Linux系统:版本14.04,Ubuntu 14.04.3 LTS

在虚拟机的串行设置中,我尝试使用“Host-Pipe”和“Host-Device”来配置Linux VM系统上的COM端口。两者都没有改变。

0 个答案:

没有答案