您的位置:首页 > 编程语言 > C#

C# 串口通信代码

2013-12-16 14:28 288 查看
//引用命名空间
using System.IO.Ports;

private SerialPort comm = new SerialPort();
private void initComm()
{
try
{
//初始化SerialPort对象
comm.NewLine = "/r/n";
comm.RtsEnable = true;//根据实际情况吧。
//添加事件注册
comm.DataReceived += comm_DataReceived;

if (comm.IsOpen)
{
comm.Close();
}
else
{
//关闭时点击,则设置好端口,波特率后打开
comm.PortName = SysCommmon.COM;
comm.BaudRate = SysCommmon.Baudrate;
try
{
comm.Open();
}
catch (Exception ex)
{
comm = new SerialPort();
setMsg("打开COM口[" + SysCommmon.COM + "]异常:" + ex.Message);
}
}
}
catch (Exception err)
{
setMsg("初始化COM口过程异常:" + err.Message);
}
}

void comm_DataReceived(object sender, SerialDataReceivedEventArgs e)
{
int n = comm.BytesToRead;//先记录下来,避免某种原因,人为的原因,操作几次之间时间长,缓存不一致
byte[] buf = new byte
;//声明一个临时数组存储当前来的串口数据
//received_count += n;//增加接收计数
comm.Read(buf, 0, n);//读取缓冲数据
//builder.Clear();//清除字符串构造器的内容
//builder.Length = 0;
//因为要访问ui资源,所以需要使用invoke方式同步ui。
this.Invoke((EventHandler)(delegate
{
//直接按ASCII规则转换成字符串
enter_TaiPei(Encoding.ASCII.GetString(buf));
//this.WindowState = FormWindowState.Normal;
//this.Show();
}));
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: