using System;
using System.IO.Ports;
using System.Threading;
class Program
{
static SerialPort serialPort;
static void Main(string[] args)
{
// 初始化串口
serialPort = new SerialPort("COM1", 9600, Parity.None, 8, StopBits.One);
serialPort.DataReceived += new SerialDataReceivedEventHandler(DataReceivedHandler);
try
{
serialPort.Open();
Console.WriteLine("串口已打开");
// 发送数据到串口
string message = "Hello from C#";
serialPort.WriteLine(message);
Console.WriteLine("发送数据: " + message);
// 等待用户输入以保持程序运行
Console.WriteLine("按任意键退出...");
Console.ReadKey();
// 关闭串口
serialPort.Close();
Console.WriteLine("串口已关闭");
}
catch (UnauthorizedAccessException ex)
{
Console.WriteLine("无法访问串口: " + ex.Message);
}
catch (IOException ex)
{
Console.WriteLine("I/O 错误: " + ex.Message);
}
catch (Exception ex)
{
Console.WriteLine("其他错误: " + ex.Message);
}
}
private static void DataReceivedHandler(object sender, SerialDataReceivedEventArgs e)
{
SerialPort sp = (SerialPort)sender;
string indata = sp.ReadExisting();
Console.WriteLine("接收到的数据: " + indata);
}
}
初始化串口:
SerialPort 类来配置和打开串口。事件处理:
DataReceived 事件用于处理从串口接收到的数据。当有数据到达时,触发 DataReceivedHandler 方法。发送数据:
WriteLine 方法通过串口发送字符串数据。接收数据:
DataReceivedHandler 方法中读取并显示接收到的数据。异常处理:
关闭串口:
Close 方法关闭串口,确保资源释放。这段代码展示了如何在 C# 中进行基本的串口通信,包括发送和接收数据。
下一篇:c# string 转int
Laravel PHP 深圳智简公司。版权所有©2023-2043 LaravelPHP 粤ICP备2021048745号-3
Laravel 中文站