📄 form1.cs
字号:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using System.IO.Ports;
namespace CsSerialport
{
public partial class Form1 : Form
{
////// private System.IO.Ports.SerialPort serialPort2;
public delegate void delegDataRx(string strPar);
public delegDataRx objdelegDataRx;
public Form1()
{
InitializeComponent();
}
////////////////////////////////////////////////////
private void callbkDataRx(string strIn)
{
txtOut.Text += strIn + "\r\n";
}
private void Form1_Load(object sender, EventArgs e)
{
objdelegDataRx = new delegDataRx(callbkDataRx);
txtBaud.Text = "115200";
}
private void serialPort2_DataReceived(object sender, System.IO.Ports.SerialDataReceivedEventArgs e)
{
//Event Listener Thread
string str = "";
int iBuf = serialPort2.BytesToRead;
//int ReadBufferSize default buffer size is 4096.
string strErg = serialPort2.ReadExisting();
//serialPort2.DiscardOutBuffer();
str = "DRx:";
str += strErg; //" + e.ToString() + " ;
//MessageBox.Show( str.ToString() );
this.Invoke(this.objdelegDataRx, new object[] { strErg });
}
private void serialPort2_ErrorReceived(object sender, System.IO.Ports.SerialErrorReceivedEventArgs e)
{
//string str = "";
this.Invoke(this.objdelegDataRx, new object[] { "ErrRx" });
//lblOut.Text = "ErrRx:" + e.ToString();
MessageBox.Show("ErrRx"+e.ToString() );
}
private void serialPort2_PinChanged(object sender, System.IO.Ports.SerialPinChangedEventArgs e)
{
//string str = "";
this.Invoke(this.objdelegDataRx, new object[] { "PinChg" });
// lblOut.Text = "PinChg:" + e.ToString();
MessageBox.Show("ErrRx" + e.ToString());
}
private void Form1_FormClosing(object sender, FormClosingEventArgs e)
{
}
private void Form1_FormClosed(object sender, FormClosedEventArgs e)
{
}
private void btnList_Click(object sender, EventArgs e)
{
string str = "";
/// Get a list of serial port names.
string[] strports = System.IO.Ports.SerialPort.GetPortNames();
foreach (string strport in strports)
{
str += strport.ToString() + " ";
}
lblOut.Text = "Ports ava:" + str.ToString();
}
private void btnOpen_Click(object sender, EventArgs e)
{
string str = "";
/// serialPort2.Encoding ASCIIEncoding (default), UTF8Encoding, UTF32Encoding, UnicodeEncoding. ArgumentNullException ArgumentException
try
{ //// Catch Commport Exception with this
if (serialPort2.IsOpen)
{
str = "already opened";
}
else
{
int iPort = Convert.ToInt32(txtboxPort.Text);
switch (iPort)
{
case 1:
serialPort2.PortName = "COM1";
break;
case 2:
serialPort2.PortName = "COM2";
break;
case 3:
serialPort2.PortName = "COM3";
break;
case 4:
serialPort2.PortName = "COM4";
break;
case 5:
serialPort2.PortName = "COM5";
break;
case 6:
serialPort2.PortName = "COM6";
break;
case 7:
serialPort2.PortName = "COM7";
break;
case 8:
serialPort2.PortName = "COM8";
break;
case 9:
serialPort2.PortName = "COM9";
break;
case 10:
serialPort2.PortName = "COM10";
break;
case 11:
serialPort2.PortName = "COM11";
break;
case 12:
serialPort2.PortName = "COM12";
break;
case 13:
serialPort2.PortName = "COM13";
break;
case 14:
serialPort2.PortName = "COM14";
break;
case 15:
serialPort2.PortName = "COM15";
break;
case 16:
serialPort2.PortName = "COM16";
break;
case 17:
serialPort2.PortName = "COM17";
break;
case 18:
serialPort2.PortName = "COM18";
break;
case 19:
serialPort2.PortName = "COM19";
break;
case 20:
serialPort2.PortName = "COM20";
break;
default:
break;
};
//serialPort2.ReadBufferSize =4096; //default
serialPort2.BaudRate = Convert.ToInt32( txtBaud.Text); /// 9600; //115200;
serialPort2.DataBits = 8;
serialPort2.Parity = System.IO.Ports.Parity.None;
serialPort2.StopBits = System.IO.Ports.StopBits.One;
serialPort2.ReadTimeout = 500;
serialPort2.WriteTimeout= 500;
serialPort2.Handshake = System.IO.Ports.Handshake.None;
serialPort2.Open();
str = "OK";
}
}
catch (InvalidOperationException iopex)
{
str = "Failed iopex" + iopex.ToString();
}
catch (ArgumentOutOfRangeException aorex)
{
str = "Failed aorex" + aorex.ToString();
}
catch (ArgumentException aex)
{
str = "Failed aex" + aex.ToString();
}
//catch (IOException ioex) { str = "Failed ioex" + ioex.ToString(); }
catch (UnauthorizedAccessException uaex)
{
str = "Failed uaex" + uaex.ToString();
}
catch (Exception ex)
{
str = "Failed " + ex.ToString();
}
finally
{
}
lblOut.Text = "Open:" + str.ToString();
}
private void btnClose_Click(object sender, EventArgs e)
{
string str = "";
try
{
if (serialPort2.IsOpen)
{
serialPort2.Close();
str = "OK";
}
}
catch (Exception ex)
{
str = "Failed"+ex.ToString();
}
lblOut.Text = "Close: " + str.ToString();
}
private void btnSend_Click(object sender, EventArgs e)
{
//string str = "";
if (serialPort2.IsOpen)
{
//int WriteTimeout
//serialPort2.WriteBufferSize property ignores any value smaller than 2048 // serialPort2.Write("Hello");
if (txtboxSend.Text.Length > 0)
{
serialPort2.Write(txtboxSend.Text.ToString());
}
lblOut.Text = "Send: " + txtboxSend.Text.ToString();
}
else
{
lblOut.Text = "No port!";
};
}
private void btnSendB_Click(object sender, EventArgs e)
{
//string str = "";
//lblOut.Text = "Send:";
//bool bCarrierDetect = serialPort2.CDHolding;
//int iBuf = serialPort2.BytesToWrite;
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -