Laravel  
laravel
文档
数据库
架构
入门
php技术
    
Laravelphp
laravel / php / java / vue / mysql / linux / python / javascript / html / css / c++ / c#

c# 串口通讯

作者:风皇霸陵   发布日期:2026-07-02   浏览:70

using System;
using System.IO.Ports;
using System.Threading;

class Program
{
    static SerialPort serialPort;

    static void Main(string[] args)
    {
        // 初始化串口
        serialPort = new SerialPort("COM1", 9600, Parity.None, 8, StopBits.One);
        serialPort.DataReceived += new SerialDataReceivedEventHandler(DataReceivedHandler);

        try
        {
            serialPort.Open();
            Console.WriteLine("串口已打开");

            // 发送数据到串口
            string message = "Hello from C#";
            serialPort.WriteLine(message);
            Console.WriteLine("发送数据: " + message);

            // 等待用户输入以保持程序运行
            Console.WriteLine("按任意键退出...");
            Console.ReadKey();

            // 关闭串口
            serialPort.Close();
            Console.WriteLine("串口已关闭");
        }
        catch (UnauthorizedAccessException ex)
        {
            Console.WriteLine("无法访问串口: " + ex.Message);
        }
        catch (IOException ex)
        {
            Console.WriteLine("I/O 错误: " + ex.Message);
        }
        catch (Exception ex)
        {
            Console.WriteLine("其他错误: " + ex.Message);
        }
    }

    private static void DataReceivedHandler(object sender, SerialDataReceivedEventArgs e)
    {
        SerialPort sp = (SerialPort)sender;
        string indata = sp.ReadExisting();
        Console.WriteLine("接收到的数据: " + indata);
    }
}

解释说明:

  1. 初始化串口

    • 使用 SerialPort 类来配置和打开串口。
    • 参数包括端口号(如 "COM1")、波特率(如 9600)、校验位、数据位和停止位。
  2. 事件处理

    • DataReceived 事件用于处理从串口接收到的数据。当有数据到达时,触发 DataReceivedHandler 方法。
  3. 发送数据

    • 使用 WriteLine 方法通过串口发送字符串数据。
  4. 接收数据

    • DataReceivedHandler 方法中读取并显示接收到的数据。
  5. 异常处理

    • 捕获并处理可能的异常,如权限不足或 I/O 错误。
  6. 关闭串口

    • 使用 Close 方法关闭串口,确保资源释放。

这段代码展示了如何在 C# 中进行基本的串口通信,包括发送和接收数据。

上一篇:c# datagridview 列宽

下一篇:c# string 转int

大家都在看

c# 二进制

c# 创建目录

c# socket服务端连接多个客户端

c# datatable group by

c# tcp client

c# type.gettype

c# sqlconnection

c# string.format 小数位数

c# invoke方法

.net和c#

Laravel PHP 深圳智简公司。版权所有©2023-2043 LaravelPHP 粤ICP备2021048745号-3

Laravel 中文站