程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> C# >> C#入門知識 >> c#中實現串口通信的幾種方法

c#中實現串口通信的幾種方法

編輯:C#入門知識

通常,在C#中實現串口通信,我們有四種方法:
  第一:通過MSCOMM控件這是最簡單的,最方便的方法。可功能上很難做到控制自如,同時這個控件並不是系統本身所帶,所以還得注冊,不在本文討論范圍。可以訪問http://www.devhood.com/tutorials/tutorial_details.aspx?tutorial_id=320舞台搭建 毛刷一個國外網友的寫的教程,作者很熱心,我曾有發郵件給他,很快就回復了。
  第二:微軟在.NET新推出了一個串口控件,基於.NET的P/Invoke調用方法實現,詳細的大家可以訪問微軟網站http://msdn.microsoft.com/msdnmag/issues/02/10/NETSerialComm/default.aspx,方便得到更多資料。
  第三:就是用第三方控件啦,可一般都要付費的,不太合實際,不作考慮.
  第四:自己用API寫串口通信,這樣難度高點,但對於我們來說,可以方便實現自己想要的各種功能.


  在本文,我們采用第四種方法來實現串口通信,不過不是自己寫,用一個國外網友現成的已經封裝好的類庫,不過功能簡單點,相對我們來說已經夠用了。
  在整個終端短信的操作過程中,與串口的通信,只用到了四個功能,打開、寫、讀、關閉串口。下面是類庫對這四個功能的定義:
  打開串口:
  函數原型:public void Open()
  說明:打開事先設置好的端口
  示例:
using JustinIO;
static JustinIO.CommPort ss_port = new JustinIO.CommPort();
ss_port.PortNum = COM1; //端口號
ss_port.BaudRate = 19200; //串口通信波特率
ss_port.ByteSize = 8; //數據位
ss_port.Parity = 0; //奇偶校驗
ss_port.StopBits = 1;//停止位
ss_port.ReadTimeout = 1000; //讀超時
try
{
 if (ss_port.Opened)
 {
  ss_port.Close();
  ss_port.Open(); //打開串口舞台搭建 毛刷
 }
 else
 {
  ss_port.Open();//打開串口
 }
 return true;
}
catch(Exception e)
{
 MessageBox.Show("錯誤:" + e.Message);
 return false;
}
  寫串口:
  函數原型:public void Write(byte[] WriteBytes)
  WriteBytes 就是你的寫入的字節,注意,字符串要轉換成字節數組才能進行通信
  示例:
ss_port.Write(Encoding.ASCII.GetBytes("AT+CGMI")); //獲取手機品牌
  讀串口:
  函數原型:public byte[] Read(int NumBytes)
  NumBytes 讀入緩存數,注意讀取來的是字節數組,要實際應用中要進行字符轉換
  示例:
string response = Encoding.ASCII.GetString(ss_port.Read(128)); //讀取128個字節緩存
  舞台搭建 毛刷關閉串口:
  函數原型:ss_port.Close()
  示例:
ss_port.Close();

    

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved