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

c# 串口通信编程

作者:ˉ吻干迩的'泪   发布日期:2026-07-01   浏览:91

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

class SerialPortExample
{
    static void Main()
    {
        // 创建串口对象
        using (SerialPort port = new SerialPort("COM1", 9600, Parity.None, 8, StopBits.One))
        {
            try
            {
                // 打开串口
                port.Open();

                // 设置数据接收事件处理程序
                port.DataReceived += new SerialDataReceivedEventHandler(DataReceivedHandler);

                // 发送数据到串口
                port.WriteLine("Hello, World!");

                // 等待一段时间以确保数据被发送和接收
                Thread.Sleep(2000);
            }
            catch (UnauthorizedAccessException ex)
            {
                Console.WriteLine("无法访问串口: " + ex.Message);
            }
            catch (IOException ex)
            {
                Console.WriteLine("I/O 错误: " + ex.Message);
            }
            finally
            {
                // 关闭串口
                if (port.IsOpen)
                {
                    port.Close();
                }
            }
        }
    }

    private static void DataReceivedHandler(object sender, SerialDataReceivedEventArgs e)
    {
        // 获取串口对象
        SerialPort sp = (SerialPort)sender;

        // 读取接收到的数据
        string indata = sp.ReadExisting();
        Console.WriteLine("接收到的数据: " + indata);
    }
}

解释说明

  1. 创建串口对象:

    • 使用 SerialPort 类来创建一个串口对象。构造函数中指定了串口号(如 "COM1")、波特率(如 9600)、校验位、数据位和停止位。
  2. 打开串口:

    • 使用 port.Open() 方法打开串口,以便进行通信。
  3. 设置数据接收事件处理程序:

    • 使用 DataReceived 事件来监听串口数据的接收,并在事件触发时调用 DataReceivedHandler 方法。
  4. 发送数据:

    • 使用 port.WriteLine() 方法向串口发送字符串数据。
  5. 等待数据传输完成:

    • 使用 Thread.Sleep() 方法暂停主线程一段时间,以确保数据有足够的时间被发送和接收。
  6. 处理异常:

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

    • finally 块中确保串口在使用完毕后被正确关闭。
  8. 数据接收处理:

    • DataReceivedHandler 方法会在接收到数据时被调用,读取并打印接收到的数据。

这个示例展示了如何使用 C# 进行基本的串口通信编程,包括打开和关闭串口、发送和接收数据以及处理异常。

上一篇:c#字符串转16进制

下一篇:c# post 请求

大家都在看

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 中文站