翼度科技»论坛 编程开发 .net 查看内容

学习如何在C#中轻松实现串口数据接收:清晰步骤与实例代码

5

主题

5

帖子

15

积分

新手上路

Rank: 1

积分
15
 
概述:以上C#示例演示了如何使用SerialPort类实现串口数据接收。通过设置串口属性、定义数据接收事件处理程序,你可以轻松地打开串口、监听数据,并在事件处理程序中对接收到的数据进行处理。这提供了一个基本框架,可根据实际需求进行定制。
在C#中实现串口数据接收通常需要使用System.IO.Ports命名空间提供的SerialPort类。以下是一个简单的例子,演示了如何在C#中接收串口数据。
首先,确保你的项目引用了System.IO.Ports命名空间。你可以在代码中添加如下的using语句:
  1. using System;
  2. using System.IO.Ports;
复制代码
然后,创建一个SerialPort对象,并设置必要的属性,如端口号、波特率等。在这个例子中,我们使用COM1端口和波特率为9600。你需要根据实际情况修改这些参数。
  1. SerialPort serialPort = new SerialPort();
  2. serialPort.PortName = "COM1"; // 设置串口号
  3. serialPort.BaudRate = 9600;   // 设置波特率
复制代码
接下来,设置数据接收的事件处理程序。你可以使用DataReceived事件来处理接收到的数据。在事件处理程序中,你可以读取接收到的数据并进行处理。
  1. serialPort.DataReceived += new SerialDataReceivedEventHandler(DataReceivedHandler);
  2. // 数据接收事件处理程序
  3. private static void DataReceivedHandler(object sender, SerialDataReceivedEventArgs e)
  4. {
  5.     SerialPort sp = (SerialPort)sender;
  6.     string data = sp.ReadExisting(); // 读取接收到的数据
  7.     Console.WriteLine("Received data: " + data);
  8.     // 在这里进行对接收到的数据的处理
  9. }
复制代码
最后,打开串口并开始接收数据。
  1. serialPort.Open(); // 打开串口
  2. // 接收数据
  3. Console.WriteLine("Press any key to stop receiving data...");
  4. Console.ReadKey();
  5. serialPort.Close(); // 关闭串口
复制代码
以下是完整的例子:
  1. using System;
  2. using System.IO.Ports;class Program{    static void Main()    {        SerialPort serialPort = new SerialPort();        serialPort.PortName = "COM1"; // 设置串口号        serialPort.BaudRate = 9600;   // 设置波特率        serialPort.DataReceived += new SerialDataReceivedEventHandler(DataReceivedHandler);        try        {            serialPort.Open(); // 打开串口            Console.WriteLine("Press any key to stop receiving data...");            Console.ReadKey();        }        catch (Exception ex)        {            Console.WriteLine("Error: " + ex.Message);        }        finally        {            serialPort.Close(); // 关闭串口        }    }    // 数据接收事件处理程序    private static void DataReceivedHandler(object sender, SerialDataReceivedEventArgs e)    {        SerialPort sp = (SerialPort)sender;        string data = sp.ReadExisting(); // 读取接收到的数据        Console.WriteLine("Received data: " + data);        // 在这里进行对接收到的数据的处理    }}
复制代码
请根据实际需求修改端口号、波特率以及数据处理部分的代码。这个例子只是一个基本的框架,具体的实现可能需要根据你的应用场景进行调整。
 


来源:https://www.cnblogs.com/hanbing81868164/p/18027958
免责声明:由于采集信息均来自互联网,如果侵犯了您的权益,请联系我们【E-Mail:cb@itdo.tech】 我们会及时删除侵权内容,谢谢合作!

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x

举报 回复 使用道具