C#用串口实时获取数据

在C#中,你可以使用System.IO.Ports.SerialPort类来通过串口实时获取数据。以下是一个基本的示例:

csharp 复制代码
using System;  
using System.IO.Ports;  
  
public class SerialPortProgram  
{  
    private SerialPort mySerialPort;  
  
    public SerialPortProgram()  
    {  
        mySerialPort = new SerialPort("COM1"); //这里的"COM1"应该是你想连接的串口  
  
        mySerialPort.BaudRate = 9600; //波特率  
        mySerialPort.Parity = Parity.None; //奇偶校验  
        mySerialPort.StopBits = StopBits.One; //停止位  
        mySerialPort.DataBits = 8; //数据位  
        mySerialPort.Handshake = Handshake.None; //控制协议  
  
        mySerialPort.DataReceived += new SerialDataReceivedEventHandler(DataReceivedHandler);  
  
        mySerialPort.Open();  
  
        Console.WriteLine("Press any key to continue...");  
        Console.WriteLine();  
        Console.ReadKey();  
        mySerialPort.Close();  
    }  
  
    private void DataReceivedHandler(object sender, SerialDataReceivedEventArgs e)  
    {  
        SerialPort sp = (SerialPort)sender;  
        string indata = sp.ReadExisting();  
        Console.WriteLine("Data Received:");  
        Console.Write(indata);  
    }  
}

这个程序会实时从串口读取数据并在控制台输出。当接收到新数据时,DataReceivedHandler方法会被调用。在这个方法中,我们读取所有现有的数据(sp.ReadExisting())并输出。

注意,你需要根据你的设备和需求来设置串口的参数,例如波特率、校验位、停止位、数据位等。这些参数的设置应参照你的设备的文档。

最后,记得在完成串口通信后关闭串口,以释放资源。

相关推荐
Nita.8 小时前
设计模式| 观察者模式 Observer Pattern详解
观察者模式·设计模式·c#
C#Thread11 小时前
C#上位机--循环语句
开发语言·c#
软件黑马王子12 小时前
Unity游戏制作中的C#基础(3)加减乘除算术操作符,比较运算符,逻辑与,或运算符
开发语言·unity·c#
blog_wanghao14 小时前
C#: 日志函数
开发语言·c#·日志
pchmi14 小时前
C#贪心算法
贪心算法·c#
且听风吟ayan18 小时前
leetcode day20 滑动窗口209+904
算法·leetcode·c#
GISer_Qing21 小时前
ASP.NET Core 8.0学习笔记(二十七)——数据迁移:Migrations深入与其他迁移命令
数据库·c#·.netcore·entityframework
追烽少年x1 天前
C# WinForm 中的事件驱动模型
c#
CE贝多芬1 天前
WPF的页面设计和实用功能实现
c#·wpf
code_shenbing1 天前
WPF 实现虚拟键盘
c#·wpf