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

c#串口

作者:醉眼看苍生   发布日期:2025-05-26   浏览:53

using System;
using System.IO.Ports;

class Program
{
    static void Main()
    {
        // 创建一个串口对象,指定端口号和波特率
        using (SerialPort serialPort = new SerialPort("COM1", 9600))
        {
            try
            {
                // 打开串口
                serialPort.Open();

                // 设置串口的其他参数(可选)
                serialPort.Parity = Parity.None;
                serialPort.StopBits = StopBits.One;
                serialPort.DataBits = 8;
                serialPort.Handshake = Handshake.None;

                // 注册数据接收事件
                serialPort.DataReceived += new SerialDataReceivedEventHandler(DataReceivedHandler);

                // 发送数据到串口
                serialPort.WriteLine("Hello, Serial Port!");

                // 等待用户输入以保持程序运行
                Console.WriteLine("Press any key to exit.");
                Console.ReadKey();
            }
            catch (UnauthorizedAccessException)
            {
                Console.WriteLine("Access to the port is denied.");
            }
            catch (IOException)
            {
                Console.WriteLine("The port does not exist or could not be opened.");
            }
            finally
            {
                // 确保串口关闭
                if (serialPort.IsOpen)
                {
                    serialPort.Close();
                }
            }
        }
    }

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

        // 读取接收到的数据并输出到控制台
        string indata = sp.ReadExisting();
        Console.WriteLine("Data Received: " + indata);
    }
}

解释说明

  1. 创建串口对象:

    • SerialPort serialPort = new SerialPort("COM1", 9600):创建一个串口对象,指定端口号为 COM1 和波特率为 9600
  2. 打开串口:

    • serialPort.Open():打开指定的串口。
  3. 设置串口参数:

    • serialPort.Parity = Parity.None:设置校验位为无。
    • serialPort.StopBits = StopBits.One:设置停止位为 1。
    • serialPort.DataBits = 8:设置数据位为 8。
    • serialPort.Handshake = Handshake.None:设置握手协议为无。
  4. 注册数据接收事件:

    • serialPort.DataReceived += new SerialDataReceivedEventHandler(DataReceivedHandler):当有数据通过串口接收时,触发 DataReceivedHandler 方法处理数据。
  5. 发送数据:

    • serialPort.WriteLine("Hello, Serial Port!"):向串口发送字符串 "Hello, Serial Port!"
  6. 等待用户输入:

    • Console.ReadKey():等待用户按键以保持程序运行。
  7. 异常处理:

    • 捕获 UnauthorizedAccessExceptionIOException 异常,分别处理权限不足和端口不存在或无法打开的情况。
  8. 关闭串口:

    • finally 块中确保串口关闭。
  9. 数据接收处理方法:

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

上一篇:c# sha256withrsa

下一篇:c# 读取ini配置文件

大家都在看

c# 二进制

c# tcp client

c# type.gettype

c# sqlconnection

.net和c#

c#游戏开发

c#网络编程

c# rectangle

c# if else

c# rtsp

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

Laravel 中文站