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

c# 上位机

作者:不必假装在乎   发布日期:2025-04-14   浏览:43

using System;
using System.IO.Ports;

namespace CSharp_UpperComputer
{
    class Program
    {
        static void Main(string[] args)
        {
            // 创建串口对象
            SerialPort serialPort = new SerialPort("COM1", 9600, Parity.None, 8, StopBits.One);

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

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

                // 发送数据到下位机
                string dataToSend = "Hello from Upper Computer";
                serialPort.WriteLine(dataToSend);
                Console.WriteLine("发送数据: " + dataToSend);

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

                // 关闭串口
                serialPort.Close();
                Console.WriteLine("串口已关闭");
            }
            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. 打开串口:

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

    • 使用 DataReceived 事件来监听来自下位机的数据。当有数据到达时,触发 DataReceivedHandler 方法处理接收到的数据。
  4. 发送数据到下位机:

    • 使用 serialPort.WriteLine() 方法将字符串数据发送到下位机。
  5. 等待用户输入:

    • 使用 Console.ReadKey() 方法等待用户按键,以保持程序运行状态。
  6. 关闭串口:

    • 在程序结束前,调用 serialPort.Close() 方法关闭串口,释放资源。
  7. 异常处理:

    • 使用 try-catch 块捕获并处理可能发生的异常,确保程序的健壮性。

上一篇:c# orderby

下一篇:c#枚举类型enum用法

大家都在看

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