C#编写一个串口助手上位机软件

关注公众号嵌入式软硬件爱好者

发送消息“串口助手源码”  获取源码

对于工程师来说,串口助手可以说是必不可少的一个工具,一个好的串口助手可以大大方便我们的研发调试。网上串口助手很多,如果能够根据自己需要做一个合适的串口助手,那么既能方便自己,也能掌握上位机的开发,对于自己未来的发展方向不得不说是一件非常不错的事。

      首先看一下完成的串口工具演示

串口助手界面演示

自发自收验证数据:

    

串口助手自发自收

接收外部设备数据:

串口助手接收外部设备数据

       接下来我们就开始制作一个串口助手。

开发一个软件,必不可少的就是软件的安装,我们采用的是Visual Studio 2017 Community_15.7.5 大家可以从官网或者一些软件管家下载到并自行安装。

       新建窗体应用,如下图:

       选择Windows窗体应用,这个会生成一个应用基础模板。

      建立好工程后,会出现如下界面,这个就是界面设计

     如果界面中没用工具控件,那么需要在视图中把工具箱调出来。

       这时候准备工作已经差不多了。可以根据需要来进行代码编写了。

       首先我们先将所需要的控件都添加到主界面上。对于串口来说,需要了解一个串口设备需要的参数即,串口号,波特率,数据位,停止位,校验位,所以首先将这些需要选择参数的控件放上去。ComboBox就是用来填参数的控件。

       串口号、波特率、数据位、停止位、校验位 5个参数所以添加5个ComboBox即可。这时候,还需要注意一个特别重要的东西就是软件菜单的帮助->查看帮助。

      点击查看帮助会打开一个网页,这个网页几乎是windows开发所需要的全部技术资料和参考。通过这个可以很方便的帮助我们学习和解决遇到的问题。

     添加了参数选择后,还需要把各自的参数选项添加上去。添加方法如下:点击控件会出现小三角,打开后 选择“编辑项”,随后把参数添加即可

类似的 波特率、数据位、停止位、校验位也依次各自填入即可。

       参数选择已经添加到界面,现在只有几个参数,那这几个参数该怎么用呢。工具箱里还有一个控件,即SerialPort控件。这个与其说是控件,不如说是一个控制设备。这个控件添加后,那么就相当于把串口添加到了界面上。

       接下来的操作将完全围绕SerialPort来进行。

这时候,我们就需要打开官方的网页帮助文档来进行查找了。输入“serialport” 进行全.NET 文档查找。

     搜到几乎所有的serialportx相关内容。

       随便打开一篇,找到文章左侧的树形目录的“SerialPort”,点击就进入了"SerialPort类"

      由此我们就找到了关于串口相关的所有资料展示。

       最开始我们加入的 串口号、波特率、数据位、停止位、校验位 这几个参数是凭借我们之前所用的串口工具的印象来添加的,现在有了这些文档指示,我们就可以从中找到所有串口参数相关的依据。

       还是回到控件部分,以串口控件为例,当我们需要选择某个串口号时,就需要控制ComboBox控件来识别我们到底选择了哪个选项,设置的值其实就是其内部选项的序号从0选项开始。串口号的控件id是comboBox1,选项从com0-com10,首先默认选择com9,序号就是8,如下图,在public Form1()中添加

comboBox1.SelectedIndex = 8;

那么其他的参数也是一样

comboBox1.SelectedIndex = 8;//串口号选择com9comboBox2.SelectedIndex = 4;//波特率选择115200comboBox3.SelectedIndex = 3;//数据位选择8位comboBox4.SelectedIndex = 1;//停止位选择1位comboBox5.SelectedIndex = 0;//校验位选择None

      默认选项是当运行时初始化的选项,那当我们自己选择的时候该如何呢。

再次以串口号为例。

     首先,双击串口号的combobox控件

。这时候软件会自动跳到Form1.cs 并自动添加一段函数,如下:

private void comboBox1_SelectedIndexChanged(object sender, EventArgs e){  }

       这段代码就是当combobox控件选择有变化时才进入,用来选择选项。在这我们加入一行,当手动输入前几段代码时,系统会自动补全,找到需要的参数即可。程序中com_num是建立的一个全局参数,因为只有全局参数才能供多个控件使用。如下:

