首页 > 解决方案 > 打开串口时 USB 相机崩溃

问题描述

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

所以上周我们买了一台迷你电脑(beelink bt3 pro)给我们的客户,当他们购买这台机器时,他们可以在这台专用电脑上安装我们的程序。我们立即注意到,在程序启动时,当您断开 USB 设备时,相机会因 Windows 发出的那种臭名昭著的声音而崩溃。所以在搜索了这个问题的线索后,我发现当我调用 serialport.Open() 时,相机会崩溃。对于串口我使用标准的微软库,而对于相机我首先使用 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文件夹。

标签: c#cameraserial-portwindows-10emgucv

解决方案


如果相机通过USB供电,则可能是电源问题,即计算机上的USB端口没有提供足够的电流使相机稳定运行。

你可以试试

  • 将相机连接到具有更高电流规格的 USB 端口
  • 通过外部供电的 USB 集线器连接相机。

推荐阅读