serialport测试实现串口打开关闭及设置所有常用属性
串口链接,通过VS测试
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
SerialNameSelect();
SelectPortStopBits();
SelectHandShake();
SelectParity();
SerialNumber.SelectedIndex = 0;
serialBit.SelectedIndex = 2;
SerialDataBits.SelectedIndex = 3;
SerialStopBits.SelectedIndex = 1;
SerialHandShoke.SelectedIndex = 1;
SerialParity.SelectedIndex = 0;
}
private void SerialNameSelect()
{
string[] ports = SerialPort.GetPortNames();
foreach (string port in ports)
{
SerialNumber.Items.Add(port);
}
}
private void SelectPortStopBits()
{
foreach (string s in Enum.GetNames(typeof(StopBits)))
{
SerialStopBits.Items.Add(s);
}
}
private void SelectHandShake()
{
foreach (string s in Enum.GetNames(typeof(Handshake)))
{
SerialHandShoke.Items.Add(s);
}
}
private void SelectParity()
{
foreach (string s in Enum.GetNames(typeof(Parity)))
{
SerialParity.Items.Add(s);
}
}。。。。。。。。。。
通讯协议CRC16CCITT
通讯协议CRC16CCITT,通讯协议,CCITT,CRC16,CRC16CCITT
C#串口通信,包括打开串口,接收发送数据
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
SerialPort port1 = new SerialPort();
string InputData = String.Empty;
delegate void SetTextCallback(string text);
private void Port_Select()
{//获取机器中的串口地址
string[] ports = SerialPort.GetPortNames();
foreach (string port in ports)
{
comboBox1.Items.Add(port);
}
}
private void Form1_Load_1(object sender, EventArgs e)
{
Port_Select();
this.comboBox1.SelectedIndex = 0;
this.comboBox2.SelectedIndex = 0;
}
private void button1_Click(object sender, EventArgs e)
{
if (button1.Text == "关闭串口") //当要关闭串口的时候
{
port1.DiscardOutBuffer();
port1.DiscardInBuffer();
port1.Close();
button1.Text = "打开串口";
label3.Text = "串口当前状况:未打开";
comboBox1.Enabled = true;
comboBox2.Enabled = true;
}
else if (button1.Text == "打开串口") //当要打开串口的时候
{
try
{
port1.PortName = comboBox1.SelectedItem.ToString();
port1.BaudRate = Convert.ToInt32(comboBox2.SelectedItem);
port1.DataBits = 8;
port1.RtsEnable = true;
port1.Open();
port1.DiscardOutBuffer();
port1.DiscardInBuffer();
button1.Text = "关闭串口";
comboBox1.Enabled = false;
comboBox2.Enabled = false;
label3.Text = "串口:" + comboBox1.SelectedItem.ToString() + " 波特率:" + comboBox2.SelectedItem.ToString() + " 数据位:8 ";
}
catch
{
button1.Text = "打开串口";
label3.Text = "串口:" + comboBox1.SelectedItem.ToString() + "打开失败";
MessageBox.Show("该串口无法打开");
}
}
}
资源中部分代码