c#中串列埠與modem的通訊
最近一段時間,試驗了串列埠的資料傳輸.在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 中,其實有乙個很好的類serialport使串列埠間的通訊變得簡單而且好控制.一 下面給出serialport的基本屬性 serialport1.portname com1 開啟指定串列埠的名字,也可以是com2.serialport1.baudrate ...
c wifi串列埠通訊 C 中的串列埠通訊
序列介面 serial port 又稱 串列埠 主要用於序列式逐位資料傳輸。常見的有一般電腦應用的rs 232 使用 25 針或 9 針聯結器 和工業電腦應用的半雙工rs 485與全雙工rs 422。序列介面按電氣標準及協議來分,包括rs 232 c rs 422 rs485 usb等。rs 232...
利用Modem自動應答實現遠端串列埠通訊
隨著一些智慧型化儀表及控制設定在生產和生活中的普遍應用,使得控制和測試的準確度有了進一步的提高。而這些儀表或控制系統通常還提供另一種功能 數字通訊,通過數字通訊介面可以使之與計算機或其它設定實現資料共享,從而實現更高層次的資料分析及綜合控制。資料請求端 資料請求端的modem引數通常使用出廠配置即可...