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