写一个串口通讯的上位机程序
时间: 2023-09-25 12:10:11 浏览: 96
[108]VC编的串口程序!很有用的!已经调试,能够实现串口通讯.zip上位机开发VC串口学习资料源码下载
下面是一个基于C#和WinForms的串口通讯上位机程序的示例代码,可以实现串口的打开、关闭、发送和接收数据的功能:
```
using System;
using System.IO.Ports;
using System.Windows.Forms;
namespace SerialPortDemo
{
public partial class MainForm : Form
{
private SerialPort serialPort;
public MainForm()
{
InitializeComponent();
// 初始化串口
serialPort = new SerialPort();
// 设置串口参数
serialPort.PortName = "COM1"; // 串口号
serialPort.BaudRate = 9600; // 波特率
serialPort.Parity = Parity.None; // 校验位
serialPort.DataBits = 8; // 数据位
serialPort.StopBits = StopBits.One; // 停止位
serialPort.ReadTimeout = 500; // 超时时间
serialPort.WriteTimeout = 500; // 超时时间
// 绑定串口数据接收事件
serialPort.DataReceived += SerialPort_DataReceived;
}
private void SerialPort_DataReceived(object sender, SerialDataReceivedEventArgs e)
{
// 读取串口数据
string data = serialPort.ReadExisting();
// 在接收框中显示数据
ReceiveTextBox.Invoke(new Action(() => ReceiveTextBox.AppendText(data)));
}
private void OpenButton_Click(object sender, EventArgs e)
{
try
{
// 打开串口
serialPort.Open();
// 禁用打开按钮,启用关闭按钮
OpenButton.Enabled = false;
CloseButton.Enabled = true;
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
}
private void CloseButton_Click(object sender, EventArgs e)
{
// 关闭串口
serialPort.Close();
// 禁用关闭按钮,启用打开按钮
CloseButton.Enabled = false;
OpenButton.Enabled = true;
}
private void SendButton_Click(object sender, EventArgs e)
{
try
{
// 发送数据
serialPort.Write(SendTextBox.Text);
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
}
}
}
```
该程序使用了一个文本框用于输入要发送的数据,一个按钮用于发送数据,一个文本框用于显示接收到的数据,并且提供了打开和关闭串口的功能。
需要注意的是,在实际使用中需要根据需要进行异常处理和界面的优化,以便提供更好的用户体验。
阅读全文