C#中的通信

serialPort.DataReceived

在 C# 的 Windows Forms 应用程序中,使用 serialPort.DataReceived 事件来处理串行端口接收到的数据是一种常见的做法。这段代码表示您正在订阅 SerialPort 类的 DataReceived 事件,并指定一个名为 SerialPort_DataReceived 的方法来处理该事件。

以下是如何实现这个过程的步骤:

  1. 创建 SerialPort 对象 :首先,需要有一个 SerialPort 对象,并配置它以连接到所需的串行设备。

  2. 配置 SerialPort :设置 SerialPort 对象的属性,如 PortName、BaudRate、Parity、DataBits 和 StopBits。

  3. 订阅 DataReceived 事件 :使用 += 运算符订阅 DataReceived 事件,并指定一个事件处理方法。

  4. 实现事件处理方法 :编写 SerialPort_DataReceived 方法,该方法将在数据到达时被调用。

  5. 打开 SerialPort :调用 SerialPort 对象的 Open 方法来开始监听数据。

  6. 读取数据 :在 SerialPort_DataReceived 方法中,使用 SerialPort 对象的 ReadExisting 或其他读取方法来获取数据。

cs 复制代码
using System;
using System.IO.Ports;
​
public class SerialCommunication
{
    private SerialPort _serialPort;
​
    public SerialCommunication()
    {
        // 初始化 SerialPort 对象
        _serialPort = new SerialPort("COM3") // 正确的端口名称
        {
            BaudRate = 9600,
            Parity = Parity.None,
            DataBits = 8,
            StopBits = StopBits.One,
            Handshake = Handshake.None
        };
​
        // 订阅 DataReceived 事件
        _serialPort.DataReceived += SerialPort_DataReceived;
​
        // 打开 SerialPort
        _serialPort.Open();
    }
​
    // 事件处理方法
    private void SerialPort_DataReceived(object sender, SerialDataReceivedEventArgs e)
    {
        // 读取数据
        string data = _serialPort.ReadExisting();
        Console.WriteLine("Received data: " + data);
    }
}
相关推荐
胖纸不争2 小时前
嫌桌面 Agent 太重,我“自己”写了一个
ai·c#·net core
当青春邂逅吉米多维奇6 小时前
C#图解教程(第5版) 同步方法
开发语言·c#
波力海苔夹心脆6757 小时前
C# 机器视觉实战:单相机引导机械手精准贴合,从拍照、偏差计算(平移+旋转)到坐标补偿全解
开发语言·经验分享·数码相机·c#·视觉检测·.net
Behavior9 小时前
国内下载使用 Unity 6000 踩坑点总结
c#·unity3d·游戏开发
czhc114007566310 小时前
一张图从哪来,一个判断往哪走
c#
曹牧20 小时前
C#:未被引用的函数
c#
上位机妹子1 天前
EF Core 两种继承映射:每层次一张表(TPH)与每类型一张表(TPT)
数据库·c#·.netcore·ef core
小羊没烦恼!1 天前
jQuery1.5的改进细节
java·服务器·开发语言·前端·c#
下页、再停留1 天前
【C#桌面客户端系列学习-8】批量导出数据为csv格式
开发语言·c#·visual studio
波力海苔夹心脆6751 天前
C# 视觉检测实战:PLC 按钮触发 VisionPro 检测,OK 亮灯 / NG 灭灯(西门子 PLC,含界面显示与图片存档)
开发语言·经验分享·c#·自动化·视觉检测·.net