C#上位机串口接口
文章目录
- 前言
- C#上位机串口接口 特点:数据一位接一位地依次传输,具有简单、通用性强等优点,但传输速度相对较慢。
- 一串口概述
- 二、使用步骤
前言
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