【實驗室筆記】C#上位機學習筆記


用C#編寫上位機,基本流程是【1】串口配置,【2】串口發送數據,【3】串口接收數據。

【1】串口配置

  串口的屬性配置包括:

  No.1串口端口號

  No.2串口波特率

  No.3串口數據位

  No.4串口停止位

  N0.5串口校驗位

串口的上述屬性,分別將值存儲進combobox里邊,然后帶用戶根據實際情況自己進行選擇,設置也比較簡單。

串口的打開和關閉,采用try-catch這對組合,可以自動打開和關閉處理過程中出現的問題。

【2】串口發送數據

串口發送數據,采用串口的write屬性,該屬性有三種重載方式,string,byte,char三種,分別是字符串,字節,字符三種。

 1             if (serialPort1.IsOpen == true)  2  {  3                 try
 4  {  5                     Byte[] mes = new Byte[3] { 1,2,3};  6                     char[] chr = new char[3] { 'a','b','c'};  7                     serialPort1.Write(mes,0,1);  8                     serialPort1.Write(chr,0,1);  9                     serialPort1.Write("Hello"); 10                     MessageBox.Show("發送成功"); 11  } 12                 catch
13  { 14                     MessageBox.Show("發送失敗"); 15  } 16             }

Write的Byte和char函數接口解釋為,首先告訴write用的哪一個數組,從數組第幾個位開始發數據,發幾個數據。
如此,下位機,講分別收到1,a,Hello數據。

【3】串口接收數據

1 Control.CheckForIllegalCrossThreadCalls = false; 2 serialPort1.DataReceived += new SerialDataReceivedEventHandler(SP1REV); 3 serialPort1.ReceivedBytesThreshold = 1;
 1         void SP1REV(object sender, SerialDataReceivedEventArgs e)  2  {  3             if (serialPort1.IsOpen == true)  4  {  5                 try
 6  {  7                     Byte[] REV = new Byte[serialPort1.BytesToRead];  8                     serialPort1.Read(REV, 0, REV.Length);  9  serialPort1.DiscardInBuffer(); 10                     textBox1.Text += Encoding.ASCII.GetString(REV); 11  } 12                 catch
13  { 14                     MessageBox.Show("接收出錯"); 15  } 16  } 17         }

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM