打开串行端口时 USB 相机崩溃

USB Camera crashes when opening Serial Port

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

所以上周我们买了一台mini PC(beelink bt3 pro)送给刚买这台机器的客户,这样他们就可以在这台专用PC上安装我们的程序了。 我们立即注意到,在程序启动时,当您断开 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 文件夹。

如果相机是通过USB供电,可能是电源问题,即电脑上的USB端口不能提供足够的电流来保证相机的稳定运行。

你可以试试

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