📜  在c#中使用串口(1)

📅  最后修改于: 2023-12-03 15:07:52.184000             🧑  作者: Mango

在C#中使用串口

在C#编程中,使用串口可以方便地进行数据传输。串口是常见的通信接口之一,常用于连接电脑与各种外设。本篇文章将介绍如何在C#中使用串口实现外设通讯的应用。

准备工作

在开始使用串口之前,需要引用System.IO.Ports命名空间。在Visual Studio中,可以在项目属性中选择“参考”选项卡,然后勾选该命名空间。也可以像下面的代码片段一样,在程序中添加该命名空间。

using System.IO.Ports;
打开串口

在使用串口之前,需要先打开串口。可以通过以下代码来打开串口:

SerialPort serialPort = new SerialPort("COM1", 9600, Parity.None, 8, StopBits.One);
serialPort.Open();

其中,第一个参数是串口号,第二个参数是波特率,第三个参数是校验位,第四个参数是数据位,第五个参数是停止位。在打开串口之前,需要先创建SerialPort对象。若要关闭串口,可以使用以下代码:

serialPort.Close();
数据收发

在打开串口之后,可以通过以下代码发送数据:

serialPort.WriteLine("Hello World!");

此时,串口会输出“Hello World!”字符串。需要注意的是,串口的数据传输方式是字节流,因此需要将字符串转换为字节数组才能发送。如果需要读取串口接收到的数据,可以使用以下代码:

string data = serialPort.ReadLine();

此时,data变量中存储着串口接收到的数据。需要注意的是,ReadLine()方法会等待直到读到回车换行符。如果需要读取指定长度的数据,可以使用以下代码:

byte[] buffer = new byte[10];
serialPort.Read(buffer, 0, buffer.Length);

此时,buffer变量中存储着读取到的数据。第二个参数表示从何处开始存储数据,第三个参数表示要读取的数据长度。

串口配置

在串口使用过程中,需要设置串口的一些参数。可以通过以下代码设置:

serialPort.BaudRate = 9600;
serialPort.DataBits = 8;
serialPort.Parity = Parity.None;
serialPort.StopBits = StopBits.One;

其中,BaudRate是波特率,DataBits是数据位,Parity是校验位,StopBits是停止位。如果需要查看当前串口的状态,可以使用以下代码:

if (serialPort.IsOpen)
{
    Console.WriteLine("串口已打开");
}
else
{
    Console.WriteLine("串口未打开");
}
事件处理

串口的接收和发送数据都会触发一个事件。可以通过注册事件处理函数的方式来捕获该事件。例如,如果需要在接收到数据时触发事件处理函数,可以使用以下代码:

serialPort.DataReceived += new SerialDataReceivedEventHandler(DataReceivedHandler);

void DataReceivedHandler(object sender, SerialDataReceivedEventArgs e)
{
    SerialPort sp = (SerialPort)sender;
    string data = sp.ReadExisting();
    Console.WriteLine("接收到数据: " + data);
}

以上代码中,DataReceived表示接收数据时会触发的事件。DataReceivedHandler是事件处理函数,用于读取接收到的数据。

总结

本文介绍了在C#中使用串口的相关知识点,包括打开和关闭串口、数据收发、串口配置和事件处理。这些知识点在各种串口通讯应用中都非常重要,希望能对大家有所帮助。