博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
C#中COM串口连接、发送、接收数据
阅读量:2051 次
发布时间:2019-04-28

本文共 1540 字,大约阅读时间需要 5 分钟。

该文中使用的串口接收数据方法不会造成cpu占用过高等问题

源码地址:

demo效果图:

1.首先声明一个Serial变量

SerialPort serialPort1 = new SerialPort();

2.进行串口连接

public void opencom(){    try    {        //波特率        serialPort1.BaudRate = 9600;        //数据位        serialPort1.DataBits = 8;        serialPort1.PortName = comboBox1.Text;        //两个停止位        serialPort1.StopBits = System.IO.Ports.StopBits.One;        //无奇偶校验位        serialPort1.Parity = System.IO.Ports.Parity.None;        serialPort1.ReadTimeout = 100;        serialPort1.Open();        if (!serialPort1.IsOpen)        {            MessageBox.Show("端口打开失败");            return;        }        else        {            richTextBox1.AppendText("端口" + comboBox1.Text + "打开成功\r\n");        }        serialPort1.DataReceived += serialPort1_DataReceived;    }    catch (Exception ex)    {        serialPort1.Dispose();        richTextBox1.AppendText(ex.Message);    }}

3.串口接收数据事件

private void serialPort1_DataReceived(object sender, SerialDataReceivedEventArgs e){    Thread.Sleep(50);  //(毫秒)等待一定时间,确保数据的完整性 int len            int len = serialPort1.BytesToRead;    string receivedata = string.Empty;    if (len != 0)    {        byte[] buff = new byte[len];        serialPort1.Read(buff, 0, len);        receivedata = Encoding.Default.GetString(buff);                    }    richTextBox1.AppendText(receivedata + "\r\n");}

4.串口发送数据

serialPort1.Write(textBox1.Text);

5.断开串口

serialPort1.Dispose();

6.附赠方法,得到可用串口号

String[] portnames = SerialPort.GetPortNames();foreach (var item in portnames){    comboBox1.Items.Add(item);}

 

转载地址:http://xuulf.baihongyu.com/

你可能感兴趣的文章
google app api相关(商用)
查看>>
linux放音乐cd
查看>>
GridView+存储过程实现'真分页'
查看>>
flask_migrate
查看>>
解决activemq多消费者并发处理
查看>>
UDP连接和TCP连接的异同
查看>>
hibernate 时间段查询
查看>>
java操作cookie 实现两周内自动登录
查看>>
Tomcat 7优化前及优化后的性能对比
查看>>
VisualVM 提示 tomcat 不受此jvm支持解决办法
查看>>
Java Guava中的函数式编程讲解
查看>>
Eclipse Memory Analyzer 使用技巧
查看>>
tomcat连接超时
查看>>
谈谈编程思想
查看>>
iOS MapKit导航及地理转码辅助类
查看>>
检测iOS的网络可用性并打开网络设置
查看>>
简单封装FMDB操作sqlite的模板
查看>>
iOS开发中Instruments的用法
查看>>
iOS常用宏定义
查看>>
被废弃的dispatch_get_current_queue
查看>>