问题 在Windows 10上使用bash定位我的串行端口时出现问题


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

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

在设备管理器中,当我插入USB时,COM4显示在端口下。我也跑了命令 wmic path Win32_SerialPort 在Windows命令提示符下,它说“没有可用的实例”。所以我很困惑我如何查看我的串行端口以及为什么它们在某些情况下不会出现。

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


6266
2017-07-18 19:25


起源

试试吧 com1。 Windows仍然有旧的基于dos的遗留“设备”文件名,如“con”,“com1”,“nul”等... - Marc B
这不是问题所在,基于dos的遗留设备名称是无关紧要的。问题是在Windows 10上访问Bash shell中的串行设备。我有同样的问题试图访问应该是COM4的ftdi芯片 - Dan Griffin
我和@DanGriffin有完全相同的问题,我喜欢在WSL上使用我的FTDI设备上的tx和rx串行数据。我迄今发现的所有东西都来自于AU之前,但是说这还不支持:( - Toby
有谁知道这是否仍然如此? - arao6


答案:


很快,Windows将正式支持Windows子系统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/

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


5
2017-07-07 17:39



另请注意Microsoft链接末尾提到的权限。 > sudo chmod 666 / dev / ttyS3 <在2018年的WSL版本中,似乎没有这个答案隐含的out by 1映射。 - AndrewD


我也有同样的问题。显然你仍然不能在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

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


4
2017-10-04 19:24



我浏览了说COM4映射到/ dev / ttyS3的部分,并认为COMx将映射到/ dev / ttySx并且正在挠头。确保使用非直观的映射名称! - Alex H