[已排版,电脑浏览最佳]

在单片机项目开发中,上位机也是一个很重要的部分,主要用于数据显示(波形、温度等)、用户控制(LED,继电器等),下位机(单片机)与 上位机之间要进行数据通信的两种方式都是基于串口的:

  • USB转串口 —— 上位机和下位机通过USB转串口连接线直接相连进行数据交互;
  • 串口转WIFI(ESP8266) —— 上位机和下位机基于TCP/IP协议通过WIFI传输数据;
  • 串口转蓝牙(HC-06)—— 不多用,暂不介绍;

上位机软软件开发主要包括以下两种:

1、Windows上位机(EXE可执行程序)

在Windows上,最早用VB语言开发,后来由于C++的发展,采用MFC开发,近几年,微软发布了基于.NET框架的面向对象语言C#,更加稳定安全,再配合微软强大的VS进行开发,效率奇高;

另外,如果想要在Linux上跨平台运行,可以选用Qt;如果想要更加丰富好看的数据显示界面,可以选用Labview开发;

2、Android上位机(APP)

在Android操作系统上,主要采用Java语言,使用WIFI或者蓝牙基于TCP/IP协议传输数据,利用Android Studio开发;

在此,我们主要介绍如何通过VS + C#开发电脑上位机,其它上位机的开发暂且不论。

注:VS下载与安装参考这篇较详细的博客

https://blog.csdn.net/qq_36556893/article/details/79430133

我们来自己动手写一个串口助手:

1、构思功能

串口助手在单片机开发中经常被用来调试,最基本的功能就是接收功能和发送功能,其次,串口在打开前需要进行一些设置:串口列表选择、波特率、数据位、校验位、停止位,这样就有了一个基本的雏形;然后我们在下一篇中在此功能上添加:ASCII/HEX显示,发送,发送新行功能,重复自动发送功能,显示接收数据时间这几项扩展功能;

2、设计布局

根据以上功能,将整个界面分为两块:设置界面(不可缩放)+ 接收区和发送区(可缩放),下面就来依次拖放控件实现:

1)容器控件(Panel)

Panel是容器控件,是一些小控件的容器池,用来给控件进行大致分组,要注意容器是一个虚拟的,只会在设计的时候出现,不会显示在设计完成的界面上,这里我们将整个界面分为6个容器池,如图:

2)文本标签控件(Lable)

用于显示一些文本,但是不可被编辑;改变其显示内容有两种方法:一是直接在属性面板修改“Text”的值,二是通过代码修改其属性,见如下代码;另外,可以修改Font属性修改其显示字体及大小,这里我们选择微软雅黑,12号字体;

label1.Text = "串口"; //设置label的Text属性值

3)下拉组合框控件(ComboBox)

用来显示下拉列表;通常有两种模式,一种是DropDown模式,既可以选择下拉项,也可以选择直接编辑;另一种是DropDownList模式,只能从下拉列表中选择,两种模式通过设置DropDownStyle属性选择,这里我们选择第二种模式;

那么,如何加入下拉选项呢?对于比较少的下拉项,可以通过在属性面板中Items属性中加入,比如停止位设置,如图,如果想要出现默认值,改变Text属性就可以,但要注意必须和下拉项一致:

下拉组合框控件

另外一种是直接在页面加载函数代码中加入,比如波特率的选择,代码如下:

