serialport

serialport

serial port,即串列連線埠,現在大多數硬體設備均採用串口技術與計算機相連,因此串口的應用程式開發越來越普遍。例如,在計算機沒有安裝網卡的情況下,將本機上的一些信息數據 傳輸到另一台計算機上,那么利用串口通信就可以實現。運行本程式,在“傳送數據”文本框中輸入要傳送的數據,單擊【傳送】按鈕,將傳送的數據傳送到所選擇 的連線埠號中;單擊【接收】按鈕,傳遞的數據被接收到“接收數據”文本框中。

基本介紹

  • 中文名:串列連線埠
  • 外文名:serialport
  • 實現:串口數據通信等
  • 現狀:串口的應用程式開發越來越普遍
技術要點,屬性部分,方法部分,實現過程,相關技術,

技術要點

在.NET Framework 2.0中提供了SerialPort類,該類主要實現串口數據通信等。下面主要介紹該類的主要屬性和方法。

屬性部分

公共屬性
名稱
說明
BaseStream
獲取 SerialPort 對象的基礎 Stream 對象。
獲取或設定串列波特率。
BreakState
獲取或設定中斷信號狀態。
BytesToRead
獲取接收緩衝區中數據的位元組數。
BytesToWrite
獲取傳送緩衝區中數據的位元組數。
CDHolding
獲取連線埠的載波檢測行的狀態。
獲取 IContainer,它包含 Component。(從 Component 繼承。)
CtsHolding
獲取“可以傳送”行的狀態。
DataBits
獲取或設定每個位元組的標準數據位長度。
DiscardNull
獲取或設定一個值,該值指示 Null 位元組在連線埠和接收緩衝區之間傳輸時是否被忽略。
DsrHolding
獲取數據設定就緒 (DSR) 信號的狀態。
DtrEnable
獲取或設定一個值,該值在串列通信過程中啟用數據終端就緒 (DTR) 信號。
獲取或設定傳輸前後文本轉換的位元組編碼。
獲取或設定串列連線埠數據傳輸的握手協定。
獲取一個值,該值指示 SerialPort 對象的打開或關閉狀態。
NewLine
獲取或設定用於解釋 ReadLineWriteLine 方法調用結束的值。
獲取或設定奇偶校驗檢查協定。
ParityReplace
獲取或設定一個位元組,該位元組在發生奇偶校驗錯誤時替換數據流中的無效位元組。
PortName
獲取或設定通信連線埠,包括但不限於所有可用的 COM 連線埠。
ReadBufferSize
獲取或設定 SerialPort 輸入緩衝區的大小。
ReadTimeout
獲取或設定讀取操作未完成時發生逾時之前的毫秒數。
ReceivedBytesThreshold
獲取或設定 DataReceived 事件發生前內部輸入緩衝區中的位元組數。
RtsEnable
獲取或設定一個值,該值指示在串列通信中是否啟用請求傳送 (RTS) 信號。
獲取或設定 Component 的 ISite。(從 Component 繼承。)
StopBits
獲取或設定每個位元組的標準停止位數。
WriteBufferSize
獲取或設定串列連線埠輸出緩衝區的大小。
WriteTimeout
獲取或設定寫入操作未完成時發生逾時之前的毫秒數。
保護屬性
名稱
說明
CanRaiseEvents
獲取一個指示組件是否可以引發事件的值。(從 Component 繼承。)
DesignMode
獲取一個值,用以指示 Component 當前是否處於設計模式。(從 Component 繼承。)
Events
獲取附加到此 Component 的事件處理程式的列表。(從 Component 繼承。)

方法部分

