C# RS485 无延迟双向通信代码示例
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);
原文地址: https://www.cveoy.top/t/topic/RsY 著作权归作者所有。请勿转载和采集!