加入星计划,您可以享受以下权益:

  • 创作内容快速变现
  • 行业影响力扩散
  • 作品版权保护
  • 300W+ 专业用户
  • 1.5W+ 优质创作者
  • 5000+ 长期合作伙伴
立即加入
  • 正文
  • 相关推荐
  • 电子产业图谱
申请入驻 产业图谱

如何扫描出串口的详细信息!

11/19 09:22
225
阅读需 6 分钟
加入交流群
扫码加入
获取工程师必备礼包
参与热点资讯讨论

使用C#编程很多年了,大部分功能都是基于串口来开发的,毕竟串口也是面对下位机硬件调试中最为简便的方法。

不过,如果系统中有多个串口的时候,就会遇到一定的麻烦,比如我的电脑设备中就存在多个串口:

我早先时候,习惯使用IO.Ports命名空间的API来获取端口信息,就像下面这段代码

Int32 port_name_len = System.IO.Ports.SerialPort.GetPortNames().Length;cbBoxCom.Items.Clear();//清空下拉列表if (port_name_len != 0)//系统当前存在的端口加入列表{    for(int i = 0; i < port_name_len;i++)        Trace.WriteLine(System.IO.Ports.SerialPort.GetPortNames()[i]);    foreach (string com in System.IO.Ports.SerialPort.GetPortNames())    {        cbBoxCom.Items.Add(com);    }    cbBoxCom.SelectedIndex = 0; // 选中列表中的第一个端口}else{    MessageBox.Show("没有检测到设备,请插入设备重新启动。");    cbBoxCom.Items.Add("no port");}

这样获取串口端口号的问题在于,我们只能够获取到COM1,COM2这样的字符串,即便我们实现了动态插入监测,最终在我们界面中的选项列表里,也只能展示出一堆COM口,想接收和发送信息的时候也不知道该打开哪一个。

因此,比较好的办法是去拉去COM口的更详细的信息,比如我们把第一张图中的JLink CDC UART Port也拉去出来,显示在端口列表中,这样我们就比较容易分辨出改选用哪个端口了。

下面是具体的方法:

try{    // 定义查询 WMI 的语句    string query = "SELECT * FROM Win32_PnPEntity WHERE Name LIKE '%(COM%'";
    // 使用 ManagementObjectSearcher 查询设备    using (ManagementObjectSearcher searcher = new ManagementObjectSearcher(query))    {        foreach (ManagementObject obj in searcher.Get())        {            // 获取设备描述            string name = obj["Name"]?.ToString() ?? "未知设备";            string manufacturer = obj["Manufacturer"]?.ToString() ?? "未知厂商";            cBoxComNum.Items.Add(GetComx(name));
            //Trace.WriteLine($"设备描述: {name}");            //Trace.WriteLine($"厂商: {manufacturer}");            //Trace.WriteLine(new string('-', 50));        }    }    AdjustDropDownWidth(cBoxComNum);    cBoxComNum.SelectedIndex = 0; //选中第一个    cBoxBaudrate.Items.Add(115200);    cBoxBaudrate.Items.Add(9600);}catch (Exception ex){    Trace.WriteLine($"发生错误: {ex.Message}");}

从上面的代码可以看出,我们还可以获取到厂商信息,这样可以进一步对串口进行区分,进一步有效地区分串口,避免每次都要尝试,或者反复插拔串口设备。

效果还可以,要想区分同一个品牌的同一个型号,还需要研究研究。

相关推荐

电子产业图谱

多年硬件从业经验,专注分享从研发到供应链,再到精益制造过程中的经验和感悟!