C#中串列埠類serialPort的用法!
最近由於任務需要,用到了serialPort類,在此記錄重要步驟。
主要常用的屬性為:
PortName //可用的COM埠號
BaudRate //波特率
DataBits //資料位
StopBits //停止位
Parity //奇偶校驗
BytesToRead //獲取接收緩衝區的位元組數
BytesToWrite //獲取傳送緩衝區的位元組數
其中前五個屬性是開啟一個串列埠最基本的引數。比如一般的串列埠除錯工具都是預設資料位為8,停止位1,奇偶校驗0,如下:
串列埠例項化後的物件為serialPort1,則
serialPort1.Parity = Parity.None;
serialPort1.DataBits = Convert.ToInt32(“8”);
serialPort1.StopBits = StopBits.One;
serialPort1.Open();
常用的方法:
DiscardInBuffer //丟棄接收快取區的內容
DiscardOutBuffer //丟棄傳送緩衝區的內容
Open //開啟串列埠
read //從輸入緩衝區讀取
這個方法需要特別說明,一般用到的過載方法為 public int Read(
byte[] buffer, //將輸入寫入到其中的位元組陣列
int offset, //緩衝區數中開始寫入的偏移量
int count //要讀取的位元組數
)
表示從 SerialPort輸入緩衝區讀取一些位元組並將那些位元組寫入位元組陣列中指定的偏移量處。並且利用read讀出來的是位元組陣列,如果要轉換為字串的話還需要System.Text.Encoding.ASCII.GetString(buffer);
write(string) //將制定的字串寫入串列埠
常用事件:
DataReceived //資料接收事件的方法
從 serialPort 物件接收資料時,將在輔助執行緒上引發DataReceived 事件,因此貌似這個事件是一直在“迴圈的”(只要接收緩衝區有資料就出發)。如果不呼叫該事件也可以實現實時的接受資料,但應該就要另外開闢一條執行緒了,目前我還沒研究,以後有機會了應該要探究下。