file—>new—>project,在如下界面中选择Windows Forms Application,在location处更改项目所在目录,点击ok 后确定。
往主窗口上添加一个button控件button_send,在属性处改名为发送,
添加两个richtextbox控件richTextBox_senddata和richTextBox_receivedata。
往主窗口上添加一个button控件button_send,在属性处改名为发送,
添加两个richtextbox控件richTextBox_senddata和richTextBox_receivedata。
完整代码:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.IO.Ports; //添加串口通信的命名空间
namespace WindowsFormsApplication3
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
MyCom.Open(); //打开串口
MyCom.DataReceived += new SerialDataReceivedEventHandler(MyCom_DataReceived); //注册接收监听事件
}
//定义串口并初始化。串口选择com3,波特率9600,校验位无,数据位8位,停止位1位
private SerialPort MyCom = new SerialPort("COM3", 9600, Parity.None, 8, StopBits.One);
delegate void MyInvoke(string str); //需要委托委托
string sdata = "" ;
public void showdata(string sdata) //显示接收到的数据
{
if (richTextBox_receivedata.InvokeRequired)
{
MyInvoke _myInvoke = new MyInvoke(showdata);
this.Invoke(_myInvoke, new object[] { sdata });
}
else
{
this.richTextBox_receivedata.Text = sdata;
}
}
public void MyCom_DataReceived(object sender, SerialDataReceivedEventArgs e) //串口接收事件
{
sdata = sdata+MyCom.ReadExisting().ToString();
showdata(sdata);
}
//添加一个发送按钮button_send,双击添加相应事件。
private void button_send_Click(object sender, EventArgs e) //发送数据按钮
{
string ssendstr = "";
ssendstr = richTextBox_senddata.Text;
MyCom.Write(ssendstr);
}
//添加一个清空接收按钮button_clean,双击添加相应事件。
private void button_clean_Click(object sender, EventArgs e) //清数据按钮
{
sdata = "";
showdata(sdata);
}
}
}