【入門】C#串口編程

來源:互聯網
上載者:User

目錄

一、硬體要求

  1. 硬線串連
  2. 虛擬串口軟體

二、軟體編程

  1. 如何獲得本機可用的串口列表
  2. 串口的常用操作
  3. 如何避免死結
  • 硬體要求

需要保證硬體是接通的,即沒有硬體方面的問題。如果不能確定的,可以下載一個串口助手測試一下硬體。

如果沒有可以調試的串口,可以下載一個VSPM虛擬串口軟體,虛擬自己的串口。

  • 軟體編程

【指導手冊: SerialPort MSDN 】

  •  

    • 如何獲得本機可用的串口列表
Microsoft.VisualBasic.Devices.Computer pc;
pc =new Microsoft.VisualBasic.Devices.Computer();

foreach (string s in pc.Ports.SerialPortNames)
{
comboBox1.Items.Add(s);//comboBox1為UI上的下拉式清單
}

註:使用Microsoft.VisualBasic.Devices需要在工程中添加Microsoft.VisualBasic的引用。方法為:功能表列“項目”-》“添加引用”-》選擇“.NET”選項卡-》找到“Microsoft.VisualBasic”後,點擊,然後按“確定”,即可。

  •  

    • 串口的常用操作

      • 1.聲明並執行個體化串口
System.IO.Ports.SerialPort com;
com =new System.IO.Ports.SerialPort();
  •  

    •  

      • 2.開啟串口
com.Open();
  •  

    •  

      • 3.關閉串口
com.Close();
  •  

    •  

      • 4.串口的讀寫

①使用writeLine寫資料,用readLine讀資料

com.WriteLine("hello Elar");//寫資料
//other code
string inStr = com.ReadLine();//讀資料

註:使用readline和writeline時,要注意事先設定serialport的newLine。

com.NewLine ="\r\n";//一般方法
//或者用下面的代碼
com.NewLine = Environment.NewLine;//這樣比較好

②使用write寫串口,read(或readExisting)讀串口

com.Write("hello Elar");

read函數有兩種實現方式(詳見【這裡】):

建議用 SerialPort.Read (Byte[], Int32, Int32) 方式,因為使用byte方式發送和接收,可用在傳輸的時候避免因為編碼的問題而出現亂碼的情況。

使用方法如下:

byte[] readBuffer =newbyte[com.ReadBufferSize];
com.Read(readBuffer, 0, readBuffer.Length);

ReadBufferSize 是SerialPort的公用屬性之一,通過它可以擷取或設定 SerialPort 輸入緩衝區的大小。通過上面的代碼讀出的是位元據,可以通過如下代碼將其轉換為常見的string型資料:

string s = Encoding.Unicode.GetString(readBuffer);//要求編碼時候用的也是Unicode編碼方式

ReadExisting 和 write 配合使用,並避免亂碼(黃色標識的部分)的方案如下:

Byte[] data = Encoding.Unicode.GetBytes(sendText.Text);//sendText為輸入發送資料的文字框
string str = System.Text.Encoding.Unicode.GetString(data);
com.Write(str);//向連接埠寫資料Byte[] data = System.Text.Encoding.Unicode.GetBytes(port.ReadExisting());//從連接埠讀資料
string str = Encoding.Unicode.GetString(data);//將資料轉換為string型
  •  

    • 如何避免死結

待續……

 

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.