- 通讯协议如下例:
- 添加串口控件并引用串口
using System.IO.Ports;
- 发送函数
byte[] SendBytes = new byte[10];
private void WriteintToSerialPort(int length)
{
if (serialPort1.IsOpen)
{
try
{
serialPort1.Write(SendBytes, 0, length);
}
catch
{
MessageBox.Show("串口数据发送出错,请检查.", "错误");
}
}
else
{
MessageBox.Show("串口没有打开,请检查.", "错误");
return;
}
}
- 通信函数
private void Power_Open()
{
SendBytes[0] = 0xCE;
SendBytes[1] = 0x01;
WriteintToSerialPort(2);
}
private void Power_Close()
{
SendBytes[0] = 0xDE;
SendBytes[1] = 0x01;
WriteintToSerialPort(2);
}
- 电源打开按键
private void button1_Click(object sender, EventArgs e)
{
serialPort1.Open();
if (serialPort1.IsOpen)
{
if (button1.BackColor == Color.Orange)
{
button1.Enabled = true;
Power_Open();
serialPort1.Close();
button1.BackColor = Color.Goldenrod;
button2.BackColor = Color.Orange;
button1.Enabled = false;
button2.Enabled = true;
}
}
else
{
MessageBox.Show("串口没有打开,请检查.", "错误");
return;
}
}
- 电源关闭按键
private void button2_Click(object sender, EventArgs e)
{
serialPort1.Open();
if (serialPort1.IsOpen)
{
if (button2.BackColor == Color.Orange)
{
button2.Enabled = true;
Power_Close();
serialPort1.Close();
button1.BackColor = Color.Orange;
button2.BackColor = Color.Goldenrod;
button2.Enabled = false;
button1.Enabled = true;
}
}
else
{
MessageBox.Show("串口没有打开,请检查.", "错误");
return;
}
}
- 源码
winform C# 串口通讯