引用命名空間

// 串口命名空間
		using System.IO.Ports;

新建串口實例

// 實例化串口對象
		// 串口參數  串口號,波特率,數據位,停止位 ,奇偶校驗位
		
		// 實例1  只通過串口號新建實例
		SerialPort port = new SerialPort(“COM1”);

串口獲取linestatus_串口獲取linestatus

獲取所有串口號

// 返回值: 串口號集合
		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);

串口獲取linestatus_串口獲取linestatus_02

發送字符串

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

串口獲取linestatus_串口獲取linestatus_03

發送字符數組

char[] ch = {'h','e','l','l','w' };
            port.Write(ch,0,ch.Length);

串口獲取linestatus_字符串_04

串口接收數據

// 新建串口接收事件
       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();
        }

串口獲取linestatus_串口獲取linestatus_05

關閉串口

port.Close();

串口完整工程