请问各位朋友,在VS2005中用C#如何控制串口? 我现在有一个项目,涉用到串口的控制方法。我本来是用Delphi,现在改用C#,不知该编码?请各位朋友,帮我一下忙,分数不够,我再给。最好能有一个简单的C#代码,让小弟参考一下。 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 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; } }} 请教一下,在VS2010中使用System.Data.SQLite提示所依赖的System.Drawing.Design未引用 一个关于Repeater的应用 C#判断null值问题 线程中如何隐藏form windows服务创建Socket服务的防火墙问题 在父类中如何约定子类必须实现某个接口 socket异步发送信息报错,什么原因? 请教关于UPN用户(用户@域.com)的问题? (在线等)怎样把DataGrid中的一列取出来?并赋值给一个数组? 着急等待中,添加了一个COM控件之后,程序出现了一个奇怪的错误,请大侠进来看看。 XML 问题,请高手帮忙? 嵌套的循环体内如何处理异常错误?
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;
}
}
}