.net初学之SerialPort串口类

1.命名空间:System.IO.Ports

2.SerialPort类有7个重载
   第一个没有参数,第二个没看懂,剩下的都是传的串口的参数
   (1)portName:串口名称
   (2)baudRate:设置串行波特率,及通信的传输速度
   (3)parity:设置奇偶校验检查协议
   (4)获取或设置传输中的字节长度
   (5)获取每个字节的停止位

3.方法
   (1)Open():打开串口,需要注意的是串口只能有一个程序占用,如果当前串口已被其他程序打开则不
       能再次打开。
   (2)Close():关闭串口。
   (3)Read(byte[],int,int):读接收缓冲区(返回值)的数据,参数分别是:用哪个数组来接,从第几位
       开始接,接到第几位。返回int类型数据。
   (4)Write(byte[],int,int):向继电器发送数据,参数分别是:传进去哪个数组,从数组的第几位开始
       发,发几位。
   (5)GetPortNames():获取继电器串口名称,静态方法,返回string类型数组。
   (6)DiscardInBuffer():清空接收缓冲区数据。

4.属性
   (1)BaudRate:获取或设置串行波特率,及数据传输速度,返回int型数据。
   (2)Parity:获取或设置奇偶校验检查,返回Parity。
   (3)DataBits:获取或设置每个字节的标准数据位长度,返回int类型数据。
   (4)StopBits:获取或设置标准停止位数,返回StopBits类型数据。

5.事件
   (1)DataReceived:接收区有返回值时触发。

6.一个简单的DEMO

1 SerialPort serialPort1 = new SerialPort("COM4", 9600, Parity.None, 8, StopBits.One);//设置串口数据
3 byte[] data = new byte[8] { 0x55, 0x01, 0x12, 0x00, 0x00, 0x00, 0x01, 0x69 };//第一路吸合命令
4 serialPort1.Open()//打开串口
5 serialPort1 .Write(data,0,8);//向串口写入命令
6 int n = serialPort1.BytesToRead;//读继电器返回缓冲区的内容有几位
7 byte[] by = new byte[n];//定义byte数组接收返回值
8 serialPort1.Read(by, 0, n);//读缓冲区数据并存带by数组中
9 serialPort1.Close();//关闭串口

7.备注
   (1).串口的开关耗时较长,应该直接打开串口然后发送数据,确定不需要发送的时候再关闭。
   (2).串口返回十六进制数据,需要解析,我手里的解析方式是:倒数第二位十六进制返回值转换为二
        进制,转换为8位,不足8位的在前面用零(0)补齐,为零的位置如果是1则标识继电器已打开,否
        则为已关闭。
   (3).SerialPort有这个控件。。。不过没用过。

原文地址:https://www.cnblogs.com/wu-tong/p/6180392.html