首页 > 编程语言 >C#获取串口的几种方式

C#获取串口的几种方式

时间:2023-03-03 23:33:53浏览次数:51  
标签:comlist string hardInfo C# 几种 获取 串口 keyCom

摘要

使用C#获取串口最简单的方式就是通过SerialPort对象了,但有时并不能满足需求,比如有些串口是通过驱动模拟的,那这种可能就获取不到了。

示例代码

这里简单演示几种常用的本机串口获取方式:

通过SerialPort对象获取
SerialPort.GetPortNames().ToList();
通过查注册外表方式获取
private List<string> GetPortDeviceName()
        {
            var comlist = new List<string>();
            RegistryKey keyCom = Registry.LocalMachine.OpenSubKey("Hardware\\DeviceMap\\SerialComm");
            if (keyCom != null)
            {
                string[] sSubKeys = keyCom.GetValueNames();
                foreach (string sName in sSubKeys)
                {
                    string sValue = (string)keyCom.GetValue(sName);
                    comlist.Add(sValue);
                }
            }
            return comlist;
        }
通过ManagementObjectSearcher对象方式获取
private List<string> GetComList()
        {
            var comlist = new List<string>();
            try
            {
                using (ManagementObjectSearcher searcher = new ManagementObjectSearcher("select * from Win32_PnPEntity"))
                {
                    var hardInfos = searcher.Get();
                    foreach (var hardInfo in hardInfos)
                    {
                        if (hardInfo.Properties["Name"].Value != null && hardInfo.Properties["Name"].Value.ToString().Contains("(COM"))
                        {
                            String strComName = hardInfo.Properties["Name"].Value.ToString();
                            comlist.Add(strComName);
                        }
                    }
                }
                Console.ReadKey();
            }
            catch
            {
            }
            return comlist;
        }

通常情况下使用第一种方式就可以实现,按照实际情况自行取舍即可。

效果

image-20230303231543762

虚拟串口工具

工具下载地址:https://luc-files.oss-cn-shenzhen.aliyuncs.com/Tools/VSPD虚拟串口工具.zip

标签:comlist,string,hardInfo,C#,几种,获取,串口,keyCom
From: https://www.cnblogs.com/chonglu/p/17177350.html

相关文章

  • OpenAI Java SDK——chatgpt-java-v1.0.3更新支持GPT-3.5-Turbo,支持语音转文字,语音翻
    简介chatgpt-java是一个OpenAI的Java版SDK,支持开箱即用。目前以支持官网全部Api。支持最新版本GPT-3.5-Turbo模型以及whisper-1模型。增加chat聊天对话以及语音文件转文字......
  • JS文件的几种格式之间的区别
    今天在修改公司ui组件库的时候,接触到npmrunlib,发现打包后文件有几种格式的文件。.common.js.common.js.map.umd.js.umd.js.map.umd.min.js.umd.min.js.map几种不......
  • C文件读写
    可以将程序中的数据保存为一个文件。待下次重新启动程序时,从之前保存的文件中提取数据。这样,程序就不会在重启后失忆了。创建并写入文件#include<stdio.h>intmain(){......
  • csp201809-4
    这是一道差分约束求最长路的图的问题:通过已知的条件可以容易列出以下不等式:2*a1<=x1+x2<=2*a1+13*a2<=x1+x2+x3<=3*a2+23*a3<=x2+x3+x4<=3*a3+2       ......
  • ChIP-seq 分析:数据与Peak 基因注释(10)
    动动发财的小手,点个赞吧!1.数据今天,我们将继续回顾我们在上一次中研究的MycChIPseq。这包括用于MEL和Ch12细胞系的MycChIPseq。可在此处找到MEL细胞系中Myc......
  • JavaScript——快速判断数组对象的值是否全部满足条件
    前言EasyBe主题开发中遇到一个问题,查看了下MDN文档找到了比较合适的方法,这里只做了简单的示例,详细的一些描述和原理建议访问MDN进行查看;every:everysome:some内容ev......
  • 51电子-STC89C51开发板:安装驱动
    全部内容请点击目录列表查看:51电子-STC89C51开发板:《目录》 --------------------------- 正文开始 ---------------------------------------电脑识别开发板,肯......
  • ContentProvider+BroadCast的使用
    内容提供者的官方定义如下:  首先是ContentProvider的使用,翻译成中文就是内容提供者,作用就是比如我在从微信往qq传一张图片,我需要一个内容提供者,这里我的微信里面的图......
  • LNK2001 无法解析的外部符号 "int const ROUND"
    今天在写代码时出现了这个错误,网上的解决方法都不合适我的代码是这样,在一个cpp里申明了一个常量//data.cppconstintROUND=3;然后在一个头文件里申明为全局变量......
  • Scanner对象
    java.util(工具包).Scanner  ;可以通过Scanner类来获取用户输入。  基本语法:newScanner(java.util)//导入Java工具包类Scanners=newScanner(System.in);  ......