最近频繁使用串口,有必要好好学习下串口技术。C#SerialPort类:
1.可以看出,使用时需要引进 System.IO.Ports空间命名。
2.构造函数有好几种,这个是常用的,如增加端口名(COM1,COM2等),速度9600等,奇偶数,数位,停止等。
SerialPort类的基本属性:
常用函数:
public static string[] GetPortNames();获取当前计算机的串行端口名称数组。
public void Close();关闭端口连接,将 System.IO.Ports.SerialPort.IsOpen 属性设置为 false,并释放内部 stream 对象.
public void DiscardInBuffer()丢弃来自串口的接收缓冲区的数据。
public void DiscardOutBuffer()丢弃来自串口的传输缓冲区的数据。
public void Open();打开一个新的串行端口连接。如出现一些状况会出现异常报错:
a.前进程或系统上的另一个进程已经打开了指定的 COM 端口
b.打开的实例的一个或多个属性无效,如设定参数不是规定的参数。
c.端口名称不是以“COM”开始的。
d.此端口处于无效状态,或已经打开。
综合上述,使用时需要注意!!进行检查再打开。
public int Read(char[] buffer, int offset, int count);
输入缓冲区中读取大量字符,然后将这些字符写入到一个字符数组中指定的偏移量处;buffer---输入写入到其中的字符数组; offset---缓冲区数组中从其开始读取的偏移量;count---要读取的字符数;返回结果---读取的字符数。
public int Read(byte[] buffer, int offset, int count);类似上,一个为字符数组一个为字节数组。其他类似。在ASCI码类似,在其他码不同。
public int ReadByte();
输入缓冲区中同步读取一个字节,强制转换为 System.Int32 的字节;或者,如果已读取到流的末尾,则为 -1。
public int ReadChar()
输入缓冲区中同步读取一个字符。返回为 读取的字符。
public string ReadExisting();SerialPort 对象的流和输入缓冲区中所有立即可用的字节,返回 对象的流和输入缓冲区的内容。
public string ReadLine();一直读取到输入缓冲区中的 System.IO.Ports.SerialPort.NewLine 值。
public string ReadTo(string value);
一直读取到输入缓冲区中的指定 value 的字符串。返回输入缓冲区中直到指定 value 的内容。
public void Write(string text);将指定的字符串写入串行端口。
public void Write(byte[] buffer, int offset, int count)使用缓冲区的数据将指定数量的字节写入串行端口。
public void Write(char[] buffer, int offset, int count)使用缓冲区的数据将指定数量的字符写入串行端口
public void WriteLine(string text);将指定的字符串和 System.IO.Ports.SerialPort.NewLine 值写入输出缓冲区。