我正在尝试获取一些连接到Windows IoT RPi设备的USB-to-Serial适配器的端口名称。我仍然可以打开,我得到一个实例化的serialDevice工作。我能够在端口上发送和接收数据,但PortName对象显示""所以我不知道它的COM1或COM2等。这不会是一个问题,除了我连接多个适配器,需要一种方法来唯一地识别适配器。其他人都看到了吗?
我用来查询和打开端口的代码是:
Dim dis = Await DeviceInformation.FindAllAsync(SerialDevice.GetDeviceSelector())
Dim Count As Integer = 0
Do Until Count = dis.Count
Debug.WriteLine("UART Port: " & dis(Count).Name & ", " & dis(Count).Id)
If dis(Count).Id.Contains("FTDI") Or dis(Count).Id.Contains("FT232") Then
serialPort = Await SerialDevice.FromIdAsync(dis(Count).Id)
End If
Count += 1
Loop
答案 0 :(得分:0)
您可以在桌面上获得有效的SerialDevice.PortName
,但不能在Windows IoT核心版设备上获得。{p>将COM编号分配给串行设备需要系统提供的功能驱动程序,如Serial.sys etc。但是Windows IoT核心版设备上没有提供这些驱动程序。您可以在C:\Windows\System32\drivers
路径下查看。
要识别多个设备,有一种解决方法,使用 VID (供应商ID)和 PID (产品ID)。它们被认为是独一无二的。
因此,您可以使用SerialDevice.GetDeviceSelector()
代替SerialDevice.GetDeviceSelectorFromUsbVidPid(vid, pid)
。您可以在DeviceInformation.Id
中找到VID和PID。它会是这样的:
\\?\USB#VID_10C4&PID_EA60#0001#{86e0d1e0-8089-11d0-9ce4-08003e301f73}