公共方法
名稱
說明
關閉連線埠連線,將 IsOpen 屬性設定為 false,並釋放內部 Stream 對象。
CreateObjRef
創建一個對象,該對象包含生成用於與遠程對象進行通信的代理所需的全部相關信息。 (從 MarshalByRefObject 繼承。)
DiscardInBuffer
丟棄來自串列驅動程式的接收緩衝區的數據。
DiscardOutBuffer
丟棄來自串列驅動程式的傳輸緩衝區的數據。
已重載。 釋放 SerialPort 對象使用的非託管資源。
已重載。 確定兩個 Object 實例是否相等。 (從 Object 繼承。)
GetHashCode
用作特定類型的哈希函式。GetHashCode 適合在哈希算法和數據結構(如哈希表)中使用。 (從 Object 繼承。)
GetLifetimeService
檢索控制此實例的生存期策略的當前生存期服務對象。 (從 MarshalByRefObject 繼承。)
GetPortNames
獲取當前計算機的串列連線埠名稱數組。
獲取當前實例的 Type。 (從 Object 繼承。)
InitializeLifetimeService
獲取控制此實例的生存期策略的生存期服務對象。 (從 MarshalByRefObject 繼承。)
Open
打開一個新的串列連線埠連線。
Read
已重載。 從 SerialPort 輸入緩衝區中讀取。
ReadByte
從 SerialPort 輸入緩衝區中同步讀取一個位元組。
ReadChar
從 SerialPort 輸入緩衝區中同步讀取一個字元。
ReadExisting
在編碼的基礎上,讀取 SerialPort 對象的流和輸入緩衝區中所有立即可用的位元組。
一直讀取到輸入緩衝區中的 NewLine 值。
ReadTo
一直讀取到輸入緩衝區中的指定 value 的字元串。
ReferenceEquals
確定指定的 Object 實例是否是相同的實例。 (從 Object 繼承。)
返回包含 Component 的名稱的 String(如果有)。不應重寫此方法。 (從 Component 繼承。)
Write
已重載。 將數據寫入串列連線埠輸出緩衝區。
將指定的字元串和 NewLine 值寫入輸出緩衝區。
保護方法
名稱
說明
已重載。 已重寫。 釋放 SerialPort 對象使用的非託管資源。
在通過垃圾回收將 Component 回收之前,釋放非託管資源並執行其他清理操作。 (從 Component 繼承。)
GetService
返回一個對象,該對象表示由 Component 或它的 Container 提供的服務。 (從 Component 繼承。)
MemberwiseClone
已重載。 (從 MarshalByRefObject 繼承。)
公共事件
名稱
說明
DataReceived
表示將處理 SerialPort 對象的數據接收事件的方法。
添加事件處理程式以偵聽組件上的 Disposed 事件。(從 Component 繼承。)
ErrorReceived
表示處理 SerialPort 對象的錯誤事件的方法。
PinChanged
表示將處理 SerialPort 對象的串列管腳更改事件的方法。

實現過程

(1)新建一個項目,命名為Ex13_01,默認窗體為Form1。
(2)在Form1窗體中,主要添加兩個Button控制項,分別用於執行傳送數據和接受數據,添加兩個TextBox控制項,用於輸入傳送數據和顯示接收數據。
(3)主要程式代碼。
private void button1_Click(object sender, EventArgs e)
{
serialPort1.PortName = "COM1";
serialPort1.BaudRate = 9600;
serialPort1.Open();
byte[] data = Encoding.Unicode.GetBytes(textBox1.Text);
string str = Convert.ToBase64String(data);
serialPort1.WriteLine(str);
MessageBox.Show("數據傳送成功!","系統提示");
}
private void button2_Click(object sender, EventArgs e)
{
byte[] data = Convert.FromBase64String(serialPort1.ReadLine());
textBox2.Text = Encoding.Unicode.GetString(data);
serialPort1.Close();
MessageBox.Show("數據接收成功!","系統提示");
}

相關技術

現在微軟推出了最新版本的 Visual Studio 2008 開發工具,可以不再采 用第三方控制項的方法來設計串口通訊程式。NET Framework 2.0 類庫包含了 SerialPort 類,方便地實現了所需要串口通訊的多種功能, 可以實現MSComm 編程方法快速轉換到以 SerialPort 類為核心的串口通訊,關於設計和方法,可以參考下面的擴展閱讀。

相關詞條

熱門詞條

聯絡我們