单片机的上位机简单开发(1)
使用的上位机开发工具为Visual Studio 2019
1.界面设计
1.1创建应用
1.2 控件
在Form1.cs(设计)界面下,点右边点击工具箱,找到Label,Button,ComboBox,SerialPort(串口)这四个组件,并且把它拉到设计的窗体下。
修改控件的text属性,并将ComboBox1右键选择属性,找到DropDownStyle,改为DropDownList(下拉列表),在SerialPort右键选择属性,找到PortName,改为COM
2.逻辑实现
退出
增加单击事件的监听
private void button3_Click(object sender, EventArgs e)
{
if (MessageBox.Show("您是否要退出程序?", "提示", MessageBoxButtons.YesNo) == DialogResult.Yes)
{
this.Close();
}
}
串口下拉框
我们需要遍历已经所有串口,只在下拉框中显示出已经连接上单片机的串口,所以我们在运行程序的时候就要读取串口数据,即在Form1_Load编写相应代码
private void Form1_Load(object sender, EventArgs e)
{
//获取端口名字 使用前需要添加 using System.IO.Ports;
string[] PortName = SerialPort.GetPortNames();
Array.Sort(PortName);//给端口名称排序
for (int i = 0; i < PortName.Length; i++)
{
comboBox1.Items.Add(PortName[i]);//给comboBox1添加选项
}
if (PortName.Length < 1)
{
comboBox1.Items.Add("无可连接的串口");
}
}
波特率下拉框
在上节代码增加
private void Form1_Load(object sender, EventArgs e)
{
//获取端口名字 使用前需要添加 using System.IO.Ports;
string[] PortName = SerialPort.GetPortNames();
Array.Sort(PortName);//给端口名称排序
for (int i = 0; i < PortName.Length; i++)
{
comboBox1.Items.Add(PortName[i]);//给comboBox1添加选项
}
if (PortName.Length < 1)
{
comboBox1.Items.Add("无可连接的串口");
comboBox2.Items.Add("无可选择波特率的串口");
}
else
{
comboBox2.Items.Add("9600");
comboBox2.Items.Add("115200");
}
}
打开串口按钮
首先需要判断2个下拉框的值是否正确,不能是空值或者未连接端口的提示语,在连接成功后,2个下拉框变为不可编辑状态
private void button1_Click_1(object sender, EventArgs e)
{
if ((comboBox1.Text != "" && comboBox1.Text != "无可连接的串口") && (comboBox2.Text != "" && comboBox2.Text != "无可选择波特率"))
{
int num = 0;
num = int.Parse(comboBox2.Text);
serialPort1.PortName = comboBox1.Text;
serialPort1.Open(); //打开串口
serialPort1.BaudRate = num;
MessageBox.Show("串口已连接", "提示");
comboBox1.Enabled = false;
comboBox2.Enabled = false;
}
else
{
MessageBox.Show("请检查串口和波特率的选择是否正确", "提示");
}
}
关闭串口按钮
串口关闭后,2个下拉框变为可编辑状态
private void button2_Click(object sender, EventArgs e)
{
serialPort1.Close();
MessageBox.Show("串口已关闭", "提示");
comboBox1.Enabled = true;
comboBox2.Enabled = true;
}