使用visual studio 制作上位机2021-06-16

使用visual studio 制作上位机

在嵌入式开发的后期,客户往往需要调试一些参数,为减少与工程师的反复对接,反复更新程序,此时开发一款相应的上位机,通过数据的传输来进行相关参数的修改,显的尤为重要,今天我们就利用visual studio来开发一款通过电脑串口进行通讯的上位机软件。

1.新建工程

(1)新建:文件➔新建➔项目
新建项目
(2)选择Visual C#下面的Windows 桌面 ➔ Windows窗体应用(.NET Framework)➔ 输入项目名称 ➔ 设置保存路径 ➔ 点击确认
确认上位机样式
(3)等待创建工程:
等待几秒钟之后,项目工程会创建完毕。我们会得到一个最基本的窗口。这其实就是我们的画布,接下来我们需要哪些组件,我们就可以自己手动添加进去。
工程创建完毕

2.放置组件,组件,按钮等

接下来我会介绍几个基本的组件,这几个组件基本能够覆盖我们平时调试需要的功能:

  1. 组件所在位置:视图➔工具箱
    工具箱

  2. 常用组件及如何放置控件
    我们最常用的组件在“公共控件”,“容器”和“组件”,这三个分组里面。
    常用控件
    放置控件有两种方法:
    方法一:双击相应的控件,该控件就会出现在你的窗口当中。
    方法二:点击相应的图标,拖拽到我们的窗口当中。
    放置控件方法

  3. Lable :标签。主要功能:用于注释。
    我们添加的一些按钮或者文本框,往往需要一个文本注释,来说明是做什么的。这个时候我们就需要用到Label这个控件。
    添加完控件之后,右击控件,选择属性。
    在这里插入图片描述
    通过修改右下角窗口中的label1属性中的Text内容,即可修改该标签的显示。
    在这里插入图片描述
    注意!标签的名称请不要修改,标签的名称唯一,标签名称用于不同标签的区分。
    在这里插入图片描述
    有关字体大小,以及背景颜色的修改方法,可自行百度,此处不做赘述。

  4. ComboBox :下拉列表框。主要功能,数据的选择和输入。
    在这里插入图片描述
    同样右击属性,在Text选项框中,我们可以设置改下拉列表的初始化默认值。
    在这里插入图片描述

3.放置串口,放置定时器!

一般我们制作上位机的目的是与下位机进行通讯,所以我们必须启用串口通讯功能。切记添加串口和定时器。
1.放置串口:组件➔SerialPort
2.放置定时器:组件➔Timer
在这里插入图片描述
定时器,定时时间设置:
在这里插入图片描述

4.串口相关设置

串口相关的设置主要包括以下5个组件:
(1)搜索串口(button)
(2)选择串口(ComboBox)
(3)波特率设置(ComboBox)
(4)打开串口(button)
(5)关闭串口(button)
在这里插入图片描述

布局好之后,我们需要对相应的组件添加功能代码,已实现相应的组件功能。

搜索串口

双击搜索串口button组件添加如下代码:

        //扫描串口
        private void button1_Click(object sender, EventArgs e)
        {
            SearchAndAddSerialToComboBox(serialPort2,comboBox2);       //扫描并讲课用串口添加至下拉列表
        }
        private void SearchAndAddSerialToComboBox(SerialPort MyPort, ComboBox MyBox)
        {                                                               //将可用端口号添加到ComboBox
            string[] MyString = new string[20];                         //最多容纳20个,太多会影响调试效率
            string Buffer;                                              //缓存
            MyBox.Items.Clear();                                        //清空ComboBox内容
            for (int i = 1; i < 20; i++)                                //循环
            {
                try                                                     //核心原理是依靠try和catch完成遍历
                {
                    Buffer = "COM" + i.ToString();
                    MyPort.PortName = Buffer;
                    MyPort.Open();                                      //如果失败,后面的代码不会执行
                    MyString[i - 1] = Buffer;
                    MyBox.Items.Add(Buffer);                            //打开成功,添加至下俩列表
                    MyPort.Close();                                     //关闭
                }
                catch
                {

                }
            }
            //   MyBox.Text = MyString[0];                                   //初始化
        }

选择串口

选择串口的ComboBox组件无需添加代码

选择波特率

选择波特率的ComboBox组件无需添加代码

打开串口

