Visual Studio 编写关于温湿度的上位机具体代码
时间: 2023-07-02 21:04:59 浏览: 91
下面是一个简单的基于Visual Studio的C#代码示例,用于读取串口中的温湿度传感器数据并显示在Windows窗体上:
```csharp
using System;
using System.IO.Ports;
using System.Windows.Forms;
namespace TemperatureHumidityReader
{
public partial class MainForm : Form
{
private SerialPort serialPort;
public MainForm()
{
InitializeComponent();
// 初始化串口
serialPort = new SerialPort();
serialPort.PortName = "COM1"; // 按实际情况修改串口号
serialPort.BaudRate = 9600; // 按实际情况修改波特率
serialPort.DataBits = 8;
serialPort.StopBits = StopBits.One;
serialPort.Parity = Parity.None;
serialPort.Handshake = Handshake.None;
serialPort.ReadTimeout = 5000;
serialPort.WriteTimeout = 5000;
// 打开串口
try
{
serialPort.Open();
}
catch (Exception ex)
{
MessageBox.Show("无法打开串口:" + ex.Message);
Application.Exit();
}
// 开始读取数据
timer1.Enabled = true;
}
private void timer1_Tick(object sender, EventArgs e)
{
// 读取串口数据
string data = "";
try
{
data = serialPort.ReadLine();
}
catch (TimeoutException)
{
// 读取超时
return;
}
// 解析数据
string[] values = data.Split(',');
if (values.Length == 2)
{
double temperature = double.Parse(values[0]);
double humidity = double.Parse(values[1]);
// 显示数据
textBoxTemperature.Text = temperature.ToString("0.0") + "℃";
textBoxHumidity.Text = humidity.ToString("0.0") + "%";
}
}
private void MainForm_FormClosing(object sender, FormClosingEventArgs e)
{
// 关闭串口
if (serialPort != null && serialPort.IsOpen)
{
serialPort.Close();
}
}
}
}
```
在窗体设计器中,添加两个TextBox控件(用于显示温度和湿度值),一个Timer控件(用于定时读取串口数据),以及在MainForm的构造函数中初始化并打开串口,然后在Timer的Tick事件中读取串口数据,并解析出温度和湿度值,最后将它们显示在TextBox中。注意在关闭窗体时要关闭串口。