using System;
using System.IO.Ports;
using System.Threading;
class SerialPortExample
{
static void Main()
{
// 创建串口对象
using (SerialPort port = new SerialPort("COM1", 9600, Parity.None, 8, StopBits.One))
{
try
{
// 打开串口
port.Open();
// 设置数据接收事件处理程序
port.DataReceived += new SerialDataReceivedEventHandler(DataReceivedHandler);
// 发送数据到串口
port.WriteLine("Hello, World!");
// 等待一段时间以确保数据被发送和接收
Thread.Sleep(2000);
}
catch (UnauthorizedAccessException ex)
{
Console.WriteLine("无法访问串口: " + ex.Message);
}
catch (IOException ex)
{
Console.WriteLine("I/O 错误: " + ex.Message);
}
finally
{
// 关闭串口
if (port.IsOpen)
{
port.Close();
}
}
}
}
private static void DataReceivedHandler(object sender, SerialDataReceivedEventArgs e)
{
// 获取串口对象
SerialPort sp = (SerialPort)sender;
// 读取接收到的数据
string indata = sp.ReadExisting();
Console.WriteLine("接收到的数据: " + indata);
}
}
创建串口对象:
SerialPort 类来创建一个串口对象。构造函数中指定了串口号(如 "COM1")、波特率(如 9600)、校验位、数据位和停止位。打开串口:
port.Open() 方法打开串口,以便进行通信。设置数据接收事件处理程序:
DataReceived 事件来监听串口数据的接收,并在事件触发时调用 DataReceivedHandler 方法。发送数据:
port.WriteLine() 方法向串口发送字符串数据。等待数据传输完成:
Thread.Sleep() 方法暂停主线程一段时间,以确保数据有足够的时间被发送和接收。处理异常:
关闭串口:
finally 块中确保串口在使用完毕后被正确关闭。数据接收处理:
DataReceivedHandler 方法会在接收到数据时被调用,读取并打印接收到的数据。这个示例展示了如何使用 C# 进行基本的串口通信编程,包括打开和关闭串口、发送和接收数据以及处理异常。
上一篇:c#字符串转16进制
下一篇:c# post 请求
Laravel PHP 深圳智简公司。版权所有©2023-2043 LaravelPHP 粤ICP备2021048745号-3
Laravel 中文站