我知道如何列出可用的串行端口,但每次连接Arduino时我能找到合适的COM端口吗? COM端口应打印为MessageBox.Show(COMport);
我想在Visual C#应用程序中读/写Arduino数据。
[this对我不起作用]
答案 0 :(得分:1)
您可以对Arduino进行编程,通过串口发送特定模式,C#监听所有COM端口,寻找特定模式。
答案 1 :(得分:1)
打开设备管理器,展开“端口(COM& LPT)”。插入Arduino USB连接,一个新的COM端口显示名称Arduino UNO(COMxx)。这是在我的机器上,因为我有一个Arduino UNO。
您可以使用WMI(Windows Management Instrumentation)找到此字符串。我在一个类中使用下面的方法,并将COMports作为公共列表
using System;
using System.Collections.Generic;
using System.Linq;
using System.Management;
using System.Text;
using System.Windows;
public void getCOMportsValues()
{
try
{
if (COMports.Count > 0) COMports.Clear(); // COMports is a List<string>
ManagementObjectSearcher searcher = new ManagementObjectSearcher("root\\CIMV2", "SELECT * FROM Win32_PnPEntity");
foreach (ManagementObject queryObj in searcher.Get())
{
string s = queryObj["Name"] as string;
if (s.Contains("(COM"))
COMports.Add(s);
}
}
catch (ManagementException e)
{
MessageBox.Show("An error occurred while querying WMI data: " + e.Message);
}
}
答案 2 :(得分:-2)
详细说明,com端口名为:COM1,COM2,COM3等。
因此,编写一个打开每个COMn的循环,如果打开成功,则发送一个串行流,看看你是否得到了正确的响应。
最后,在C中,您可以sprintf(port_name, "COM%d", port_nr);
生成打开的端口名称。