信号量超时时间已过;USB连接错误

本文关键字:USB 连接 错误 超时 时间 信号量 | 更新日期: 2023-09-27 17:49:19

我得到这个错误…

信号量超时时间已过。

在这一行…

ThePorts.ActivePort1.Open ();

…但我只是偶尔才会这样。当它发生时,它会一次又一次地发生。然后问题消失,几个小时或几天,然后又回来了。

串口为USB接口,连接蓝牙。

我认为这家伙有一个非常相似的问题,但不是在c#

Freeze on SerialPort使用usbser.sys

打开/DeviceIoControl/GetcommState

据我所能估计,我已经阅读了他的整个问题,以及由此产生的评论和答案,但我真的不知道哪一个解决了他的问题,或者c#是否与他所经历的有显著不同。

谢谢你对我的帮助。这是实际发生的代码

public static void Open_ActivePortWeWillUse(String Drone_StringNameFromUser)
{
    SerialPort TempSerialPort = new SerialPort(Drone_StringNameFromUser, (int) SerialPortSpeed);
    ThePorts.ActivePort1 = TempSerialPort;
    ThePorts.ActivePort1.DataBits = 8;
    ThePorts.ActivePort1.Parity = Parity.None;
    ThePorts.ActivePort1.StopBits = StopBits.One;
    ThePorts.ActivePort1.DataReceived += new SerialDataReceivedEventHandler(OurBackGroundSerialPortReceiver);
    ThePorts.ActivePort1.Open();  // "Sometimes" Error hits here
}

信号量超时时间已过;USB连接错误

好的,我现在连接没有信号量超时的问题。

如果有人遇到同样的事情,我希望这个过程对你有用;但没有承诺;嘿,是windows。

在我的例子中,这是Windows 7

我从eHow上的这个页面得到了一点提示;不确定这是否对任何人都有帮助。

无论如何,这就是对我有效的简单的23步程序

  • 点击开始按钮

  • 选择控制面板

  • 在"控制面板"中选择"设备管理器"

  • 在设备管理器中选择通用串行总线控制器

  • 在通用串行总线控制器中,单击小三角形

  • 我无法预测你会在你的电脑上看到什么,但在我的电脑上,我看到一个很长的下拉列表

  • 开始调查,找出这个名单中的哪个成员是罪魁祸首…

    • 在下拉列表的每个成员上,右键单击名称

    • 将打开一个列表,选择属性

    • 猜测时间:使用结果打开的窗口顶部附近的各种选项卡,猜测这是否是USB适配器驱动程序,该驱动程序用信号量超时阻塞您的东西

  • 一旦你做出了正确的猜测,然后关闭USB根集线器属性窗口(但保持设备管理器窗口打开)。

  • 物理断开USB集线器上的任何东西。

  • 拔掉它。

  • 将鼠标指针返回到先前确定的列表中的USB根集线器。

  • 再次右键单击

  • 选择卸载

  • 让Windows做它自己的事

  • 稍等一下

  • 如果有时间,关闭整个电脑;有人说这是必须的。

  • 将USB集线器插回PC上的USB接口

  • 如果设备管理器中的列表闪烁并闪烁几个闪光灯,则没关系。

  • 将蓝牙连接器插入USB集线器

  • 在两分钟内,我又有一个工作的COM端口,没有信号量超时。

希望它对任何可能有类似问题的人都有效。

如果您有网络延迟或internet或本地网络问题,也可能出现此错误。具有失败对应的桥接连接也可能是罪魁祸首。

在与Arduino Leonardo通信时,我在两台不同的Windows计算机上也遇到了这个问题。可靠的解决方案是:

    在设备管理器中找到COM端口并打开设备属性。
  • 打开"端口设置"页签,点击高级按钮。
  • 在那里,取消勾选"使用FIFO缓冲区(需要16550兼容的UART)",并按OK。

不幸的是,我不知道这个功能是什么,也不知道它是如何影响这个问题的。在几次PC重启和十几次设备连接周期之后,这是唯一可靠地解决问题的方法。

一次处理太多大文件。Windows不会呕吐。从本质上说,复制花了太长时间,因为你对计算机的要求太多,文件锁定被锁定的时间太长,并且设置了一个标志,该标志是一个信号量错误。

电脑塞满了自己,被它卡住了。我看到这里的RAM内存逐渐被RAM中的缓存填充。然后,当填充时,子系统接地停止,信号量错误。

我有一个变通办法;复制或传输更少的文件,而不是一个巨大的块。把它分解成几组块,一次传送一个文件,一次传送几个文件,但不能一次传送很多文件。

引用:https://appuals.com/how-to-fix-the-semaphore-timeout-period-has-expired-0x80070079/

https://www-01.ibm.com/support/docview.wss?uid=swg21094630

我有一个类似的问题,我通过改变端口驱动程序中的端口设置(位于设备管理器中的端口)来解决,以适应我正在使用的设备。

对我来说,这是错误的比特每秒值设置。

我是这个问题与程序RealTerm,然后我进入设备管理器,只是禁用连接到端口COM3的蓝牙设备。

问题是你的电缆而不是你的代码或连接有些电缆是用来传输电力的只有一些是用来传输电力和数据的我们必须看到这些类型的电缆