为了进行C#串口编程,我们需要使用System.IO.Ports命名空间中的SerialPort类。下面是完整步骤:
- 打开Visual Studio,创建一个新的C#控制台应用程序。
- 在“解决方案资源管理器”的项目中右键单击“引用”,选择“添加引用”,然后选中“System.IO.Ports”。
- 打开Program.cs文件,在命名空间后添加以下代码:
using System.IO.Ports;
- 在Main()方法中,创建一个SerialPort对象,设置该串口的端口号、波特率、数据位、停止位、校验位等参数,如下所示:
SerialPort serialPort = new SerialPort();
serialPort.PortName = "COM1";
serialPort.BaudRate = 9600;
serialPort.DataBits = 8;
serialPort.StopBits = StopBits.One;
serialPort.Parity = Parity.None;
- 调用serialPort.Open()方法打开这个串口。
- 调用serialPort.Write()方法写入数据。如下所示:
serialPort.Write("Hello World");
这将向串口发送ASCII字符串“Hello World”。
- 调用serialPort.DataReceived事件来接收数据。可以这样写:
serialPort.DataReceived += SerialPort_DataReceived;
当有数据接收到时,会调用SerialPort_DataReceived方法来处理数据。
下面是两个示例的完整说明:
示例1:读取串口数据并显示在控制台
定义SerialPort_DataReceived事件:
static void SerialPort_DataReceived(object sender, SerialDataReceivedEventArgs e)
{
SerialPort serialPort = sender as SerialPort;
string data = serialPort.ReadLine();
Console.WriteLine(data);
}
在Main()方法中,添加如下代码:
serialPort.DataReceived += SerialPort_DataReceived;
serialPort.Open();
Console.ReadLine();
serialPort.Close();
这将打开串口,当有数据接收到时,将会自动调用SerialPort_DataReceived事件,并将数据读取到字符串变量中。然后将数据显示在控制台上。
示例2:按键控制串口数据发送
在Main()方法中,添加如下代码:
serialPort.Open();
while (true)
{
if (Console.KeyAvailable)
{
ConsoleKeyInfo key = Console.ReadKey(true);
if (key.KeyChar == 'q') break;
serialPort.Write(key.KeyChar.ToString());
}
}
serialPort.Close();
这将打开串口,然后等待用户输入按键。如果用户输入q,则退出程序。否则,将按键的字符发送到串口。
当然,这只是C#串口编程的初级教程,更高级的用法还需要深入学习和实践。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:C#串口编程实例代码 - Python技术站