.更多内容请查看原文

 串口助手源码地址:串口工具上位机源码

  • 15
    点赞
  • 84
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
是杰杰之前做的 一个参赛小作品 其实在做这个恒温控制系统项目的时候,师弟就问我,什么是上位机。。。。。可能很多师弟师妹都没一个大概的概念。 现在,就来看下什么是上位机上位机是指可以直接发出操控命令的计算机,一般是PC/host computer/master computer/upper computer,屏幕上显示各种信号变化(液压,水位,温度等)。下位机是直接控制设备获取设备状况的计算机,一般是PLC/单片机single chip microcomputer/slave computer/lower computer之类的。上位机发出的命令首先给下位机,下位机再根据此命令解释成相应时序信号直接控制相应设备。下位机不时读取设备状态数据(一般为模拟量),转换成数字信号反馈给上位机。简言之如此,实际情况千差万别,但万变不离其宗:上下位机都需要编程,都有专门的开发系统。 在概念上,控制者和提供服务者是上位机,被控制者和被服务者是下位机,也可以理解为主机和从机的关系,但上位机和下位机是可以转换的。 工作原理 两机如何通讯,一般取决于下位机,TCP/IP一般是支持的,但是下位机一般具有更可靠的独有通讯协议。通常上位机和下位机通讯可以采用不同通讯协议,可以有RS232的串口通讯或者采用RS485串行通讯。采用封装好的程序开发工具就可以实现下位机和上位机的通讯,当然可以自己编写驱动类的接口协议控制上位机和下位机的通讯。 通常工控机,工作站,触摸屏作为上位机,通信控制PLC,单片机等作为下位机,从而控制相关设备元件和驱动装置。 既然差不多知道什么是上位机与下位机,那么,我们做到小喇叭的要求:就得写个上位机,我自己也是学了下C#,用来开发上位机还是可以的,开发环境用visual studio 2015,微软的软件真的是很简单,之前看到有人问为什么微软的软件是最多人用的,答:因为那是傻瓜式操作。。。。。我不得不认同。。。 回归正题:先看看我们的上位机有什么功能: 1)能够实现与下位机的正常通讯。这必须得有,不然算哪门子上位机啊。 2)能够控制我们的恒温系统,通过电脑控制恒温系统的温度。这种应用场景很正常,我在机房就能控制我某一个地方的温度,简单方便。 3)能够实时显示温度与波形。这种应用的场景也是非常常见,实时显示温度我们可以知道温度是否正常,而波形我们能快速看出恒温系统空间温度是否出现异常。 4)数据保存功能,自动将实时的温度保存下来,加入 日期与时间,方便以后排查问题的时候用于检测某段时间的温度是否正常,这也是很使用的功能。 说了那么多,看看我们的上位机。由于我以前用的别人的上位机都是色调比较单一的,而我,又是那种比较活泼开朗的人,觉得单一的灰色调比较死沉,我不喜欢,当然那是别人做的上位机,即使再不喜欢,要用还是要用,没办法, 现在我自己做的就不一样了,得给他做个五颜六色出来。亮瞎眼。。。。。 1.png 2.jpg 3.jpg 当我们的温度达到目标温度的时候,下位机就会控制自己的温度,以保持温度恒定,同时在上位机显示看到温度为一条曲线,由于我设置的温度为整数,没有小数,但是我们通过下位机可以看到实时的温度,精确在0.4范围左右。 4.jpg 当我们把上位机与下位机通讯协议切断,可以看到上位机接受不到数据(在软件右下角粉红色的窗口,没有显示接收到的数据),上位机的波形就会回到默认值(0°),就是上图的样子 5.jpg 6.jpg 当我们需要后期的检测与排除故障的时候,我们可以从我们保存的温度来做简单的排查,上位机自动保存的温度数据,精确到某天某时某分某秒,简单方便。也是一个很实用的功能当没什么故障的时候,我们只需要隔一段时间吧数据清一下就OK了。 附上作品视频:http://v.youku.com/v_show/id_XMzE0Nzg0ODUzMg==.html?spm=a2h0k.8191407.0.0&from=s1.8-1-1.2 本次上位机介绍到此结束 源码文件会可以关注关注获得。 或者CSDN下载连接: 本上位机仅为杰杰个人娱乐,不做商业用途。 如需转载请说明出处。 欢迎关注“创客飞梦空间” 干货不间断 在未来的日子里 创客飞梦空间与你们同在,放飞我们的梦想
回答: 在C#串口通信中,上位机和下位机是指控制系统中的两个计算机。上位机是可以直接发出操控命令的计算机,一般是PC/host computer/master computer/upper computer,它通过串口将命令发送给下位机。下位机是直接控制设备获取设备状况的计算机,一般是PLC/单片机single chip microcomputer/slave computer/lower computer之类的。下位机接收到上位机的命令后,根据命令解释成相应的时序信号,直接控制相应的设备。上下位机之间的数据通信一般基于串口通信。\[1\]\[2\] 在C#中实现上位机和下位机的串口通信,可以使用SerialPort类来列出所有的串口、读写数据、处理数据接收事件等。通过串口通信,上位机可以向下位机发送命令,下位机可以将设备状态数据转换成数字信号反馈给上位机。在界面设计方面,可以使用chart控件来显示波形等数据。同时,可以使用定时器来定时更新波形显示。\[3\] #### 引用[.reference_title] - *1* [C#工控上位机实例_工控学习,搞工控的到底什么是上位机,什么是下位机?](https://blog.csdn.net/weixin_39849287/article/details/109977708)[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^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* *3* [C#实现串口通信的上位机开发](https://blog.csdn.net/weixin_41012765/article/details/125024048)[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^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

九溪弥烟、

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值