C#串口通讯,复制粘贴就可用,仅仅介绍怎样最快的搭建一个串口通讯,异常拦(乘风破浪的姐姐第三季)

网友投稿 535 2022-06-25


using System;

using System.Collections.Generic;

using System.IO.Ports;

using System.Text;

//串口通讯类

public class SerialPortManager

{

//声明一个静态的串口资源

private SerialPort ComDevice = new SerialPort();

public SerialPortManager()

{

var portList = SerialPort.GetPortNames();//获取当前搜索到的串口集合

ComDevice.DataReceived += new SerialDataReceivedEventHandler(Com_DataReceived); //绑定事件,接收到串口数据时触发

}

///

/// 打开和关闭串口,

/// 前端放个按钮调用这个方法

/// 串口名称用SerialPort.GetPortNames()拉取所有串口,上面构造有写

/// 下面相关的参数具体有些哪些百度下就知道了,这块只是举例,当然也可以直接用

///

/// 串口名称

///

public void openOrCloseSerialPort(string serialPortName)

{

//判断当前状态是打开还是关闭,开启的话就关闭,反之就开启

if (ComDevice.IsOpen == false)

{

//设置串口名称

ComDevice.PortName = serialPortName;

//设置波特率

ComDevice.BaudRate = 115200;

//设置数据位 

ComDevice.DataBits = 8;

//校验位设置

ComDevice.StopBits = StopBits.One;

//停止位设置

ComDevice.Parity = Parity.None;

//开启串口

ComDevice.Open();

}

else

{

ComDevice.Close();//关闭串口

}

}

///

/// 串口数据读取方法,在构造时已经监听

///

private void Com_DataReceived(object sender, SerialDataReceivedEventArgs e)

{

byte[] ReDatas = new byte[ComDevice.BytesToRead];

ComDevice.Read(ReDatas, 0, ReDatas.Length);

//接收到的字节流

var data = ReDatas;

//根据自己需求转换

var str = new UTF8Encoding().GetString(ReDatas);

}

///

/// 发送数据方法

///

/// 需要发送的字节流

public void Com_SendData(byte[] data)

{

if (ComDevice.IsOpen)

{

ComDevice.Write(data, 0, data.Length);//发送数据

}

}

}


版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:面向接口编程,你考虑过性能吗?(面向接口编程好处)
下一篇:慎用ToLower和ToUpper,小心把你的系统给拖垮了
相关文章

 发表评论

暂时没有评论,来抢沙发吧~