无法在Windows 10上使用bash查找我的串行端口

Mar*_*cia 13 linux usb serial-port windows-10 windows-subsystem-for-linux

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

它位于其他地方,甚至可以通过bash shell访问吗?我只是想知道如何访问它.

在设备管理器中,当我插入USB时,COM4显示在端口下.我还在wmic path Win32_SerialPortWindows命令提示符下运行该命令,并说"没有可用的实例".所以我很困惑我如何查看我的串行端口以及它们在某些情况下没有出现的原因.

任何关于串口如何工作的说明,特别是USB的说明,都会非常感激,因为我对这些东西很新.

Zak*_*Zak 6

很快,Windows将正式支持Windows子系统Linux(WSL)上的串行.这些COM_n_端口将在/dev/ttyS_n_

制图:

COM1 >> /dev/ttyS0
COM2 >> /dev/ttyS1
...
COM192 >> /dev/ttyS191
Run Code Online (Sandbox Code Playgroud)

这里有一个很好的功能描述:

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

注意:在编写本文时,此功能仅适用于内部版本.


小智 4

我也有同样的问题。显然,您仍然无法在 Windows 上的 Ubuntu (BoUoW) 上的 Bash 中使用串行端口。您可以使用 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
Run Code Online (Sandbox Code Playgroud)

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