.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有這個控件。。。不過沒用過。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM