C#动态获取本机可用串口的两种方式
1.
private void GetSerialPort() //获取串口列表
{
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);
}
}
}
2.还有一种比较简单,直接通过SerialPort对象取得
string[] ports = System.IO.Ports.SerialPort.GetPortNames();
下面的内容都是转过来的.
在.NET Framework 2.0中提供了SerialPort类,该类主要实现串口数据通信等。下面主要介绍该类的主要属性(表13.1)和方法(表13.2)。
表13.1 SerialPort类的常用属性
名 称 |
说 明 |
BaseStream |
获取 SerialPort 对象的基础 Stream 对象 |
BaudRate |
获取或设置串行波特率 |
BreakState |
获取或设置中断信号状态 |
BytesToRead |
获取接收缓冲区中数据的字节数 |
BytesToWrite |
获取发送缓冲区中数据的字节数 |
CDHolding |
获取端口的载波检测行的状态 |
CtsHolding |
获取“可以发送”行的状态 |
DataBits |
获取或设置每个字节的标准数据位长度 |
DiscardNull |
获取或设置一个值,该值指示 Null 字节在端口和接收缓冲区之间传输时是否被忽略 |
DsrHolding |
获取数据设置就绪 (DSR) 信号的状态 |
DtrEnable |
获取或设置一个值,该值在串行通信过程中启用数据终端就绪 (DTR) 信号 |
Encoding |
获取或设置传输前后文本转换的字节编码 |
Handshake |
获取或设置串行端口数据传输的握手协议 |
IsOpen |
获取一个值,该值指示 SerialPort 对象的打开或关闭状态 |
NewLine |
获取或设置用于解释 ReadLine( )和WriteLine( )方法调用结束的值 |
Parity |
获取或设置奇偶校验检查协议 |
续表
名 称 |
说 明 |
ParityReplace |
获取或设置一个字节,该字节在发生奇偶校验错误时替换数据流中的无效字节 |
PortName |
获取或设置通信端口,包括但不限于所有可用的 COM 端口 |
ReadBufferSize |
获取或设置 SerialPort 输入缓冲区的大小 |
ReadTimeout |
获取或设置读取操作未完成时发生超时之前的毫秒数 |
ReceivedBytesThreshold |
获取或设置 DataReceived 事件发生前内部输入缓冲区中的字节数 |
RtsEnable |
获取或设置一个值,该值指示在串行通信中是否启用请求发送 (RTS) 信号 |
StopBits |
获取或设置每个字节的标准停止位数 |
WriteBufferSize |
获取或设置串行端口输出缓冲区的大小 |
WriteTimeout |
获取或设置写入操作未完成时发生超时之前的毫秒数 |
表13.2 SerialPort类的常用方法
方 法 名 称 |
说 明 |
Close |
关闭端口连接,将 IsOpen 属性设置为False,并释放内部 Stream 对象 |
Open |
打开一个新的串行端口连接 |
Read |
从 SerialPort 输入缓冲区中读取 |
ReadByte |
从 SerialPort 输入缓冲区中同步读取一个字节 |
ReadChar |
从 SerialPort 输入缓冲区中同步读取一个字符 |
ReadLine |
一直读取到输入缓冲区中的 NewLine 值 |
ReadTo |
一直读取到输入缓冲区中指定 value 的字符串 |
Write |
已重载。将数据写入串行端口输出缓冲区 |
WriteLine |
将指定的字符串和 NewLine 值写入输出缓冲区 |
C#动态获取本机可用串口的两种方式的更多相关文章
- Java通过图片url地址获取图片base64位字符串的两种方式
工作中遇到通过图片的url获取图片base64位的需求.一开始是用网上的方法,通过工具类Toolkit,虽然实现的代码比较简短,不过偶尔会遇到图片转成base64位不正确的情况,至今不知道为啥. 之后 ...
- mui 获取本地APP本版号的两种方式
第一种 mui.plusReady(function () { mui.getJSON("manifest.json", null, function (data) { vum = ...
- [转] python 获取本机ip地址的两种实现方法
#!/usr/bin/python import socket import fcntl import struct def get_ip_address(ifname): s = socket.so ...
- 手机App测试如何获取包名的入口【两种方式】
在进行手机APP测试的时候经常要获取包名.那么何为包名呢?简单来说其实就是手机APP的安装apk文件的名称,每个手机APP(软件)的包名都是唯一的. 那么我们怎样来获取包名以及包名的入口呢? 方法一: ...
- MyBatis_动态sql_foreach_mysql下foreach批量插入的两种方式
方法1: 笔记要点出错分析与总结工程组织数据库组织0.重新修改Bean类 修改1.定义接口 //批量插入 public void addEmps(@Param("emps") ...
- Mybatis获取自增主键的两种方式
<insert id="saveOne" parameterType="com.buwei.entity.User" > INSERT into u ...
- @Autowired获取配置文件中被注入实例的两种方式
一.说明 二.那么在JavaBean中如何通过@Autowired获取该实例呢?有两种方式: 1.直接获取 @RunWith(SpringJUnit4ClassRunner.class) @Conte ...
- java动态获取WebService的两种方式(复杂参数类型)
java动态获取WebService的两种方式(复杂参数类型) 第一种: @Override public OrderSearchListRes searchOrderList(Order_Fligh ...
- MyBatis开发Dao层的两种方式(Mapper动态代理方式)
MyBatis开发原始Dao层请阅读我的上一篇博客:MyBatis开发Dao层的两种方式(原始Dao层开发) 接上一篇博客继续介绍MyBatis开发Dao层的第二种方式:Mapper动态代理方式 Ma ...
随机推荐
- 小白笔记:Git入门之常见命令
安装 这里就不介绍安装了,度娘一大堆,找不到可以去找谷爹(前提是你能找到).安装好就跟着笔记进行下一步 准备工作 首先我们需要一个可以 git 的东西,所以我们需要一个文件夹和一个文件 创建文件夹 t ...
- Educational Codeforces Round 73 (Rated for Div. 2)E(思维,博弈)
//这道题博弈的核心就是不能让后手有一段只能放b而长度不够放a的段,并且先手要放最后一次#define HAVE_STRUCT_TIMESPEC#include<bits/stdc++.h> ...
- C/C++ — CreateThread 相关 API
使用互斥对象: #include <windows.h> #include <iostream> #define THREADCOUNT 6 HANDLE ghMutex; D ...
- vue基础语法摘要
1. 2. 3. 4. 5. 6. 7.“动态路由”和“编程式路由”参数的接收方式:路由的参数-----页面之间跳转的参数
- Servlet对用户输入的数据进行读取
逻辑代码: package com.zyb.test; import java.io.IOException; import java.util.Enumeration; import javax.s ...
- Py西游攻关之基础数据类型(三)-元组
Py西游攻关之基础数据类型 - Yuan先生 https://www.cnblogs.com/yuanchenqi/articles/5782764.html 六 tuple(元组) 元组被称为只读列 ...
- 中山Day10——普及
今天又是愚蠢的一天,估分230,实得110.其中T2.4不会,这里就只说题意和简要思路. 收获:scanf>>a,以及printf<<a. T1:模板题 此题相对简单,就是读入 ...
- 搜索控制器UISearchController的使用
说明:本文主要是将系统UISearchController控件声明文件中的属性.方法.代理等介绍下,后续再联合[搜索栏UISearchBar]这篇文章一起更新更实用的信息. 1.初始化 // 如果设置 ...
- python导入第三方库
2.Python的库一般包含两个方面:第三方库和标准库 3.Python的time标准库主要包含三个方面的内容:(1)时间处理函数(2)时间格式化(3)程序计时 4.turtle画笔运动函数的功能是进 ...
- Jenkins安装 maven插件
Maven Artifact ChoiceListProvider (Nexus)Maven Metadata Plugin for Jenkins CI serverMaven Release Pl ...