C#上位机串口接口

发布于:2025-07-03 ⋅ 阅读:(18) ⋅ 点赞:(0)


前言

C#上位机串口接口
特点:数据一位接一位地依次传输,具有简单、通用性强等优点,但传输速度相对较慢。

一串口概述

串口参数
串口号 :标识设备连接的串行端口,如 “COM1”“COM3” 等。
波特率 :衡量数据传输速率的指标,单位是比特 / 秒(bps),常见的有 9600、115200 等。
数据位 :表示每个字符的数据位数,通常为 7 或 8 位,包含实际传输的数据信息。
校验位 :用于错误检测,可设置为 None(无校验)、Even(偶校验)、Odd(奇校验)等。
停止位 :用于标识一个字符传输的结束,一般为 1 或 2 位。

二、使用步骤

构造方法传入参数

// 构造方法传入参数
SerialPort serialPort = new SerialPort("COM1",9600,Parity.None,8,StopBits.One);

属性设置参数

//属性设置参数
// 串口号
serialPort.PortName = "COM3";
//波特率
serialPort.BaudRate = 9600;
// 校验位(None,Even,Odd)
serialPort.Parity = Parity.None;
// 数据位
serialPort.DataBits = 8;
// 停止位(One,Two)
serialPort.StopBits = StopBits.One;
// 设置接收超时
serialPort.ReadTimeout = 100000;
// 设置发送超时
serialPort.WriteTimeout = 1000;
// 设置接收缓存大小
serialPort.ReadBufferSize = 4800;
// 设置发送缓存大小
serialPort.WriteBufferSize = 4800;
// 打开串口
serialPort.Open();
// 发送数据
SendAndRecive(serialPort);
// 关闭串口
serialPort.Close();

获取本机所有的串口号

// 获取本机的所有串口号
string[] ports =  SerialPort.GetPortNames();

发送数据

 #region 发送数据
 // 发送字符串
 //serialPort.Write("abc123");
 // 发送字节
 string str = "abc123中文";
 // 将字符转换成字节
 Byte[] bytes = Encoding.UTF8.GetBytes(str);
 serialPort.Write(bytes,0,bytes.Length);
 #endregion

接收数据

#region 接收数据
// 读取缓存区里面的所有字节,并返回字符串,不卡线程,如果缓存区没有数据就获取一个空的字符串
// 会继续执行后面的任务
//string strRecv = serialPort.ReadExisting();
// 读取缓存区内的字节并保存在byteRecv字节数组中,如果没有数据就等待
// 没有读取到字节不会执行后面的任务,直到读取到字节数据或者读取超时。
//Byte[] byteRecv = new Byte[10];
//serialPort.Read(byteRecv,0,10);

// 从缓存区内一个字节一个字节读取数据
//Byte byteRecv = (Byte)serialPort.ReadByte();
// 从缓存区内一个字符一个字符读取数据
//serialPort.ReadChar();
// 从缓存区内读取字符直到指定的特殊字符,例如,发送aaa@bbb,只读取@前面的字符
//没有读取到字节不会执行后面的任务,直到读取到字节数据或者读取超时
//string strRecv = serialPort.ReadTo("@");
// 获取接收缓冲区内的字节数
int len = serialPort.BytesToRead;
Byte[] byteRecv = new Byte[len];
serialPort.Read(byteRecv, 0, len);
#endregion

网站公告

今日签到

点亮在社区的每一天
去签到