91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

C#中怎么創建一個串口通信程序

發布時間:2021-07-08 14:34:00 來源:億速云 閱讀:197 作者:Leah 欄目:編程語言

C#中怎么創建一個串口通信程序,很多新手對此不是很清楚,為了幫助大家解決這個難題,下面小編將為大家詳細講解,有這方面需求的人可以來學習下,希望你能有所收獲。

創建C#串口通信程序之命名空間

System.IO.Ports命名空間中最重用的是SerialPort 類。

創建C#串口通信程序之創建SerialPort 對象

通過創建SerialPort 對象,我們可以在程序中控制串口通信的全過程。

我們將要用到的SerialPort 類的方法:

ReadLine():從輸入緩沖區讀一新行的值,如果沒有,會返回NULL

WriteLine(string):寫入輸出緩沖

Open():打開一個新的串口連接

Close():關閉

//create a Serial Port object  SerialPort sp = new SerialPort ();

默認情況下,DataBits 值是8,StopBits 是1,通信端口是COM1。這些都可以在下面的屬性中重新設置:

BaudRate:串口的波特率

StopBits:每個字節的停止位數量

ReadTimeout:當讀操作沒有完成時的停止時間。單位,毫秒

還有不少其它公共屬性,自己查閱MSDN。

創建C#串口通信程序之串口的硬件知識

在數據傳輸的時候,每個字節的數據通過單個的電纜線傳輸。包包括開始位,數據,結束為。一旦

開始位傳出,后面就會傳數據,可能是5,6,7或8位,就看你的設定了。發送和接收必須設定同樣

的波特率和數據位數。

創建C#串口通信程序之無貓模式

沒有Modem模式的電纜只是簡單地交叉傳送和接收線。同樣DTR & DSR, 和 RTS & CTS也需要交叉。

這里,我們三條線。互連2和3(一段的2pin連接3pin),連接兩端的5pin。

創建C#串口通信程序示例程序

如果想使用默認屬性,按“Save Status”按鈕,如果想改變屬性按“Property”。設定好之后,可以通信了。

主窗口的代碼

#region Using directives   using System;  using System.Collections.Generic;  using System.ComponentModel;  using System.Data;  using System.Drawing;  using System.Windows.Forms;  using System.IO.Ports;   #endregion   namespace Serialexpample  {  partial class Form1 : Form  {  //create instance of property page  //property page is used to set values for stop bits and  //baud rate   PropertyPage pp = new PropertyPage();   //create an Serial Port object  SerialPort sp = new SerialPort();   public Form1()  {  InitializeComponent();  }   private void propertyButton_Click(object sender, EventArgs e)  {  //show property dialog  pp.ShowDialog();   propertyButton.Hide();  }   private void sendButton_Click(object sender, EventArgs e)  {  try {  //write line to serial port  sp.WriteLine(textBox.Text);  //clear the text box  textBox.Text = "";  }  catch (System.Exception ex)  {  baudRatelLabel.Text = ex.Message;  }   }   private void ReadButton_Click(  object sender, EventArgs e)  {  try {  //clear the text box  textBox.Text = "";  //read serial port and displayed the data in text box  textBox.Text = sp.ReadLine();  }  catch(System.Exception ex)  {  baudRatelLabel.Text = ex.Message;  }  }   private void Form1_Load(object sender, EventArgs e)  {   }   private void Form1_FormClosing(  object sender, FormClosingEventArgs e)  {  MessageBox.Show("Do u want to Close the App");  sp.Close();  }   private void startCommButton_Click(  object sender, EventArgs e)  {  startCommButton.Hide();  sendButton.Show();  readButton.Show();  textBox.Show();  }   //when we want to save the status(value)  private void saveStatusButton_Click_1(  object sender, EventArgs e)  {  //display values  //if no property is set the default values  if (pp.bRate == "" && pp.sBits == "")  {  dataBitLabel.Text = "BaudRate = " +   sp.BaudRate.ToString();  readTimeOutLabel.Text = "StopBits = " +   sp.StopBits.ToString();  }  else {  dataBitLabel.Text = "BaudRate = " +   pp.bRate;  readTimeOutLabel.Text = "StopBits = " + pp.sBits;  }  //創建C#串口通信程序 parityLabel.Text = "DataBits = " +   sp.DataBits.ToString();  stopBitLabel.Text = "Parity = " +   sp.Parity.ToString();  readTimeOutLabel.Text = "ReadTimeout = " +    sp.ReadTimeout.ToString();   if (propertyButton.Visible == true)  propertyButton.Hide();  saveStatusButton.Hide();  startCommButton.Show();   try {  //open serial port  sp.Open();  //set read time out to 500 ms  sp.ReadTimeout = 500;  }  catch (System.Exception ex)  {  baudRatelLabel.Text = ex.Message;  }  }  }  }

創建C#串口通信程序之屬性設置對話框代碼:

#region Using directives   using System;  using System.Collections.Generic;  using System.ComponentModel;  using System.Data;  using System.Drawing;  using System.Text;  using System.Windows.Forms;   #endregion   namespace Serialexpample  {  partial class PropertyPage : Form  {  //variables for storing values of baud rate and stop bits  private string baudR="";  private string stopB="";   //property for setting and getting baud rate and stop bits  public string bRate  {  get {  return baudR;  }  set {  baudR = value;  }  }   public string sBits  {  get {  return stopB;  }  set {  stopB = value;  }  }   public PropertyPage()  {  InitializeComponent();  }   private void cancelButton_Click(  object sender, EventArgs e)  {  this.bRate = "";  this.sBits = "";  //close form  this.Close();  }   private void okButton_Click_1(  object sender, EventArgs e)  {  //here we set the value for stop bits and baud rate.  this.bRate = BaudRateComboBox.Text;  this.sBits = stopBitComboBox.Text;  //  this.Close();   }  }  }

看完上述內容是否對您有幫助呢?如果還想對相關知識有進一步的了解或閱讀更多相關文章,請關注億速云行業資訊頻道,感謝您對億速云的支持。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

馆陶县| 富锦市| 余江县| 阿拉善右旗| 永泰县| 海淀区| 岚皋县| 将乐县| 忻城县| 新巴尔虎左旗| 泽库县| 临夏市| 肥城市| 邮箱| 合肥市| 宜都市| 洪雅县| 瓮安县| 福海县| 安新县| 内乡县| 白朗县| 师宗县| 北流市| 上蔡县| 苏州市| 天镇县| 兴隆县| 澄江县| 德阳市| 孙吴县| 宜兰市| 蒲江县| 闵行区| 横山县| 慈利县| 哈密市| 赤壁市| 西畴县| 蚌埠市| 安吉县|