最近有项目应用到串口通讯,网上找到一个C#写的调试工具,如下图:
需要的文末可下载。下面我再讲一下串口通讯的基本应用:
在C#中进行串口通讯通常涉及到一些基本的功能,如打开串口、发送数据、接收数据等。以下是一个简单的例子,演示了C#中串口通讯的基本功能。
打开和关闭串口: 使用SerialPort
类的Open()
和Close()
方法。
设置串口属性: 包括波特率、数据位、停止位、校验位等。
发送数据: 使用Write()
方法发送数据到串口。
接收数据: 通过事件处理程序处理DataReceived
事件,使用ReadExisting()
等方法读取接收到的数据。
using System;
using System.IO.Ports;
class SerialCommunicationExample
{
static SerialPort serialPort;
static void Main()
{
// 初始化串口对象
serialPort = new SerialPort("COM1", 9600, Parity.None, 8, StopBits.One);
// 注册DataReceived事件处理程序
serialPort.DataReceived += SerialPort_DataReceived;
try
{
// 打开串口
serialPort.Open();
// 发送数据
SendData("Hello, Serial!");
Console.WriteLine("Press any key to exit.");
Console.ReadKey();
}
catch (Exception ex)
{
Console.WriteLine("Error: " + ex.Message);
}
finally
{
// 关闭串口
if (serialPort.IsOpen)
{
serialPort.Close();
}
}
}
// 发送数据到串口
static void SendData(string data)
{
if (serialPort.IsOpen)
{
serialPort.Write(data);
Console.WriteLine("Data sent: " + data);
}
}
// 串口数据接收事件处理程序
static void SerialPort_DataReceived(object sender, SerialDataReceivedEventArgs e)
{
if (serialPort.IsOpen)
{
// 读取接收到的数据
string receivedData = serialPort.ReadExisting();
Console.WriteLine("Data received: " + receivedData);
}
}
}
这个例子创建了一个简单的串口通讯应用。通过实例化SerialPort
对象,设置串口属性,注册事件处理程序,打开串口并发送、接收数据,展示了串口通讯的基本流程。在实际应用中,需要根据具体需求进一步处理异常、优化性能等。
源代码获取:公众号回复消息【code:32020
】