C# USB摄像头在打开串行端口时崩溃

C# USB摄像头在打开串行端口时崩溃,c#,camera,serial-port,windows-10,emgucv,C#,Camera,Serial Port,Windows 10,Emgucv,我正在用WPF编写一个程序,它需要连接到一个串行端口以获取数据并将数据发送到一台机器,然后连接到机器上安装的摄像头以显示视频流 所以上周我们买了一台迷你电脑(beelink bt3 pro),当客户购买这台机器时送给他们,这样他们就可以在这台专用电脑上安装我们的程序。 我们立即注意到,在程序启动时,摄像头会因windows在断开usb设备时发出的臭名昭著的声音而崩溃。 因此,在寻找问题的线索后,我发现当我调用serialport.Open()时,相机会崩溃。对于串行端口,我使用标准的Micros

我正在用WPF编写一个程序,它需要连接到一个串行端口以获取数据并将数据发送到一台机器,然后连接到机器上安装的摄像头以显示视频流

所以上周我们买了一台迷你电脑(beelink bt3 pro),当客户购买这台机器时送给他们,这样他们就可以在这台专用电脑上安装我们的程序。 我们立即注意到,在程序启动时,摄像头会因windows在断开usb设备时发出的臭名昭著的声音而崩溃。 因此,在寻找问题的线索后,我发现当我调用serialport.Open()时,相机会崩溃。对于串行端口,我使用标准的Microsoft库,而对于相机,我首先使用Directshow,然后使用EMGUCV(我上周切换了,因为我认为问题是由相机库引起的)

这是我在测试程序中使用的代码:

VideoCapture c = new VideoCapture(0);
c.ImageGrabbed += c_ImageGrabbed;
c.Start();
SerialPort port = new SerialPort("COM5", 9600, Parity.None, 8, StopBits.None); 
port.Open();
在调用Open()之后,摄像头崩溃并停止录制,使windows错误听起来像是从PC中删除的。不会抛出异常,程序会继续运行


请务必注意,此问题仅发生在这台电脑上,我怀疑Windows 10安装不正确,因为我在C:中发现了一个Windows.old文件夹,系统有时会提示我删除旧的Windows文件夹。

如果相机通过USB供电,可能是电源问题,也就是说,计算机上的USB端口无法提供足够的电流,无法使相机稳定运行

你可以试试

  • 将camara连接到更高电流规格的USB端口
  • 通过外部供电的USB集线器连接摄像头

Windows。旧的
可能是由于升级/主要更新造成的:无需担心。它会因异常而崩溃吗?没有摄像机它会崩溃吗?硬件之间是否有任何共享资源(如COM端口)。摄像头是否通过USB供电?你能排除电源问题吗?@Stefan不会引发异常。它不会使程序崩溃。如果没有摄像头,则调用Open()时不会出错。看起来他们像你说的那样分享了一些资源,但我不知道怎么说。@MarcoFilippozzi:你可以用一个外部供电的usb集线器来测试它。