C# RS232串口使用

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.IO.Ports;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using My_ClassLibrary;

namespace 串口调试助手
{
public partial class Form1 : Form
{
bool m_mac = false;
Class1 mac = new Class1();
public Form1()
{
InitializeComponent();
if (mac.ProductVersion_MacGet(m_mac))
{ }
else
{
MessageBox.Show("No permission to open!", "Hint!", MessageBoxButtons.OK);
this.Close();
}
}

string hms;
SerialPort m_Light_;
Boolean SerialPort_status = false;

public Color AppWorkspace { get; private set; }

private void button2_Click(object sender, EventArgs e)
{
try
{
if (m_Light_ != null && m_Light_.IsOpen == false)
{
m_Light_ = new SerialPort(comboBox1.Text, 19200, Parity.None, 8, StopBits.One);
m_Light_.Open();
button2.Text = "Stop";
button2.BackColor = Color.Red;
SerialPort_status = true;
Send_button.Enabled = true;
Send_Data.Enabled = true;
trackBar1.Enabled = true;
trackBar2.Enabled = true;
trackBar3.Enabled = true;
trackBar4.Enabled = true;
timer1.Enabled = true;

listBox1.Items.Add(hms + "Serial Port Opened!");
}
else
{
m_Light_.Close();
button2.Text = "Open";
button2.BackColor = AppWorkspace;
SerialPort_status = false;
Send_button.Enabled = false;
Send_Data.Enabled = false;
trackBar1.Enabled = false;
trackBar2.Enabled = false;
trackBar3.Enabled = false;
trackBar4.Enabled = false;
timer1.Enabled = false;

listBox1.Items.Add(hms + "Serial Port Closed!");

}
}
catch (Exception a)
{
listBox1.Items.Add(hms + " [" + a + "]");
MessageBox.Show(a.Message,"Hint!",MessageBoxButtons.OK);
}
}

private void timer1_Tick(object sender, EventArgs e)
{
hms = DateTime.Now.ToString("yyyy:MM:dd hh:mm:ss");
}

string Value1;
private void trackBar1_Scroll(object sender, EventArgs e)
{
if (SerialPort_status)
{
try
{
int trackBar = Convert.ToInt16((sender as TrackBar).Tag);
switch (trackBar)
{
case 1:
Value1 = "SA0" + trackBar1.Value.ToString("000") + "#";
CH1_label.Text = trackBar1.Value.ToString("000");
break;
case 2:
Value1 = "SB0" + trackBar2.Value.ToString("000") + "#";
CH2_label.Text = trackBar2.Value.ToString("000");
break;
case 3:
Value1 = "SC0" + trackBar3.Value.ToString("000") + "#";
CH3_label.Text = trackBar3.Value.ToString("000");
break;
case 4:
Value1 = "SD0" + trackBar4.Value.ToString("000") + "#";
CH4_label.Text = trackBar4.Value.ToString("000");
break;
}
m_Light_.Write(Value1);
listBox1.Items.Add(hms + Value1);
}
catch (Exception a)
{
MessageBox.Show(a.Message, "Hint!", MessageBoxButtons.OK);
}
}
else
{
MessageBox.Show("Serial Port Not Open!","Hint!",MessageBoxButtons.OK);
}
}

private void Send_button_Click(object sender, EventArgs e)
{
if (SerialPort_status && Send_Data.Text != string.Empty)
{
string m_Send_Data = Send_Data.Text;
m_Light_.Write(m_Send_Data);
listBox1.Items.Add(hms + m_Send_Data);
}
else
{
MessageBox.Show("Not Data!!!","Hint!",MessageBoxButtons.OK);
}
}

private void Form1_Load(object sender, EventArgs e)
{
Send_button.Enabled = false;
Send_Data.Enabled = false;
trackBar1.Enabled = false;
trackBar2.Enabled = false;
trackBar3.Enabled = false;
trackBar4.Enabled = false;
timer1.Enabled = false;

}

private void serialPort_DataReceived()
{
string str = "";
do
{
int count = m_Light_.BytesToRead;
if (count <= 0)
{
break;
}
byte[] readBuffer = new byte[count];
Application.DoEvents();
m_Light_.Read(readBuffer, 0, count);
str += System.Text.Encoding.Default.GetString(readBuffer);

}
while (m_Light_.BytesToRead > 0);
{
listBox1.Items.Add(str);
}
}

}
}

转载于:https://www.cnblogs.com/MrMo/p/8203243.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值