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

c#上位机

作者:术之影   发布日期:2026-01-16   浏览:108

using System;
using System.IO.Ports;
using System.Windows.Forms;

namespace CSharpUpperComputer
{
    public partial class MainForm : Form
    {
        private SerialPort serialPort;

        public MainForm()
        {
            InitializeComponent();
            InitializeSerialPort();
        }

        private void InitializeSerialPort()
        {
            serialPort = new SerialPort
            {
                PortName = "COM1", // 设置串口号
                BaudRate = 9600,   // 设置波特率
                Parity = Parity.None,
                DataBits = 8,
                StopBits = StopBits.One,
                Handshake = Handshake.None
            };

            serialPort.DataReceived += new SerialDataReceivedEventHandler(SerialPort_DataReceived);
        }

        private void SerialPort_DataReceived(object sender, SerialDataReceivedEventArgs e)
        {
            string data = serialPort.ReadExisting();
            this.Invoke(new Action(() =>
            {
                textBoxReceived.AppendText(data); // 将接收到的数据追加到文本框中
            }));
        }

        private void buttonSend_Click(object sender, EventArgs e)
        {
            if (serialPort.IsOpen)
            {
                string message = textBoxSend.Text;
                serialPort.WriteLine(message); // 发送数据到串口
            }
            else
            {
                MessageBox.Show("串口未打开");
            }
        }

        private void buttonOpenClose_Click(object sender, EventArgs e)
        {
            if (serialPort.IsOpen)
            {
                serialPort.Close();
                buttonOpenClose.Text = "打开串口";
            }
            else
            {
                try
                {
                    serialPort.Open();
                    buttonOpenClose.Text = "关闭串口";
                }
                catch (Exception ex)
                {
                    MessageBox.Show($"打开串口失败: {ex.Message}");
                }
            }
        }
    }
}

解释说明:

这段代码实现了一个简单的C#上位机程序,用于通过串口与下位机进行通信。具体功能包括:

  1. 初始化串口:在InitializeSerialPort方法中设置串口参数(如端口号、波特率等),并注册数据接收事件。
  2. 数据接收:当串口接收到数据时,触发SerialPort_DataReceived事件处理程序,将接收到的数据追加到文本框中。
  3. 发送数据:点击“发送”按钮时,读取文本框中的内容并通过串口发送出去。
  4. 打开/关闭串口:点击“打开/关闭串口”按钮可以切换串口的打开和关闭状态。

该示例使用了Windows Forms来创建用户界面,并通过System.IO.Ports.SerialPort类来进行串口通信。

上一篇:c# 时间转换

下一篇:c# task.run

大家都在看

c# 二进制

c# datatable group by

c# tcp client

c# type.gettype

c# sqlconnection

c# string.format 小数位数

.net和c#

c#获取系统时间

c#游戏开发

c#网络编程

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

Laravel 中文站