C#快速确定串口

"本文介绍了如何在设备管理器中查看设备硬件Id来确定串口通信的PortName。通过设备的USBVID_v(4)&PID_d(4)标识,可以快速识别同一厂商的设备,并在C#代码示例中展示了如何利用ManagementObjectSearcher查询设备并获取对应的串口名称。"

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

与串口通信时,首先要确定串口名PortName,如想对特定的设备,快速确定其插入计算机后分配的串口名,则可以通过设备固定的DeviceId在系统API里查询以确定,具体做法如下:

 

在设备管理器中查看设备的硬件Id

USB\VID_v(4)&PID_d(4)&REV_r(4)
其中:
v(4) 是 USB 委员会分配给供应商的4位数供应商代码。
d(4) 是供应商分配给设备的4位数产品代码。
r(4) 是版本代码。

USB\ VID_v(4)&PID_d(4)&MI_z(2)
其中:
v(4) 是 USB 委员会分配给供应商的4位数供应商代码。
d(4) 是供应商分配给设备的4位数产品代码。
z(2) 是从接口描述符的 bInterfaceNumber 字段中提取的接口号。

所以同一厂商的设备取到“USB\ VID_v(4)&PID_d(4)”即可

 

public string GetComNum()
{
	var comNum = string.Empty;
	try
	{
		using (var hardInfos = new ManagementObjectSearcher("SELECT * FROM Win32_PnPEntity").Get())
		{
			foreach (var hardInfo in hardInfos)
			{
				var deviceId = hardInfo.Properties["DeviceId"].Value.ToString()
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值