我现在有一个项目,涉用到串口的控制方法。我本来是用Delphi,现在改用C#,不知该编码?请各位朋友,帮我一下忙,分数不够,我再给。最好能有一个简单的C#代码,让小弟参考一下。

解决方案 »

  1.   

    System.IO.Ports.SerialPort类using System;
    using System.Collections.Generic;
    using System.ComponentModel;
    using System.Data;
    using System.Drawing;
    using System.Text;
    using System.Windows.Forms;
    using System.Threading;namespace HelloPDACom
    {
    delegate void MessageReceived(char[] data, string title);
    public partial class Form1 : Form
    {
    MessageReceived mr;
    public Form1()
    {
    InitializeComponent();
    this.mr = new MessageReceived(this.ReadData);
    } private void button1_Click(object sender, EventArgs e)
    {
    if (this.serialPort1.IsOpen)
    {
    this.serialPort1.Close();
    }
    Application.Exit();
    } private void Open_Click(object sender, EventArgs e)
    {
    if (!this.serialPort1.IsOpen)
    {
    this.serialPort1.Open();
    this.Text = "SerialPort Opened";
    }
    } private void Close_Click(object sender, EventArgs e)
    {
    if (this.serialPort1.IsOpen)
    {
    this.serialPort1.Close();
    this.Text = "SerialPort Closed";
    }
    } private void Send_Click(object sender, EventArgs e)
    {
    if (this.serialPort1.IsOpen)
    {
    this.serialPort1.WriteLine(this.textBoxSend.Text);
    }
    } private void serialPort1_DataReceived(object sender, System.IO.Ports.SerialDataReceivedEventArgs e)
    {
    char[] data = new char[10];
    this.serialPort1.Read(data, 0, 10);
    this.textBoxGet.Invoke(this.mr, data, "Data Received");
    } private void Read_Click(object sender, EventArgs e)
    {
    if (this.serialPort1.BytesToRead > this.serialPort1.ReceivedBytesThreshold)
    {
    char[] data = new char[10];
    this.serialPort1.Read(data, 0, 10);
    StringBuilder sb = new StringBuilder();
    sb.Append(data);
    this.textBoxGet.Text += sb.ToString();
    }
    } private void ReadData(char[] data, string title)
    {
    StringBuilder sb = new StringBuilder();
    sb.Append(data);
    this.textBoxGet.Text += sb.ToString();
    this.Text = title;
    }
    }
    }