C# RS485 无延迟双向通信代码示例

本文将介绍如何使用C#编写代码实现两个设备之间通过RS485进行无延迟的双向通信。

前提条件

  • 你的计算机上需要安装RS485通信所需的驱动程序。* 你需要准备两个连接到计算机的RS485设备。

代码实现

以下是一个基于C#的示例代码,演示了如何设置和使用 SerialPort 类来实现无延迟的RS485双向通信:csharpusing System;using System.IO.Ports;

class RS485Communication{ static SerialPort port1; static SerialPort port2;

static void Main()    {        // 设置串口1        port1 = new SerialPort();        port1.PortName = 'COM1';  // 设置串口号        port1.BaudRate = 9600;   // 设置波特率        port1.Parity = Parity.None;  // 设置校验位        port1.StopBits = StopBits.One;  // 设置停止位        port1.DataBits = 8;  // 设置数据位        port1.Handshake = Handshake.None;  // 设置握手协议        port1.RtsEnable = true;  // 启用请求发送信号        port1.DtrEnable = true;  // 启用数据终端就绪信号        port1.Open();  // 打开串口

    // 设置串口2        port2 = new SerialPort();        port2.PortName = 'COM2';  // 设置串口号        port2.BaudRate = 9600;   // 设置波特率        port2.Parity = Parity.None;  // 设置校验位        port2.StopBits = StopBits.One;  // 设置停止位        port2.DataBits = 8;  // 设置数据位        port2.Handshake = Handshake.None;  // 设置握手协议        port2.RtsEnable = true;  // 启用请求发送信号        port2.DtrEnable = true;  // 启用数据终端就绪信号        port2.Open();  // 打开串口

    // 监听串口1的数据        port1.DataReceived += new SerialDataReceivedEventHandler(DataReceivedHandler1);

    // 监听串口2的数据        port2.DataReceived += new SerialDataReceivedEventHandler(DataReceivedHandler2);

    Console.WriteLine('RS485通信已启动。');        Console.ReadLine();

    // 关闭串口        port1.Close();        port2.Close();        Console.WriteLine('RS485通信已关闭。');    }

// 处理串口1接收到的数据    private static void DataReceivedHandler1(object sender, SerialDataReceivedEventArgs e)    {        SerialPort sp = (SerialPort)sender;        string receivedData = sp.ReadExisting();        Console.WriteLine('串口1接收到数据: ' + receivedData);

    // 将接收到的数据发送到串口2        port2.Write(receivedData);    }

// 处理串口2接收到的数据    private static void DataReceivedHandler2(object sender, SerialDataReceivedEventArgs e)    {        SerialPort sp = (SerialPort)sender;        string receivedData = sp.ReadExisting();        Console.WriteLine('串口2接收到数据: ' + receivedData);

    // 将接收到的数据发送到串口1        port1.Write(receivedData);
C# RS485 无延迟双向通信代码示例

原文地址: https://www.cveoy.top/t/topic/RsY 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录