15

我希望能够从计算机上的串行端口读取并写入文件。在 /dev 内部(在 Windows 10 上使用 Bash shell)我似乎无法找到我的 USB 串行端口(我有 tty、tty0、tty1,这就是 tty)。

它是否位于其他地方,甚至可以通过 bash shell 访问?我只想知道如何在这一点上访问它。

在设备管理器中,当我插入 USB 时,COM4 会显示在端口下。我还在wmic path Win32_SerialPortWindows 命令提示符下运行了该命令,它显示“没有可用的实例”。所以我对如何查看我的串行端口以及为什么它们在某些情况下没有出现感到非常困惑。

任何有关串行端口如何工作的说明,尤其是 USB 的工作原理,将不胜感激,因为我对这些东西很陌生。

4

2 回答 2

7

很快,Windows 将在 Windows Subsystem for Linux (WSL) 上正式支持串行。这些COM_n_端口将在/dev/ttyS_n_

映射:

COM1 >> /dev/ttyS0
COM2 >> /dev/ttyS1
...
COM192 >> /dev/ttyS191

可以在这里找到一个很好的功能描述:

https://blogs.msdn.microsoft.com/wsl/2017/04/14/serial-support-on-the-windows-subsystem-for-linux/

注意:在撰写本文时,此功能仅在内部版本中可用。

于 2017-07-07T17:39:39.367 回答
4

我也有同样的问题。显然,您仍然无法在 Windows 上的 Ubuntu 上的 Bash 中使用串行端口(BoUoW)。您可以使用 socat 进行基本的读写操作。我使用 Cygwin 创建了一个可以看到我的串行端口的 socat 服务器。不过,我在使用 DTR 和 RTS 引脚时遇到了问题。

使用 socat,您可以创建虚拟串行端口或通过 TCP 转发串行端口。(以及更多。)

在 Cygwin 中,串行端口在 /dev/ 下列为 ttyS*。例如,COM3 是 /dev/ttyS2,COM4 是 /dev/ttyS3。

在 Cygwin 中启动服务器

socat -d -d -d TCP4-LISTEN:2022,reuseaddr,fork /dev/ttyS3

在 BoUoW 上启动客户端

socat PTY,link=/tmp/vmodem0 TCP:localhost:2022

这将在 BoUoW 中的 /tmp/vmodem0 中创建一个虚拟串行端口,该端口连接到您计算机上的 COM4。

于 2016-10-04T19:24:06.920 回答