private void Form1_Load(object sender, EventArgs e) { int i; //单个添加for (i = 300; i <= 38400; i = i*2) { comboBox2.Items.Add(i.ToString()); //添加波特率列表 } //批量添加波特率列表 string[] baud = { "43000

C#开发工控上位机编程 csdn_C#串口编程示例相关推荐

  1. 基于C#的工控上位机软件开发从入门到学废,需要几步?

    基于C#的工控上位机软件开发从入门到学废,需要几步? 随着工控产品的应用,开始大幅度渗透进民用领域.涉及的工控产品范围广泛,如PLC.DCS.变频器.仪表.电机.SCADA.低压及配电元器件等. 准备 ...

  2. C#工控上位机——框架

    C#工控上位机 第一部分:UI模块 先点击一下Panel,在点击一下屏幕. 先选中Panel,在进行属性设置. 图标连接 嵌入式窗体 设置按键的事件 using System; using Syste ...

  3. C# Winform工控上位机控件库

    C# Winform工控上位机控件库 通讯库集成:支持西门子.欧姆龙.施耐德等主流PLC 报警窗口:报警配置自动弹出 报警历史:报警历史自动保存 数据库操作:增删改查 说明:包含DLL库和使用教程,不 ...

  4. C#工控上位机实例_南京物流仓库【仓库物流】_智能云仓储库存wms管理分配货_电子标签价签拣货系统_工控erp上位机软件开发设计...

    ?南京滨江开发区300平方变压器250KVA厂房陆郎加油站附近开发区 | 物流仓库 | 厂房招租 南京滨江开发区陆郎加油站附近300平方独门独户厂房招租?变压器250KVA?适合小型磨具机械加工无污染 ...

  5. C#工控上位机实例_工控学习,搞工控的到底什么是上位机,什么是下位机?

    上位机 上位机是指可以直接发出操控命令的计算机, 一般是PC/host computer/master computer/upper computer, 屏幕上显示各种信号变化(液压,水位,温度等). ...

  6. C#工控上位机实例_「C#上位机」西门子1200PLC实用定位控制程序案例

    ​1. 引言 本文是一篇综合性非常强的文章,从PLC输入输出及步进电机接线开始,到PLC运动控制程序编写,再到后续的ModbusTCP通信协议及上位机编程实现最终控制,涉及知识面比较广,能够让我们很好 ...

  7. C#工控上位机开发-->1、C#快速编程入门

    学习目标: 一.控制台的输入输出 二.C#中的变量使用 三.字符串的拼接与格式化的三种方式 四.数据类型转换的三种方式 学习内容: 1 控制台的输入输出 (1)输入方法:Console.Read(); ...

  8. LabVIEW上位机学习 面对对象编程实例项目源码 与下位机PLC

    LabVIEW上位机学习 面对对象编程实例项目源码 与下位机PLC,工厂MES通讯,数据库,NI vision视觉等开发,及操作者框架源码可运行,想学习面对对象的可以参考 ID:16199647294 ...

  9. 记录自用的CAN开发调试工具和上位机

    文章目录 前言 二.CANable开源软硬件 三.AMP32F103 方案的自制USB2CAN 调试器 四.TTCAN - USB2CANFD调试器 二.PyQT开发CAN调试器上位机 (1)CAN通 ...

  10. 如何调试上位机软件与串口进行通信

    为了在没有下位机连接的情况下调试上位机软件,看上位机软件是否能通过串口和下位机通信,以及通信的具体内容,下面给出解决方法: 1.下载"vspd虚拟串口" vspd虚拟串口软件是用来 ...

最新文章

  1. 给自己的Sublime Text换上Soda Theme主题后清爽了好多
  2. iOS Storyboard创建APP 的国际化操作
  3. Oracle 查看 对象 持有锁的情况
  4. 用C++流成员函数put输出单个字符
  5. pcs7 simatic batch v9.0_西门子V90 伺服STO安全功能注意事项
  6. Oracle Text简介
  7. idea中xml文件用浏览器打开
  8. 制作STM32F429的外部SPI-FLASH下载算法
  9. 求解TSP问题(python)(穷举、最近邻居法、opt-2法、动态规划、插入法)
  10. 解决ElementUI列表大数据操作卡顿问题
  11. java线程状态和状态切换
  12. html360全景图原理,HTML5 Canvas实现360度全景图
  13. Python正则表达式及常用匹配
  14. 8051单片机基础2:内核和存储器(RAM,Flash)架构
  15. Microsoft Store无法打开的解决办法【成功解决】
  16. 银河麒麟系统V10sp1共享快捷到桌面
  17. 【标准全文】GB_17675-2021_汽车转向系_基本要求
  18. 【集成电源开关拓扑系列二---负载开关】
  19. 一个9年程序员中年危机的思考
  20. Hexo+github搭建博客的错误:连接超时port 443: Timed out和OpenSSL错误

热门文章

  1. Vue warn 屏蔽
  2. 从微信跳转到appstore下载App
  3. java 音频波形图_java读取wav文件(波形文件)并绘制波形图的方法
  4. Matplotlib取代minitab绘制正态分布图
  5. 前端JS 调用 Google地图 以及拖拽地图事件触发
  6. 阿里云和Azure ICON图标矢量素材分享
  7. isbn书号查询php代码,php根据isbn书号查询amazon网站上的图书信息的示例_PHP
  8. 土木保研可以跨计算机专业吗,本科土木跨考计算机专业研究生可行吗?本科土木跨考计算机专业研...
  9. Android ViewGroup介绍+实例
  10. c语言中的矩阵求逆程序,C语言矩阵求逆