串行端口开发的数据交互方式
2014-04-22 14:39
309 查看
引用程序集
using System.IO.Ports;
字段定义
//实例化串口类对象 private SerialPort comm = new SerialPort(); //实例化String类型的临时变量 private StringBuilder builder = new StringBuilder(); //接收数据 string strData = null;
定义串口对象并设置参数
private void CreateSerialPortService() { comm.NewLine = "\r\n"; comm.RtsEnable = true; comm.DtrEnable = true; comm.PortName = "PortName"; //端口名,例如COM3 comm.BaudRate = "BaudRate"; //波特率,例如9600 comm.DataBits = "DataBits"; //数据位,例如8 comm.StopBits = StopBits.One; //停止位,例如StopBits。One(1位停止位) comm.Parity = Parity.None; //奇偶校验,例如Parity。None(无奇偶校验) //添加事件注册 comm.DataReceived += comm_DataReceived; //接收串口数据触发事件 }
接收数据事件
void comm_DataReceived(object sender, SerialDataReceivedEventArgs e) { //先记录下来,避免某种原因,人为的原因,操作几次之间时间长,缓存不一致 int n = comm.BytesToRead; byte[] buf = new byte ; //声明一个临时数组存储当前来的串口数据 comm.Read(buf, 0, n); //读取缓冲数据 builder = new StringBuilder(); //清除字符串构造器的内容 //直接按ASCII规则转换成字符串 builder.Append(Encoding.ASCII.GetString(buf)); //追加的形式添加到文本框末端,并滚动到最后。 strData = builder.ToString(); }
启动与关闭
private void OpenOrCloseSerialPort() { //根据当前串口对象,来判断操作 if (comm.IsOpen) { //打开时点击,则关闭串口 comm.Close(); } else { //关闭时点击,则打开串口 comm.Open(); } }
串口发送数据
private void Send(string text) { comm.Write(text); }
相关文章推荐
- Linux c 信号捕获测试例
- 使用DotNetOpenAuth搭建OAuth2.0授权框架——Demo代码简单说明
- MySQL操作类(本人自己写的)
- Linq使用GroupBy筛选数据
- mybatis学习-入门(2)-整合spring
- sql删除重复值
- Android使用详解之onSaveInstanceState和onRestoreInstanceState触发的时机
- SQL SERVER 维护计划
- Number Sequence
- 手机网站自动兼容屏幕大小
- 第九周——<<>>的重载(正常了)
- 跨服务器导入数据SQL语句
- uibutton去掉点击后背景有阴影的方法
- .NET中获取IP地址
- 趣文:追MM的各种算法
- H5B之5服务器端Web Hello World教程
- JAVA设计模式---单例模式
- 第九周 项目1
- Eclipse 异常关闭后,无法启动解决
- 2014_04_22工作日志:memset(szMemSet,0,MAX_PATH+1);