在C 中實現串列埠通訊的方法

2022-02-28 22:46:02 字數 1419 閱讀 2971

通常,在c#中實現串列埠通訊,我們有四種方法:

第一:通過mscomm控制項這是最簡單的,最方便的方法。可功能上很難做到控制自如,同時這個控制項並不是系統本身所帶,所以還得註冊,不在本文討論範圍。可以訪問 ,乙個國外網友的寫的教程,作者很熱心,我曾有發郵件給他,很快就回覆了。

第二:微軟在.net新推出了乙個串列埠控制項,基於.net的p/invoke呼叫方法實現,詳細的大家可以訪問微軟**方便得到更多資料。

第三:就是用第三方控制項啦,可一般都要付費的,不太合實際,不作考慮

第四:自己用api寫串列埠通訊,這樣難度高點,但對於我們來說,可以方便實現自己想要的各種功能

在本文,我們採用第四種方法來實現串列埠通訊,不過不是自己寫,用乙個國外網友現成的已經封裝好的類庫,不過功能簡單點,相對我們來說已經夠用了。

在整個終端簡訊的操作過程中,與串列埠的通訊,只用到了四個功能,開啟、寫、讀、關閉串列埠。下面是類庫對這四個功能的定義:

開啟串列埠:

函式原型:public void open()

說明:開啟事先設定好的埠

示例:using justinio;

static justinio.commport ss_port = new justinio.commport();

ss_port.portnum = com1; //埠號

ss_port.baudrate = 19200; //串列埠通訊波特率

ss_port.bytesize = 8; //資料位

ss_port.parity = 0; //奇偶校驗

ss_port.stopbits = 1;//停止位

ss_port.readtimeout = 1000; //讀超時

tryelse

return true;

}catch(exception e)

寫串列埠:

函式原型:public void write(byte writebytes)

writebytes 就是你的寫入的位元組,注意,字串要轉換成位元組陣列才能進行通訊

示例:ss_port.write(encoding.ascii.getbytes("at+cgmi\r")); //獲取手機品牌

讀串列埠:

函式原型:public byte read(int numbytes)

numbytes 讀入快取數,注意讀取來的是位元組陣列,要實際應用中要進行字元轉換

示例:string response = encoding.ascii.getstring(ss_port.read(128)); //讀取128個位元組快取

關閉串列埠:

函式原型:ss_port.close()

示例:ss_port.close();

由於篇幅,以及串列埠通訊涉及內容廣泛,我在這裡只講這些。

在上面我們已經把終端簡訊所需的各種原始技術有所了解,是可以小試牛刀的時候了。

在C 中實現串列埠通訊

本文主要是講述如何通過c net1.1平台呼叫api操作串列埠,net2.0已經內建串列埠操作類!通常,在c 中實現串列埠通訊,我們有四種方法 第一 通過mscomm控制項這是最簡單的,最方便的方法。可功能上很難做到控制自如,同時這個控制項並不是系統本身所帶,所以還得註冊。可以訪問 乙個外國人寫的教...

c wifi串列埠通訊 C 中的串列埠通訊

序列介面 serial port 又稱 串列埠 主要用於序列式逐位資料傳輸。常見的有一般電腦應用的rs 232 使用 25 針或 9 針聯結器 和工業電腦應用的半雙工rs 485與全雙工rs 422。序列介面按電氣標準及協議來分,包括rs 232 c rs 422 rs485 usb等。rs 232...

C 串列埠通訊方法

串列埠通訊 串口號 頻段 指令 private void portcommun string strserialno,int nbaudrate,byte numsw 建立串列埠物件並開啟串列埠 sp new serialport strserialno,nbaudrate,parity.none,...