双击打开串口组件,添加如下代码:注意你所添加的串口组件名称

        private void button2_Click(object sender, EventArgs e)
        {
            try
            {
                serialPort2.PortName = comboBox2.Text;//开启的串口名称为选择串口的ComboBox组件中的内容
                //serialPort1.BaudRate = 9600;
                serialPort2.BaudRate = Convert.ToInt32(comboBox1.Text);//将选择波特率ComboBox组件中的数据转为Int型,并且进行波特率的设置
                serialPort2.Open();//打开串口
                button2.Enabled = false;//打开串口按钮不可用
                button3.Enabled = true;//关闭串口可用
                                       //  timer1.Start();
            }
            catch//如果打开串口失败 需要做如下警示
            {
                MessageBox.Show("打开串口失败,请检查相关设置。", "错误");
            }
        }

关闭串口

双击关闭串口组件,添加如下代码:

        private void button3_Click(object sender, EventArgs e)
        {
            try
            {
                serialPort2.Close();//关闭串口
                button2.Enabled = true;//打开串口按钮可用
                button3.Enabled = false;//关闭串口按钮不可用
            }
            catch (Exception err)//一般情况下关闭串口不会出错,所以不需要加处理程序
            {

            }
        }

5.发送数据

假设:button5按键为发送数据按钮:
我们在对相应的buf数组进行赋值之后,需要进行如下操作:
发送数据的函数为 serialPort2.Write(dataBuf, 0, 6)
参数为:发送的数组名称,发送数据起始位,发送数据长度。

serialPort2.Write(dataBuf, 0, 6);

如下代码逻辑可供参考,注意打开串口,以及相关警示的设置:


```c
        private void button5_Click(object sender, EventArgs e)
        {
            f_run_pass_fail = 1;
            f_send_data = true;
            timer1Count = 0;
            if (button2.Enabled)//如果还没有打开串口
            {
                MessageBox.Show("请打开串口", "提示");
            }
            else if (checkBox1.Checked == false)
            {
                MessageBox.Show("请选定头码!", "提示");
            }
            else
            {
                NormalData();
                serialPort2.Write(dataBuf, 0, 6);
                // timer1.Start();

            }
        }

6.小结

上述内容为创建上位机软件的最基础代码原理,有任何问题,欢迎留言交流。
本篇博文不定时更新完善。

  • 49
    点赞
  • 419
    收藏
    觉得还不错? 一键收藏
  • 7
    评论
Visual Studio是一个非常强大的集成开发环境(IDE),可以用于开发各种类型的应用程序,包括上位机软件。在使用Visual Studio开发上位机软件时,可以按照以下步骤进行操作: 1. 创建项目:打开Visual Studio,选择新建项目,然后选择Windows窗体应用程序作为项目类型。可以根据自己的需求设置项目名称、保存路径和框架等信息。 2. 编辑窗口:创建项目后,进入工程管理器,左侧的白色区域是Form编辑窗口,可以在这里设计上位机软件的界面。可以通过打开视图->工具箱来访问各种控件列表,从中选择需要的控件,比如按钮、文本框等。 3. 设计界面:在编辑窗口中,可以通过拖拽控件到界面上来设计上位机的用户界面。选中控件后,可以在右下角的属性窗口中设置其属性,比如位置、大小、文本等。 4. 编写代码:除了设计界面,还需要编写代码来实现上位机软件的功能。可以使用C#等编程语言来编写代码。通过双击控件或者在属性窗口中选择事件,可以为控件添加相应的事件处理程序。在事件处理程序中编写代码来实现相应的功能,比如与下位机通信、修改参数等。 5. 调试和发布:在开发过程中,可以使用Visual Studio提供的调试功能来测试和调试上位机软件。一旦开发完成,可以使用Visual Studio提供的发布功能将上位机软件打包成可执行文件,方便用户安装和使用。 总结起来,使用Visual Studio开发上位机软件的流程包括创建项目、设计界面、编写代码、调试和发布。通过Visual Studio提供的丰富功能和易用性,可以方便地开发出功能强大的上位机软件。 #### 引用[.reference_title] - *1* [visual studio创立上位机软件C#)(定时器)](https://blog.csdn.net/qq_43811597/article/details/128369663)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insert_down28v1,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* [使用visual studio 制作上位机2021-06-16](https://blog.csdn.net/Casey_shi/article/details/117965159)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insert_down28v1,239^v3^insert_chatgpt"}} ] [.reference_item] - *3* [Visual Studio 2019 C# 上位机入门(2):写一个简单的串口助手](https://blog.csdn.net/weixin_44788542/article/details/130274583)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insert_down28v1,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]
评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值