我尝试使用GetDeviceSelector()函数定位COM端口,如我在此处所述:Unable to open UART port on Windows IoT with Raspberry Pi 3
我知道,我可以为GetDeviceSelector()函数提供端口名:
public static System.String GetDeviceSelector(System.String portName);
在某些示例中,它类似于“ COM0”,“ COM1”等。
我的问题是:在哪里可以找到提供端口名称的文档?
这是我从Raspberry的设备管理器中得到的:
{
"Class": "Ports",
"Description": "BCM283x Mini UART Serial Device",
"ID": "ACPI\\BCM2836\\0",
"Manufacturer": "Microsoft",
"ParentID": "ACPI_HAL\\PNP0C08\\0",
"ProblemCode": 0,
"StatusCode": 25182218
},
{
"Class": "System",
"Description": "ARM PL011 UART Device Driver",
"ID": "ACPI\\BCM2837\\4",
"Manufacturer": "Microsoft",
"ParentID": "ACPI_HAL\\PNP0C08\\0",
"ProblemCode": 0,
"StatusCode": 25165834
},
这是盘子的出路:
用什么方式知道端口名?换句话说-获取所需端口名称的算法是什么?
更新
正在回答丹尼尔问题。
我使用Windows.Devices.SerialCommunication.SerialDevice
类进行交互,方法如下:
DataWriter dataWriteObject = new DataWriter(_serial_port.OutputStream);
dataWriteObject.WriteByte(0xF0);
await dataWriteObject.StoreAsync();
DataReader dataReaderObject = new DataReader(_serial_port.InputStream);
await dataReaderObject.LoadAsync(1);
byte resp = dataReaderObject.ReadByte();
我知道COM仅用于串行设备,目前我只需要串行设备。
答案 0 :(得分:1)
COM端口名称似乎在Windows IoT核心版上不起作用。从此文档:Configuration of COM Ports,Ntddser.h等基本文件在Windows IoT核心版上不可用(您可以搜索)。
更多参考文献:“ Using Serial.sys and Serenum.sys”“ COM Port Database”
如果要在板上找到指定的串行设备,建议在SerialDevice.GetDeviceSelector
API中使用“ UART0”。
string aqs = SerialDevice.GetDeviceSelector("UART0");
请参阅“ Raspberry Pi 2 & 3 Pin Mappings - Serial UART”
相关问题:“ Serial Port support for Raspberry Pi with Windows IoT”