尝试连接串口时,我的代码发生了一些奇怪的事情.使用串行样本时,一切正常,并在第一次尝试时连接.但是,使用我的代码,串行端口返回null.
我找到了一个解决方法,通过嵌套调用在do循环中写入串行端口,直到串行端口不再为null并且它可以工作.平均需要500个环路才能连接,并且它始终连接.我知道它很危险,因为如果它总是为空,则存在无限循环,所以我尝试将do循环切换为for循环.使用for循环,它总是返回null,即使我迭代它50,000次.有没有其他人遇到这个并找到了更好的解决方案?我正在连接到Arduino Uno.
我不只是使用串行示例代码的原因是因为我想使用下拉菜单并使用端口名称而不是设备ID名称.我的代码如下.谢谢.
//lists com ports
private async void listPorts()
{
try
{
string aqs = SerialDevice.GetDeviceSelector();
var dlist = await DeviceInformation.FindAllAsync(aqs);
status.Text = "Select a device and connect";
for (int i = 0; i < dlist.Count; i++)
{
var port = await SerialDevice.FromIdAsync(dlist[0].Id);
ConnectDevices.Items.Add(port.PortName);
}
comConnect.IsEnabled = true;
ConnectDevices.SelectedIndex = 0;
}
catch (Exception ex)
{
status.Text = ex.Message;
}
}
//connects to the selected com port
private async void comConnect_Click(object sender, RoutedEventArgs e)
{
_key …Run Code Online (Sandbox Code Playgroud)