单片机的上位机简单开发(1)

本文详细介绍了如何使用Visual Studio 2019作为上位机工具,通过控件设计与逻辑实现,实现串口下拉框筛选已连接单片机、波特率选择以及串口的打开与关闭操作。涉及控件设置、事件监听和串口管理关键代码段。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

单片机的上位机简单开发(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;
        }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值