英創ARM9工控主板均提供了多個串口供客戶進行通訊控制使用,包括標準的RS232和TTL電平的COM接口(經過簡單的電平轉換即可成為標準的RS232/RS485或者RS422)。由于英創ARM9嵌入式主板采用WinCE操作系統,很多客戶都選擇了界面友好、開發便利的C#語言(使用Visual Studio 2005.NET集成開發環境)。在VS2005中,為了實現串口的操作,英創提供了操作串口的COM組件接口,用戶只需要在目標平臺上進行組件注冊,然后在C#程序開發的時候,對該COM組件添加引用,即可在程序里面自由地通過對象操作來使用英創提供的串口函數。英創提供的串口組件可以提供RTS控制的功能,方便客戶在進行工業現場通訊的時候對RTS進行設置(參見《C#使用COM組件接口進行串口操作》一文);對于不需要RTS控制的客戶,微軟在VS2005里提供了一個標準的串口類SerialPort供客戶使用,該串口類可以靈活方便地進行串口設置、收發等操作,功能更多,使用相對更靈活。英創也提供了一個使用SerialPort串口類的例程供用戶參考,本文就對SerialPort串口類的使用作一個簡單的講解。
首先要添加包含SerialPort串口類的引用:
using System.IO.Ports;
在程序的開始定義一個SerialPort串口類對象:
SerialPort myserialPort = new SerialPort();
串口的參數值可以通過如下方式來定義:
myserialPort.PortName = “COM1”; // 定義為COM1
myserialPort.BaudRate = 9600; // 波特率為9600
打開串口的操作:
myserialPort.Open();
要實現數據的接收,必須要監控串口的接口緩沖,實現一旦有數據進來,就能立刻處理。為此,SerialPort類提供了一個DataRecieved事件,方便對數據的接收進行處理:
myserialPort.DataReceived += new SerialDataReceivedEventHandler(myserialPort_DataReceived);
// 當串口有數據收到時,啟動myserialPort_DataRecieved事件函數
一旦產生DataReceived事件,就由myserialPort_DataReceived函數來處理。
在進行數據接收處理的時候,SerialPort類提供了很多接收方法,包括:Read()、ReadExisting()、ReadByte()、ReadChar()、ReadLine()、ReadTo()等等,客戶可以根據自己的要求進行選用,如:
private void myserialPort_DataReceived(object sender, SerialDataReceivedEventArgs e)
{
//。。。。。。
string whatRecieved = myserialPort.ReadExisting();
//。。。。。。
}
相對來說,數據發送就簡單多了,SerialPort提供了兩個數據發送的方法Write()和WriteLine(),如:
string whatSending = “Emtronix”;
myserialPort.Write( whatSending );
關閉串口的操作如下:
myserialPort.Close();
-
嵌入式主板
+關注
關注
7文章
6085瀏覽量
35227
發布評論請先 登錄
相關推薦
評論