【问题标题】:Serial Port not working on Surface Book串行端口在 Surface Book 上不起作用
【发布时间】:2016-10-03 00:12:25
【问题描述】:

我有一台 Microsoft Surface Book,我已在其上双启动 Linux Mint。我正在编写一个需要从串口读取数据的程序,但我的串口似乎无法正常工作。 Mint 和 Windows 的行为是一致的(通过 Cygwin 完成的测试)。在插入设备的前 2-5 秒它会获取一些数据(通过屏幕查看数据,如果我只是使用 pyserial 打印从串行端口传入的数据,也会发生同样的事情),然后什么也没有。

会发生什么?我想我已经将问题与串行端口隔离开来——Surface Book 有 2 个 USB 端口,并且它们都发生了同样的事情,并且我已经在其他 2 台计算机上测试了我插入它的硬件(一个Linux 和一个 Mac OS),并且在这两种操作系统上都可以正常工作。

【问题讨论】:

  • USB转串口的硬件适配器是什么?这些驱动因素很重要。我在使用基于 FTDI 的适配器时遇到了最好的运气。
  • “我正在编写程序...” -- 所以你认为这是硬件问题而不是怀疑你的新代码?
  • @sawdust 是的,因为正如我所说,我在屏幕上对其进行了测试,它的工作方式与我的代码相同,并且在朋友的带屏幕的笔记本电脑上运行相同的测试,它运行良好。我的代码也可以在那台笔记本电脑(和其他 2 台)上正常运行
  • @Phil 不确定您的意思-具体设置是带有microusb的pixhawk->将USB A插入surface book的串行端口。不过,我会尝试更新 USB 驱动程序,好主意。
  • 您不加选择地使用行话和简单的英语令人困惑。例如。 “数据位”“通过屏幕查看数据”(“屏幕”是程序吗?)。所以你写“Serial port of the surface book”是说你的平板电脑有RS232接口?仅供参考,USB 端口不应被称为“串行端口”

标签: serial-port usb hardware


【解决方案1】:

您的 MS Surface 似乎有一个黄色三角形感叹号图标(在适配器图标上方),无需安装/下载任何驱动程序。设备状态框窗口中的属性为This device cannot start. (Code 10)A device which does not exist was specified。对吧?

如果是这样,您应该等待 MS 的更新。这是一个臭名昭著的问题。

【讨论】:

  • 这不能回答问题 - 如果不清楚,很抱歉,但我在 Surface Book 上双启动 Windows 和 Linux Mint。因此,该问题不太可能是 Windows 驱动程序问题。
【解决方案2】:

几个月后,我因一个不相关的问题在保修期内更换了计算机,您知道吗,在新计算机上,串行端口工作正常。这表明存在某种硬件问题,因为该问题在整个操作系统中仍然存在。

【讨论】:

    【解决方案3】:

    也许这会有所帮助:

    查看串口通信的 Arduino 示例 - 搜索 google:

    • arduino 串口 c++
    • arduino 串口 c#
    • arduino 串口 c++ linux

    关键是要正确打开端口,您需要打开一个文件,而不是一个端口。不使用通常的 c - 程序集写入端口代码。


    另一种选择是您使用无意购买的带有假冒 PL2303 芯片的假冒 USB 转串行电缆 那么您需要安装旧版本的驱动程序。 谷歌搜索:

    假PL2303 +你的操作系统名称:

    安装驱动Fake PL2303 windows 10


    另一种选择可能是它可以节省能源并关闭端口,因为它觉得它没有被使用。

    在windows中>设备管理器>设备属性——通常是USB根集线器>电源管理——允许计算机关闭该设备以节省电源——取消勾选。

    https://superuser.com/questions/408683/why-my-usb-mouse-gets-suspended-after-3-seconds-of-inactivity

    https://blogs.msdn.microsoft.com/usbcoreblog/2013/11/08/help-after-installing-windows-8-1-my-usb-device-doesnt-charge-or-it-disconnects-and-reconnects-frequently/


    另外,您可以查看 Windows 事件 - 看看会发生什么。通常,此类故障会记录在事件日志中。


    一个不太可能的选择是它消耗太多电流,例如短路。器件保护电路关闭芯片。也可能它没有这样的电路。一种可能性是尝试使用外部供电的集线器。


    其中最有可能的是省电机制

    【讨论】:

    • 如前所述,我使用的设备可以在我自己以外的计算机上使用相同的方法工作。此外,问题在整个操作系统中仍然存在
    【解决方案4】:

    我遇到了同样的问题 - 在另一个网站上遇到了解决方案。 Surface Book 上的 USB 3 端口与 Com Port 不兼容,但通过便宜的 USB 集线器运行设备立即解决了我的问题,并且它立即被 Arduino IDE 识别

    【讨论】:

      猜你喜欢
      • 2016-03-17
      • 1970-01-01
      • 2017-07-12
      • 2016-09-15
      • 2016-05-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多