|
namespace jieshouceshi_windows
{
public partial class Form1 : Form
{
private SerialPort comm = new SerialPort(); //comm代表Ports.
private StringBuilder builder = new StringBuilder();//避免在事件处理方法中反复的创建,定义到外面。
public Form1()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
textBox2.Text = "";
comm.PortName = "COM1";
comm.BaudRate = 9600;
if (!comm.IsOpen)
comm.Open();
comm.Write(textBox1.Text + "\r");
int n = comm.BytesToRead;//先记录下来,避免某种原因,人为的原因,操作几次之间时间长,缓存不一致
byte[] buf = new byte[n];//声明一个临时数组存储当前来的串口数据,声明数组长度为N
comm.Read(buf, 0, n);//读取缓冲数据,从0到N。
builder.Length = 0;//清除字符串构造器的内容
//直接按ASCII规则转换成字符串
builder.Append(Encoding.ASCII.GetString(buf));
//追加的形式添加到文本框末端,并滚动到最后。
textBox2.Text = builder.ToString();
comm.Close();
}
}
}
这个串口程序为什么不能实现接收呢?接收一定要有接收事件和invoke之类的委托吗?
|
|