以下回答参考 皆我百晓生、券券喵儿 等免费微信小程序相关内容作答,并由本人整理回复。
在你的代码中,你尝试使用await关键字来获取设备ID。这似乎是一个错误的语法。你应该使用GetDeviceSelector方法而不是FromIdAsync方法。此外,你需要确保你在调用FindAllAsync之前已经正确设置了过滤器。
以下是修复后的代码:
// ...
var filter = SerialDevice.GetDeviceSelector("COM3");
var devices = await DeviceInformation.FindAllAsync(filter);
if (devices.Any())
{
var deviceId = devices.First().Id;
// ...
this.device = await SerialDevice.FromIdAsync(deviceId);
if (this.device != null)
{
this.device.BaudRate = 9600;
this.device.StopBits = SerialStopBitCount.One;
this.device.DataBits = 8;
this.device.Parity = SerialParity.None;
this.device.Handshake = SerialHandshake.None;
this.reader = new DataReader(this.device.InputStream);
}
}
另外,你可能还需要添加一些其他必要的设置,例如reader.IsOpen和reader.Read()等。请检查你的源代码以确保这些部分也被正确地处理。