using System;
using System.IO.Ports;
class Program
{
static void Main()
{
// 创建一个串口对象,指定端口号和波特率
using (SerialPort serialPort = new SerialPort("COM1", 9600))
{
try
{
// 打开串口
serialPort.Open();
// 设置串口的其他参数(可选)
serialPort.Parity = Parity.None;
serialPort.StopBits = StopBits.One;
serialPort.DataBits = 8;
serialPort.Handshake = Handshake.None;
// 注册数据接收事件
serialPort.DataReceived += new SerialDataReceivedEventHandler(DataReceivedHandler);
// 发送数据到串口
serialPort.WriteLine("Hello, Serial Port!");
// 等待用户输入以保持程序运行
Console.WriteLine("Press any key to exit.");
Console.ReadKey();
}
catch (UnauthorizedAccessException)
{
Console.WriteLine("Access to the port is denied.");
}
catch (IOException)
{
Console.WriteLine("The port does not exist or could not be opened.");
}
finally
{
// 确保串口关闭
if (serialPort.IsOpen)
{
serialPort.Close();
}
}
}
}
private static void DataReceivedHandler(object sender, SerialDataReceivedEventArgs e)
{
// 获取串口对象
SerialPort sp = (SerialPort)sender;
// 读取接收到的数据并输出到控制台
string indata = sp.ReadExisting();
Console.WriteLine("Data Received: " + indata);
}
}
创建串口对象:
SerialPort serialPort = new SerialPort("COM1", 9600)
:创建一个串口对象,指定端口号为 COM1
和波特率为 9600
。打开串口:
serialPort.Open()
:打开指定的串口。设置串口参数:
serialPort.Parity = Parity.None
:设置校验位为无。serialPort.StopBits = StopBits.One
:设置停止位为 1。serialPort.DataBits = 8
:设置数据位为 8。serialPort.Handshake = Handshake.None
:设置握手协议为无。注册数据接收事件:
serialPort.DataReceived += new SerialDataReceivedEventHandler(DataReceivedHandler)
:当有数据通过串口接收时,触发 DataReceivedHandler
方法处理数据。发送数据:
serialPort.WriteLine("Hello, Serial Port!")
:向串口发送字符串 "Hello, Serial Port!"
。等待用户输入:
Console.ReadKey()
:等待用户按键以保持程序运行。异常处理:
UnauthorizedAccessException
和 IOException
异常,分别处理权限不足和端口不存在或无法打开的情况。关闭串口:
finally
块中确保串口关闭。数据接收处理方法:
DataReceivedHandler
方法在接收到数据时被调用,读取并输出接收到的数据。上一篇:c# sha256withrsa
下一篇:c# 读取ini配置文件
Laravel PHP 深圳智简公司。版权所有©2023-2043 LaravelPHP 粤ICP备2021048745号-3
Laravel 中文站