Use*_*r.1 31 c# usb semaphore serial-port usbserial
我收到这个错误......
信号量超时期限已过期.
在这条线上......
ThePorts.ActivePort1.Open();
......但我不时会得到它.当它发生时,它会一次又一次地发生.然后问题消失了几个小时或几天,然后又回来了.
串口是连接蓝牙的USB.
我认为这个人有一个非常相似的问题,但不是在C#
使用usbser.sys冻结SerialPort.Open/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
}
Run Code Online (Sandbox Code Playgroud)
好的,我现在正在连接而没有信号量超时问题.
如果有人读过相同的东西,我希望这个程序适合你; 但没有承诺; 嘿,这是窗户.
就我而言,这是Windows 7
我在eHow的这个页面上得到了一点提示; 不确定这是否可以帮助任何人.
所以无论如何,这是一个简单的二十三步程序,对我有用
单击开始按钮
选择控制面板
从控制面板中,选择设备管理器
从设备管理器中,选择通用串行总线控制器
从通用串行总线控制器中,单击小侧面三角形
我无法预测你在计算机上会看到什么,但在我的计算机上,我得到一个很长的下拉列表
开始调查,找出这个名单中的哪一个成员是罪魁祸首......
在下拉列表的每个成员上,右键单击名称
将打开一个列表,选择"属性"
猜测工作时间:使用打开的结果窗口顶部附近的各个选项卡,猜猜这是否是使用信号量超时阻塞你的东西的USB适配器驱动程序
一旦你做出正确的猜测,然后关闭USB根集线器属性窗口(但保留在设备管理器窗口中打开).
从USB集线器物理上断开任何东西和一切.
拔掉它.
将鼠标指针返回到先前确定的列表中的USB Root Hub.
再次右键单击
选择卸载
让Windows做它的事
等一会儿
如果你有时间,请关闭整台电脑; 有人说这是必需的.我想我没有它就逃之夭夭.
将USB集线器插回PC上的USB接口
如果设备管理器中的列表闪烁并且执行了一些闪存灯泡,则可以.
将蓝牙连接器插回USB集线器
让windows做更多事情
在两分钟内,我再次有一个工作的COM端口,没有信号量超时.
希望它适用于任何可能遇到类似问题的人.