c#与usb接口通信

本文关键字:通信 接口 usb | 更新日期: 2023-09-27 18:17:28

我正在尝试联系usb条形码扫描器作为串行端口,使用他的虚拟COM端口名称和串行端口类。

我尝试这样做的原因是为了避免使用扫描仪作为键盘楔子,因为我需要扫描的可能性,即使表单是隐藏的。

问题是,当我将条形码扫描器连接到usb端口,并运行"GetPortNames"函数时,我得到一个空列表。有什么建议吗?由于

c#与usb接口通信

通常许多USB条码扫描器只会显示为虚拟键盘设备-而不是虚拟COM端口。这就解释了为什么它没有出现。

您的扫描仪是否支持某种串行仿真模式?您可能需要配置它或安装不同的驱动程序来启用此功能。它是否在设备管理器中显示为串行端口?(查看Ports树下)

作为题外话:

看看这个问题,如果你发现'键盘模式'是唯一支持的:使用USB条码扫描器读取条形码,同时忽略键盘数据输入,而扫描器产品id和供应商id未知

这个问题是指这篇文章有大量关于键盘挂钩的好信息,过滤掉扫描的条形码:http://nicholas.piasecki.name/blog/2009/02/distinguishing-barcode-scanners-from-the-keyboard-in-winforms/

我不能保证它将在您的特定设备上工作,但我曾经看到过解决类似问题的代码。解决方案是在注册表中查找端口名称。

它的代码可以在开源项目ez430chronosnet中找到;一个。net库,可以通过USB适配器访问TI的EZ430 Chronos手表。

您将需要查看在注册表中查找名称的PortName.cs文件(它至少会指向正确的键)和使用SerialPort打开实际端口的Chronos.cs文件。