C#中的串口通信SerialPort詳解_第1頁
C#中的串口通信SerialPort詳解_第2頁
C#中的串口通信SerialPort詳解_第3頁
C#中的串口通信SerialPort詳解_第4頁
全文預(yù)覽已結(jié)束

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

第C#中的串口通信SerialPort詳解今天這篇文章帶大家學(xué)習(xí)下C#中的串口通訊。在日常的開發(fā)工作中,如果工作內(nèi)容是CS方向的同學(xué)應(yīng)該很容易接觸到串口通訊方面的業(yè)務(wù)需求。那么也就很容易想到C#中SerialPort類,它就是專門來處理串口通訊相關(guān)的。

了解什么是串口通訊

串口通訊是指外設(shè)和計算機間通過數(shù)據(jù)信號線,地線,控制線等,按位進行傳輸數(shù)據(jù)的一種通訊方式。

這種通訊方式使用的數(shù)據(jù)線少,在遠距離通信中可以節(jié)約成本,但其傳輸速度比并行通訊慢。

串口是計算機上一種非常通用的設(shè)備通訊協(xié)議。大多數(shù)計算機包含兩個基于RS-232的串口。

串口也是儀器儀表設(shè)備通用的通訊協(xié)議,很多GPIB兼容的設(shè)備也帶有RS-232口,同時串口通信協(xié)議也可以用于獲取遠程設(shè)備采集的數(shù)據(jù)。

串行接口是一種可以將接受來自CPU的并行數(shù)據(jù)字符轉(zhuǎn)換為連續(xù)的串行數(shù)據(jù)流發(fā)送出去,同時也可將接受的串行數(shù)據(jù)流轉(zhuǎn)換為并行的數(shù)據(jù)字符供給CPU的器件。

一般完成這種功能的電路,我們稱為串行接口電路。

串行按位(bit)發(fā)送和接收字節(jié),盡管比按字節(jié)(byte)的并行通信慢,但是串口可以在使用一根線發(fā)送數(shù)據(jù)的同時用另一根線接收數(shù)據(jù)。它很簡單并且能夠?qū)崿F(xiàn)遠距離通信。

這里提一句,我們筆記本的USB口,它不是串口,它是所謂的U口,我們的串口如果需要插入到USB口,那么就需要一個RS-232轉(zhuǎn)U口的轉(zhuǎn)換器才可以。

這里需要注意下,一般我們的硬件工程師都會在自己的硬件設(shè)備都內(nèi)置這個小轉(zhuǎn)換設(shè)備,很方便。

C#中的串口通訊SerialPort

從.NETFramework2.0開始,微軟就默認提供了System.IO.Ports.SerialPort類,根據(jù)SerialPort類提供的簡單操作步驟,可以很容易的完成串口的信息收發(fā)程序,從特定的串口中接收到數(shù)據(jù)也可以進行數(shù)據(jù)的發(fā)送。

關(guān)于SerialPort類的應(yīng)用也很容易,可以根據(jù)微軟官方的介紹進行使用。

配置SerialPort的名稱,端口號,波特率等。打開/關(guān)閉串口接收/發(fā)送數(shù)據(jù)

SerialPortmySerialPort=newSerialPort("COM2");

mySerialPort.BaudRate=9600;

mySerialPort.Parity=Parity.None;

mySerialPort.StopBits=StopBits.One;

mySerialPort.DataBits=8;

mySerialPort.Handshake=Handshake.Non;

mySerialPort.DataReceived+=newSerialDataReceivedEvenHandler(DataReceive_Method);

mySerialPort.Open();

mySerialPort.Close();

發(fā)送數(shù)據(jù)

usingSystem.IO.Ports;

privatestaticvoidSendSampleData()

SerialPortport=newSerialPort(

"COM1",9600,Parity.None,8,StopBits.One);

port.Open();

port.Write("HelloWorld");

port.Write(newbyte[]{0x0A,0xE2,0xFF},0,3);

port.Close();

}

namespaceSerialPortExample

classSerialPortProgram

privateSerialPortport=newSerialPort("COM1",

9600,Parity.None,8,StopBits.One);

[STAThread]

staticvoidMain(string[]args)

newSerialPortProgram();

privateSerialPortProgram()

Console.WriteLine("IncomingData:");

port.DataReceived+=new

SerialDataReceivedEventHandler(port_DataReceived);

port.Open();

Application.Run();

privatevoidport_DataReceived(objectsender,SerialDataReceivedEventArgse)

Console.WriteLine(port.ReadExisting());

}

日常串口的使用

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論