C# 一个上位机与多个下位机通过多个串口进行通信 写一个程序能监控上位机跟下位机的通信信息
时间: 2024-12-16 15:27:11 浏览: 10
在C#中,要编写一个程序来监控上位机(通常运行在PC上)与多个下位机(比如Arduino、单片机等,通过串口通信)的通信,可以使用System.IO.Ports命名空间下的SerialPort类。下面是一个基本框架的例子:
```csharp
using System;
using System.IO.Ports;
class SerialMonitor
{
// 定义串口列表
private static readonly string[] serialPorts = { "COM1", "COM2", "COM3" }; // 你可以替换为你实际的端口号
public static void Main()
{
foreach (string port in serialPorts)
{
// 创建并打开每个串口实例
SerialPort sp = new SerialPort(port, 9600, Parity.None, 8, StopBits.One);
try
{
sp.Open();
Console.WriteLine($"Monitoring on {port}:");
// 监听数据接收事件
sp.DataReceived += Sp_DataReceived;
while (true) // 如果你想持续监听
{
System.Threading.Thread.Sleep(100); // 每隔一段时间检查是否有新数据
}
}
catch (Exception ex)
{
Console.WriteLine($"Error opening port {port}: {ex.Message}");
}
finally
{
if (sp.IsOpen)
{
sp.Close();
}
}
}
}
// 数据到达事件处理函数
private static void Sp_DataReceived(object sender, SerialDataReceivedEventArgs e)
{
SerialPort sp = (SerialPort)sender;
string data = sp.ReadExisting(); // 读取接收到的数据
Console.WriteLine($"Received: {data}");
}
}
```
阅读全文