引用命名空间
// 串口命名空间
using System.IO.Ports;
新建串口实例
// 实例化串口对象
// 串口参数 串口号,波特率,数据位,停止位 ,奇偶校验位
// 实例1 只通过串口号新建实例
SerialPort port = new SerialPort(“COM1”);

获取所有串口号
// 返回值: 串口号集合
SerialPort.GetPortNames();
判断串口是否打开
// 判断串口是否打开 如果串口没有打开就打开串口
// port.IsOpen 返回值 : true:串口打开状态 false: 串口关闭状态
if (!port.IsOpen)
{
port.Open();
}
打开串口
port.open()
获取串口接收数据长度
// Readlen : 串口接收数据长度
int Readlen = port.BytesToRead;
获取串口发送数据长度
int Writelen = port.BytesToWrite;
串口发送数据
发送字节数据
byte[] by = { 0x01, 0x02, 0x03 };
// 发送数据
// 参数1 : 发送的数据
// 参数2: 从哪个下标开始发送
// 参数3 : 到哪个下标
port.Write(by, 0, by.Length);

发送字符串
port.Write("要发送的字符串");

发送字符数组
char[] ch = {'h','e','l','l','w' };
port.Write(ch,0,ch.Length);

串口接收数据
// 新建串口接收事件
port.DataReceived += new SerialDataReceivedEventHandler(PortGet);
private void PortGet(object sender, SerialDataReceivedEventArgs e)
{
// 获取接收缓冲区长度
int Readlen = port.BytesToWrite;
// 新建一个 byte[] 数组 用来存放接收的数据
byte[] by = new byte[Readlen];
// 接收数据到by里面
port.Read(by, 0 , Readlen);
// throw new NotImplementedException();
}

关闭串口
port.Close();
串口完整工程