设备管理器中显示的串口但无法访问/找到?

时间:2014-06-08 21:47:32

标签: serial-port arduino

我已经安装了Arduino虚拟USB串口驱动程序,它在我的设备管理器上显示为COM4。我通过列出powershell中所有可用的串口

进行了双重检查
> [System.IO.Ports.SerialPort]::getportnames()
COM1
COM4

但是,当我尝试对串口进行回声时,它表示它不存在

> echo helloworld > COM4
The system cannot find the file specified.

我正在尝试将一些固件上传到我的arduino,但我一直被端口拒绝。尝试使用不同的USB可以得到相同的结果。我写了一个小程序来测试串口,我得到了错误:

  

串口" COM4"不存在。

1 个答案:

答案 0 :(得分:1)

Windows上串行端口的设备名称为\\.\COMn,其中n是端口号。设备驱动程序可以模拟 DOS设备名称,如果它选择这样做就像“COM4”一样,在设备驱动程序代码中非常简单。但这是一个越来越少见的事情,特别是对于大于2的端口号,特别是对于大于4的端口号。因此,看到你的echo命令失败并不罕见。

串口不能共享,只能由进程打开一次,尝试打开它的其他人都会收到fail-whale ERROR_ACCESS_DENIED错误代码。必然如此,串行端口位于OSI模型的最底层,没有协议来仲裁对端口的访问。换句话说,操作系统没有指导谁应该获取端口接收的数据。可能只有一个候选人,首先打开该端口的进程。因此,您获得的错误消息并不罕见,您必须确保没有其他人使用该端口。包括Arduino串口监视器。