C 中串列埠與Modem的通訊

2021-04-13 07:13:57 字數 1487 閱讀 1645

最近一段時間,試驗了串列埠的資料傳輸.在c#中,其實有乙個很好的類serialport使串列埠間的通訊變得簡單而且好控制.

一.下面給出serialport的基本屬性:

serialport1.portname = "com1";      //開啟指定串列埠的名字,也可以是com2.

serialport1.baudrate = 9600;          //波特率,這是通訊中的一術語,可以查相關資料,一般都是9600.

serialport1.databits = 8;     //傳輸資料位,一次傳幾位二進位制資料.

serialport1.parity = parity.none;   //校驗,它分為三種,一種奇校驗,一種偶校驗,還有一種是無校驗.

serialport1.stopbits = stopbits.one;     //停止位.

serialport1.dtrenable = true;  //是在開始時,啟用資料終端.它與modem上的tr訊號燈對應,如果開始此燈不亮,則無法傳輸資料,所以在modem的通訊中,應該加上只句.讓終端裝置準備好.

serialport1.rtsenable = true; //這個是請求傳送.

serialport1.encoding = encoding.ascii;  //因為資料傳送時,是以位元組陣列形式傳送所以可以定義好編碼.

編碼有:ascii(只能傳輸英文),unicode(可以傳輸中英文), ut8(中英文).根據自己的情況而定.

但要說明一點,要是你用write(byte,int start,int length)的話,最好自己確定編碼,而不用serialport1.encoding = encoding.ascii進行設定.如:

當你要傳輸

string  strsend="hackenliu";

則先將strsend轉為byte形式.如下:

byte data= encoding.ascii.getbytes(strsend);

serialport1.write(data,0,data.length);    //傳送資料了.

在encoding下,可以選用上面的ascii,也可以是uicode,或是ut8.不過,一定要注意,接收雙方的編碼應該一樣.

二.開啟串列埠:

if (serialport1.isopen)

else

serialport1.open();

lblshow.text = "串列埠已開啟";

三.傳送資料:

serialport類提供了很多的傳送資料函式.有write(param),還有writeline();

四.接收資料:

新增serialport類的事件

private void serialport1_datareceived(object sender, system.io.ports.serialdatareceivedeventargs e)

當有資料時,它會自動接收的.

水平有限,如有錯誤,請指出.謝謝!

C 中串列埠與Modem的通訊

c 中串列埠與modem的通訊 最近一段時間,試驗了串列埠的資料傳輸.在c 中,其實有乙個很好的類serialport使串列埠間的通訊變得簡單而且好控制.一 下面給出serialport的基本屬性 serialport1.portname com1 開啟指定串列埠的埠,也可以是com2.serial...

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

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

利用Modem自動應答實現遠端串列埠通訊

隨著一些智慧型化儀表及控制設定在生產和生活中的普遍應用,使得控制和測試的準確度有了進一步的提高。而這些儀表或控制系統通常還提供另一種功能 數字通訊,通過數字通訊介面可以使之與計算機或其它設定實現資料共享,從而實現更高層次的資料分析及綜合控制。資料請求端 資料請求端的modem引數通常使用出廠配置即可...