全国服务热线:

15861139266

C#上位机系列教程零基础入门-串口收发-苏州上位机学习,苏州机器视觉学习,苏州PLC学习
发布时间:2023-12-07 10:05:14 点击次数:200

C#上位机系列教程零基础入门-串口收发

欢迎来到C#上位机教程的零基础入门!本教程将帮助你从零开始学习C#编程,并使用C#构建上位机应用程序,本教程将以经典的串口工具开发为Demo,讲述一个项目如何去实现,本节内容将讲述串口的收发


1、首先介绍在SerialPort 类中,串口数据发送的几个方法


public void Write(byte[] buffer,int offset,int count);

public void Write(string text);

public void Write(char[] buffer, int offset,int count);

public void WriteLine(string text);

2、串口数据的接收方法


public int Read(byte[] buffer, int offset, int count);

public int Read(char[] buffer, int offset, int count);

public int ReadByte();

public string ReadExisting();

public string ReadLine();

public string ReadTo(string value);

public event SerialDataReceivedEventHandler DataReceived;

以上方法可以在SerialPort 类中找到,并可以尝试使用,并加强理解


3、本节主要实现的目标是实现串口工具数据的发送和接收件,具体功能下图:

1.png

配置好虚拟串口后分别打开两个串口工具实例,并各自打开COM2,和COM3,当在实例1的发送区中填入内容后点击手动发送,实例2的接收区能够接收到实例1发送的内容,当在实例2的发送区中填入内容点击手动发送,实例1的接收区能够接收实例2发送的内容。具体实现代码如下:


当实例1发送区的"手动发送"按钮产生一个"Click"事件时将调用以下代码:


   private void send_btn_Click(object sender, EventArgs e)

        {

            // 如果发送的数据不为空且串口已经打开,则发送

            if (this.send_rtb.Text != "" && serialPort1.IsOpen)

            {

                //this.recive_rtb.AppendText(this.send_rtb.Text);

                serialPort1.Write(send_rtb.Text);

            }

            else

            {

                MessageBox.Show("请先输入发送数据!");


            }

        }

如果发送区的内容不为空且串口已经打开,则调用实例serialPort1的Write方法将指定的字符串写入串行端口。


串口数据的接收我们需要先定义一个serialPort1对象的DataReceived事件


具体操作如下:

2.png

单击seralPort1对象DataReceived事件中定serialPort1_DataReceived方法,代码如下:


   private void serialPort1_DataReceived(object sender, SerialDataReceivedEventArgs e)

        {

            string dataRecive = serialPort1.ReadExisting();

            recive_rtb.AppendText(dataRecive);

        }


SerialPort.ReadExisting 方法会读取 SerialPort 对象的流和输入缓冲区中所有立即可用的字节,并返回string类型的数据。接收区对象通过AppendText方法添加返回的String并在接收区的文本框显示。当 SerialPort 对象表示的端口接收了数据后会触发DataReceived事件,同时会调用serialPort1_DataReceived方法。


立即咨询
  • 品质服务

    服务贴心周到

  • 快速响应

    全天24小时随时沟通

  • 专业服务

    授权率高,保密性强

  • 完善售后服务

    快速响应需求,及时性服务

直播课程
软件开发基础课程
上位机软件开发课
机器视觉软件开发课
专题课
联系方式
电话:15861139266
邮箱:75607082@qq.com
地址:苏州吴中区木渎镇尧峰路69号
关注我们

版权所有:江苏和讯自动化设备有限公司所有 备案号:苏ICP备2022010314号-1

技术支持: 易动力网络