C#串口接收程序的實現(xiàn)
更新時間:2022年05月06日 11:30:30 作者:大頭工程師筆記
本文主要介紹了C#串口接收程序的實現(xiàn),文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
1.代碼
using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows.Forms; using System.IO.Ports; namespace WindowsFormsApp1 { public partial class Form1 : Form { public Form1() { InitializeComponent(); CheckForIllegalCrossThreadCalls = false; serialPort1.DataReceived += new SerialDataReceivedEventHandler(port_DataReceived); serialPort1.Encoding = Encoding.GetEncoding("GB2312"); System.Windows.Forms.Control.CheckForIllegalCrossThreadCalls = false; } /// /數(shù)據(jù)接收部分 private void port_DataReceived(object sender, SerialDataReceivedEventArgs e)//接收函數(shù) { try { string recive_data; recive_data = serialPort1.ReadExisting(); recive_data = returnData.ToString(); textBox1.Text += recive_data; textBox1.AppendText("\r\n"); } catch { } } /// //搜索串口部分 private void button1_Click(object sender, EventArgs e) { SearchAnAddSerialToComboBox(serialPort1, comboBox1); } private void SearchAnAddSerialToComboBox(SerialPort MyPort, ComboBox MyBox)//搜索串口函數(shù) { //將可用的串口號添加到ComboBox string[] NmberOfport = new string[20];//最多容納20個,太多會卡,影響效率 string MidString1;//中間數(shù)組,用于緩存 MyBox.Items.Clear();//清空combobox的內(nèi)容 for (int i = 1; i < 20; i++) { try //核心是靠try和catch 完成遍歷 { MidString1 = "COM" + i.ToString(); //把串口名字賦給MidString1 MyPort.PortName = MidString1; //把MidString1賦給 MyPort.PortName MyPort.Open(); //如果失敗,后面代碼不執(zhí)行?? NmberOfport[i - 1] = MidString1; //依次把MidString1的字符賦給NmberOfport MyBox.Items.Add(MidString1); //打開成功,添加到下列列表 MyPort.Close(); //關閉 MyBox.Text = NmberOfport[i - 1]; //顯示最后掃描成功那個串口 } catch { }; } } /// 打開串口部分 private void button2_Click(object sender, EventArgs e) { if (button2.Text == "打開串口")//為0時,表示關閉,此時可以進行打開操作 { try { serialPort1.PortName = comboBox1.Text;//獲取端口號 serialPort1.BaudRate = Convert.ToInt32(comboBox2.Text);//設置波特率 //serialPort1.Parity = Parity.None; //serialPort1.DataBits = 8; //serialPort1.StopBits = StopBits.One; serialPort1.Open();//打開串口 button2.Text = " 關閉串口"; } catch { MessageBox.Show("串口打開錯誤"); } } else //為1時,表示開啟,此時可以進行關閉操作 { try { serialPort1.Close();//關閉串口 button2.Text = "打開串口";//置位為0,表示狀態(tài)為關閉 } catch { } } } /// <summary> /// /清空顯示部分 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void button3_Click(object sender, EventArgs e) { textBox1.Clear(); } } }
2.工具
串口虛擬軟件
串口軟件,發(fā)送數(shù)據(jù)
3.效果
到此這篇關于C#串口接收程序的實現(xiàn)的文章就介紹到這了,更多相關C# 串口接收內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!