当前位置:网站首页 > 技术博客 > 正文

串口助手是上位机么



第一次接触上位机的开发,单纯是为了玩一下,浅度学习,参考了一下其他文章,做了一个简单的串口助手,算是迈出了第一步。写博客记录一下学习的过程。

第1步:创建一个Window窗体应用(.NET Framework)
我安装的是vs2019版本。
在这里插入图片描述

第2步:配置项目
提示:框架要选.NET Framework 4以上,如果没有,先确认项目选的是不是Window窗体应用,再确认是否安装NET Framework。
在这里插入图片描述

我们先利用控件把串口助手的界面搭建出来。
提示:我们用到的控件都在工具箱里面。
在这里插入图片描述

我这里主要用了以下几个控件:

提示:控件名称是一个比较关键的参数,因为后面的代码要根据名称来写。

控件类型 控件名称 Text 说明 TextBox TextBox1 TextBox1 接收显示窗口 TextBox TextBox2 TextBox2 发送输入窗口 label label1 端口号 文本提示 label label2 波特率 文本提示 comboBox comboBox1 comboBox1 端口号下拉菜单 comboBox comboBox2 comboBox2 波特率下拉菜单 button button1 打开串口 打开串口按键 button button2 清除接收 清除接收按键 button button3 发送 发送按键 checkBox checkBox1 hex发送 切换发送格式 checkBox checkBox2 hex接收 切换接收格式 serialPort serialPort1 serialPort1 串口通信控件 Time Tiime1 Tiime1 定时器,用于定时刷新端口

先把控件从工具箱里面拉出来,调整好大小和布局。
提示:TextBox要自由调整窗口大小的话需要把属性里面的MultiLine设置为True。
在这里插入图片描述

修改控件属性里面的Text,串口助手的界面就出来了。
在这里插入图片描述
再添加serialPort和Time控件,这两个是隐藏的控件,在窗口下方,实际运行的时候是看不见的。
在这里插入图片描述
选择波特率对应的comboBox控件,在Items属性里面添加常用的波特率。
在这里插入图片描述




提示:可以双击控件窗口打开代码,也可以选中From,右键,选中查看代码
在这里插入图片描述

在实际应用中,最常用到的代码在Form1.cs和Form1.Designer.cs两个文件中。
注:Form1是新建窗体默认的名称,实际使用也可能不是这个名字。

1、端口更新函数

这个函数是自定义的,需要自己添加进去

 
  

引用命名空间System.IO.Ports:
因为上面调用了SerialPort.GetPortNames()函数,需要引用这个命名空间才能使用

 
  

在这里插入图片描述

2、启动窗口加载函数

 
  

在默认启动函数里添加以下代码:

 
  

在这里插入图片描述
提示:函数名不一定是Form1,这个函数名和自己的使用的窗体名称是一致的

3、"打开串口"按键回调函数

 
  

4、"清除接收"按键回调函数

 
  

5、"发送"按键回调函数

 
  

6、串口接收函数

点击serialPort控件,在该控件的事件里面有一个DataReceived事件,双击它会生成一个数据接收的空函数
在这里插入图片描述

在函数里面添加以下代码:

 
  

7、定时器中断回调函数

在timer控件的属性里面打开使能,设置定时时间为500ms
在这里插入图片描述
双击timer控件,会自动生成一个空函数
在函数里面添加以下代码:


 
  

最后再贴一个完整的代码:
提示:不能直接跳过前面的步骤直接把完整的代码拷贝过去,因为前面双击控件的操作不仅仅是生成空函数,也会在Designer里面添加对应的事件,如果直接拷贝就不会产生事件。当然,如果非要这样操作也不是不行,只要在Form1.Designer.cs文件里面把每个控件对应的事件加上即可。

 
  

在vs里面调试运行结果如下:
在这里插入图片描述
我这里连接了一个树莓派,数据收发测试正常

如果需要在其他PC端运行,可以把工程目录下bin文件里面的Debug拷贝出来,运行exe文件即可,不需要再安装vs
在这里插入图片描述

简单的做了一个串口助手,总体来说其实不难,不熟悉C#语法也没关系,我也是第一次接触C#,根据C语言的经验去摸索,代码基本都能看的懂,有些语法也是即学即用的。好了,关于这一讲的内容就到这里,如果有什么问题,欢迎在评论区留言讨论,谢谢。

源码下载:https://download.csdn.net/download/ShenZhen_zixian/

版权声明


相关文章:

  • java不同版本的区别2025-05-28 13:30:07
  • 交叉验证的使用步骤2025-05-28 13:30:07
  • js file对象上传2025-05-28 13:30:07
  • c语言断点调试怎么用2025-05-28 13:30:07
  • 哈夫曼树的原理2025-05-28 13:30:07
  • api接口测试实例2025-05-28 13:30:07
  • hashmap,treemap2025-05-28 13:30:07
  • python调用第三方接口获取数据2025-05-28 13:30:07
  • ftell函数的用法2025-05-28 13:30:07
  • jmap命令作用2025-05-28 13:30:07