找到Arduino连接的端口

时间:2013-09-02 21:40:11

标签: c# winforms serial-port arduino

我知道如何列出可用的串行端口,但每次连接Arduino时我能找到合适的COM端口吗? COM端口应打印为MessageBox.Show(COMport);

我想在Visual C#应用程序中读/写Arduino数据。

[this对我不起作用]

3 个答案:

答案 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);生成打开的端口名称。