C 串列埠通訊

2021-10-03 03:10:08 字數 1684 閱讀 4715

新建乙個串列埠物件

serialport port =

newserialport()

;設定串列埠的一些配置

port.portname =

"com1"

;//串列埠名

port.baudrate =

115200

;//波特率

port.databits =8;

//資料位

port.parity = parity.none;

//校驗位

port.stopbits = stopbits.one;

//停止位

port.readtimeout =

1000

;//讀串列埠延時

port.writetimeout =

1000

;//寫串列埠延時

清空緩衝區

discardinbuffer()

//丟棄來自序列驅動程式的接收緩衝區的資料。

discardoutbuffer()

//丟棄來自序列驅動程式的傳輸緩衝區的資料。

串列埠的讀和寫

先說寫:

sp.write

(data,o,data.length)

;//注意data是byte

在說讀:

sp.datareceived +

=new

serialdatareceivedeventhandler

(com_datareceived)

;//繫結事件(註冊埠資料獲取作業系統託管監聽事件)

//datareceived事件表示將處理的 serialport 物件的「資料接收事件」的方法

private

void

com_datareceived()

之後你需要新建乙個方法來接受你的資料,sp.datareceived用於和時間繫結,注意這個方法不在

主線程上(如果想將資料顯示到主介面需要使用到委託),而且只有串列埠有資料接受到就會觸發這

個事件,如果出發太快,會導致資料丟失或者程式拋錯,所以加上如圖,等資料全部接受完再讀取

這時候資料讀寫都已經完成。

解析資料:

解析資料,一定要遵守下位機老司機的協議文件,不下位機老師傅的協議文件,資料讀出來後,

是2個byte乙個值,4個byte乙個值,是用ascii還是unicode編碼都一定要按照協議進行解析。

常用方法:

close 關閉埠連線,將 isopen 屬性設定為 false,並釋放內部 stream 物件

getportnames 獲取當前計算機的串列埠名稱陣列

open 開啟乙個新的串列埠連線

read 從 serialport 輸入緩衝區中讀取

write 將資料寫入串列埠輸出緩衝區

常用事件:

datareceived 表示將處理 serialport 物件的資料接收事件的方法

每個serialport被建立後,都會分配兩個緩衝區,輸入緩衝區和輸出緩衝區。

C 串列埠通訊

串列埠通訊類 serialportdao.csusing system using system.collections.generic using system.text using system.io.ports namespace ly.fuelstationpos.protocol set ...

C 串列埠通訊

本文 串列埠介紹 串列埠叫做序列介面,也稱序列通訊介面,按電氣標準及協議來分包括rs 232 rs 422 rs485 usb等。rs 232 c rs 422與rs 485標準只對介面的電氣特性做出規定,不涉及接外掛程式 電纜或協議。usb是近幾年發展起來的新型介面標準,主要應用於高速資料傳輸領域...

C 串列埠通訊

但是網上好多都是寫的窗體程式 還有各種複雜的類裡面,看起來很費勁兒,所以我這裡就寫了乙個 只有控制台 只有 乙個主函式類 類似於c語言結構化的方式,把真的的問題暴露出來,重點凸出來.大概步驟就是 檢測串列埠是否存在以及數量 定義乙個埠控制代碼 serialport 設定埠控制代碼的資訊 埠號,波特率...