国产免费AV|泡泡玛特欧洲总部将设在伦敦|中文天堂网www新版资源在线|一本久道综合在线中文|国精产品一二三产区的使用方法|香蕉鱼在线观看|www.27eee

ELEOK

標題: C#簡單的串口通信程序 注釋詳細適合學習 [打印本頁]

作者: coolfire    時間: 2020-12-1 16:09
標題: C#簡單的串口通信程序 注釋詳細適合學習

部分源碼:
  1. try
  2.             {
  3.                 serialPort1.Close();  //關閉串口
  4.                 button1.Enabled = true;   //打卡串口按鈕可用
  5.                 button2.Enabled = false;  //關閉串口按鈕不可用

  6.             }
  7.             catch   //一般情況下關閉串口不會出現錯誤,所有不需要加處理程序
  8.             {
  9.                 MessageBox.Show("串口關閉錯誤", "錯誤");
  10.             }
  11.         }

  12.         private void button3_Click(object sender, EventArgs e)
  13.         {
  14.             byte[] Data = new byte[1]; //數據一個字節就夠用了
  15.             if (serialPort1.IsOpen)   //判斷串口是否打開,如果打開執行下一步操作
  16.             {
  17.                 if (textBox2.Text != "")
  18.                 {
  19.                     if (!radioButton1.Checked) //如果發送模式是字符模式
  20.                     {
  21.                         try
  22.                         {
  23.                             serialPort1.WriteLine(textBox2.Text);  //寫數據
  24.                         }
  25.                         catch (Exception err)
  26.                         {
  27.                             MessageBox.Show("串口寫入錯誤", "錯誤");
  28.                             serialPort1.Close();
  29.                             button1.Enabled = true;   //打卡串口按鈕可用
  30.                             button2.Enabled = false;  //關閉串口按鈕不可用
  31.                         }
  32.                     }
  33.                     else
  34.                     {
  35.                          //                        字符串轉換為二進制數據:
  36.                          //        byte[] bytes = new byte[str.Length / 2];
  37.                          //        for (int i = 0; i < str.Length; i += 2)
  38.                          //         { bytes[i / 2] = (byte)Convert.ToByte(str.Substring(i, 2), 16);}

  39.                         try
  40.                         {
  41.                             for (int i = 0; i < (textBox2.Text.Length - textBox2.Text.Length % 2) / 2; i++) //取余3運算作用防止用戶輸入字符
  42.                             {
  43.                                 Data[0] = Convert.ToByte(textBox2.Text.Substring(i * 2, 2), 16);
  44.                                 serialPort1.Write(Data, 0, 1);  //循環發送(如果輸入字符為0A0BB,則只發送0A,0B)
  45.                             }
  46.                             if (textBox2.Text.Length % 2 != 0)  //剩下一位單獨處理
  47.                             {
  48.                                 Data[0] = Convert.ToByte(textBox2.Text.Substring(textBox2.Text.Length - 1, 1), 16);  //單獨發送B(0B)
  49.                                 serialPort1.Write(Data, 0, 1);  //發送
  50.                             }
  51.                         }
  52.                         catch (Exception err)
  53.                         {
  54.                             MessageBox.Show("串口寫入錯誤", "錯誤");
  55.                             serialPort1.Close();
  56.                             button1.Enabled = true;   //打卡串口按鈕可用
  57.                             button2.Enabled = false;  //關閉串口按鈕不可用
  58.                         }

  59.      /*                   for (int i = 0; i < (textBox2.Text.Length - textBox2.Text.Length % 2) / 2; i++) //取余3運算作用防止用戶輸入字符
  60.                         {
  61.                             Data[0] = Convert.ToByte(textBox2.Text.Substring(i * 2, 2), 16);
  62.                             serialPort1.Write(Data, 0, 1);  //循環發送(如果輸入字符為0A0BB,則只發送0A,0B)
  63.                         }
  64.                         if (textBox2.Text.Length % 2 != 0)  //剩下一位單獨處理
  65.                         {
  66.                             Data[0] = Convert.ToByte(textBox2.Text.Substring(textBox2.Text.Length - 1, 1), 16);  //單獨發送B(0B)
  67.                             serialPort1.Write(Data, 0, 1);  //發送
  68.                         }
  69.       */
  70. 完整源碼詳見附件
復制代碼
c#串口通信源碼.zip (60.17 KB, 售價: 1 E幣)





歡迎光臨 ELEOK (http://m.afoofa.cn/) Powered by Discuz! X5.0