110,534
社区成员
发帖
与我相关
我的任务
分享
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;
namespace WindowsFormsApplication1
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
System.Windows.Forms.Control.CheckForIllegalCrossThreadCalls = false;
}
SerialPort sp = new SerialPort();
delegate void UpdateTextEventHandler(byte[] text);
private void Form1_Load(object sender, EventArgs e)
{
sp.PortName = "COM9";
sp.BaudRate = 9600;
sp.Parity = Parity.Even;
sp.DataBits = 8;
sp.StopBits = StopBits.One;
sp.ReadTimeout = 200;
sp.WriteTimeout = 200;
sp.ReceivedBytesThreshold = 1;
sp.DataReceived += new SerialDataReceivedEventHandler(SPort_DataReceived);
sp.Open();
}
void SPort_DataReceived(object sender, SerialDataReceivedEventArgs e)
{
byte[] ReDatas = new byte[sp.BytesToRead];
sp.Read(ReDatas, 0, ReDatas.Length);
UpdateTextEventHandler Text = new UpdateTextEventHandler(UpdateTextBox);
Text(ReDatas);
}
private void UpdateTextBox(byte[] text) //显示接收数据
{
for (int i = 0; i < text.Length; i++)
{
textBox1.Text += text[i];
textBox1.Text += ',';
if (i == text.Length - 1)
{
textBox1.Text += System.Environment.NewLine; //换行
}
}
}
private void button1_Click(object sender, EventArgs e)
{
byte[] message = new byte[8];
message[0] = (byte)0x01;
message[1] = (byte)0x03;
message[2] = (byte)0x00;
message[3] = (byte)0x00;
message[4] = (byte)0x00;
message[5] = (byte)0x01;
message[6] = (byte)0x84;
message[7] = (byte)0x0A;
sp.Write(message, 0, message.Length);
}
}
}