当前位置: 首页 > article >正文

C# 定时通讯的高速串口的编程框架

C# 定时通讯的高速串口的编程框架

using System;
using System.IO.Ports;
using System.Windows.Forms;
 
namespace SerialPortExample
{
    public partial class MainForm : Form
    {
        private SerialPort serialPort = new SerialPort();
 
        public MainForm()
        {
            InitializeComponent();
            InitializeSerialPort();
        }
 
        private void InitializeSerialPort()
        {
            serialPort.PortName = "COM3"; // 请根据实际情况修改
            serialPort.BaudRate = 9600;
            serialPort.Parity = Parity.None;
            serialPort.DataBits = 8;
            serialPort.StopBits = StopBits.One;
            serialPort.Handshake = Handshake.None;
            serialPort.DataReceived += new SerialDataReceivedEventHandler(DataReceivedHandler);
        }
 
        private void DataReceivedHandler(object sender, SerialDataReceivedEventArgs e)
        {
            SerialPort sp = (SerialPort)sender;
            string indata = sp.ReadExisting();
            this.Invoke(new EventHandler(delegate
            {
                // 更新UI
                textBoxReceive.AppendText(indata);
            }));
        }
 
        private void buttonSend_Click(object sender, EventArgs e)
        {
            if (serialPort.IsOpen)
            {
                serialPort.WriteLine(textBoxSend.Text);
            }
            else
            {
                MessageBox.Show("Port is not open!");
            }
        }
 
        private void MainForm_Load(object sender, EventArgs e)
        {
            foreach (string s in SerialPort.GetPortNames())
            {
                comboBoxPort.Items.Add(s);
            }
            comboBoxPort.SelectedIndex = comboBoxPort.Items.Count > 0 ? 0 : -1;
        }
 
        private void buttonOpenPort_Click(object sender, EventArgs e)
        {
            if (comboBoxPort.SelectedIndex >= 0)
            {
                serialPort.PortName = comboBoxPort.SelectedItem.ToString();
                serialPort.Open();
                buttonOpenPort.Enabled = false;
                comboBoxPort.Enabled = false;
            }
        }
 
        private void buttonClosePort_Click(object sender, EventArgs e)
        {
            if (serialPort.IsOpen)
            {
                serialPort.Close();
                buttonOpenPort.Enabled = true;
                comboBoxPort.Enabled = true;
            }
        }
    }
}


http://www.kler.cn/a/421054.html

相关文章:

  • FPGA Xilinx维特比译码器实现卷积码译码
  • 代码随想录第36天
  • java基础语法光速入门
  • 【JMX JVM监控】Prometheus读取Trino的JMX数据到Grafana展示
  • JavaScript(JS)的对象
  • Spark常问面试题---项目总结
  • C++(六)
  • 手机设置了卡2上网,卡1禁止上网,但是卡1还是会偷偷跑流量,这是什么情况???
  • 【HTTP】HTTP协议
  • 嵌入式蓝桥杯学习1 电量LED
  • Kylin Server V10 下基于Kraft模式搭建Kafka集群
  • Leetcode 每日一题 383.赎金信
  • D86【python 接口自动化学习】- pytest基础用法
  • 《Spring Boot 整合 Avro 与 Kafka》
  • C++ 简介
  • 恼人的MAVEN,继续报 xx is present in the local repository, but
  • 第十七届山东省职业院校技能大赛 高职组“信息安全管理与评估”比赛通知
  • 7、硬盘品牌分类介绍:西数 - 计算机硬件品牌系列文章
  • java执行规则引擎
  • LeetCode763. 划分字母区间(2024冬季每日一题 23)
  • 基于STM32的气体泄漏检测器
  • 在21世纪的我用C语言探寻世界本质——字符函数和字符串函数(2)
  • lambda strem流表达式处理工具
  • 第10章 大模型的有害性(下)
  • 初始化webpack应用示例
  • 基于python的某音乐网站热门歌曲的采集与分析,包括聚类和Lda主题分析