上位机获取单片机发来的数据

  • 需求
  • 准备
  • 功能设计
  • 界面设计
  • 程序
  • 后续

需求

本设计的主要功能其实是获取RFID的卡号,并进行鉴别。推而广之,可以用来获取单片机发来的数据,并进行检验是否符合要求。
我们在平时使用单片机制作项目时,总是希望能够实时显示一些数据,并将这些数据进行处理,从而进行使用。那么上位机就必不可少了。上位机是指可以直接发出操控命令的计算机,一般是PC屏幕上显示各种信号变化。下位机是直接控制设备获取设备状况的计算机,一般是单片机之类的。上位机发出的命令首先给下位机,下位机再根据此命令解释成相应时序信号直接控制相应设备。下位机不时读取设备状态数据(一般为模拟量),转换成数字信号反馈给上位机。简言之如此,实际情况千差万别,但万变不离其宗:上下位机都需要编程,都有专门的开发系统。
在概念上,控制者和提供服务者是上位机,被控制者和被服务者是下位机,也可以理解为主机和从机的关系,但上位机和下位机是可以转换的。
那么我今天就来制作这样一款上位机,主要用来实现获取开发板的数据,并进行判别,显示不同的提示。还可以发送给单片机相关数据。

准备

  1. 带串口的单片机(哈哈,一般几乎都有)
  2. Visual Studio 2019

功能设计

  1. 设置波特率等串口参数
  2. 打开串口
  3. 检测串口
  4. 接收数据
  5. 显示数据
  6. 检验串口发来的数据是否符合要求
  7. 根据传来的数据,显示不同的内容

界面设计




程序

/// <summary>/// 关闭串口/// </summary>public void ClearSelf(){if (ComDevice.IsOpen){ComDevice.Close();}}private void cbbComList_SelectedIndexChanged(object sender, EventArgs e){}/// <summary>/// 字符串转换16进制字节数组/// </summary>/// <param name="hexString"></param>/// <returns></returns>private byte[] strToHexByte(string hexString){hexString = hexString.Replace(" ", "");if ((hexString.Length % 2) != 0) hexString += " ";byte[] returnBytes = new byte[hexString.Length / 2];for (int i = 0; i < returnBytes.Length; i++)returnBytes[i] = Convert.ToByte(hexString.Substring(i * 2, 2).Replace(" ", ""), 16);return returnBytes;}/// <summary>/// 接收数据/// </summary>/// <param name="sender"></param>/// <param name="e"></param>private void Com_DataReceived(object sender, SerialDataReceivedEventArgs e){//等待缓冲区数据Thread.Sleep(time);byte[] ReDatas = new byte[ComDevice.BytesToRead];ComDevice.Read(ReDatas, 0, ReDatas.Length);//读取数据//丢弃接收缓冲区数据ComDevice.DiscardInBuffer();this.AddData(ReDatas);//输出数据}private void AddContent(string content){this.BeginInvoke(new MethodInvoker(delegate{cardNum.Clear();//清空cardNum.AppendText(content);}));}private void button1_Click(object sender, EventArgs e){if(cardNum.Text== "E0022302AED19C52"){MessageBox.Show("管理员");}else if(cardNum.Text== "E0022302AED23534"){MessageBox.Show("消费者");}}

后续

完整源码,可以关注我的程序设计专栏。
或者关注微信公众号上,发送“上位机”获取。

编写不易,感谢支持。

上位机获取单片机发来的数据并进行检验相关推荐

  1. 上位机获取单片机发来的数据并进行检验(完整版,附完整源码)

    上位机获取单片机发来的数据 需求 准备 功能设计 界面设计 程序 后续 需求 本设计的主要功能其实是获取RFID的卡号,并进行鉴别.推而广之,可以用来获取单片机发来的数据,并进行检验是否符合要求. 我 ...

  2. java 通讯机_java 上位机与单片机通过串口485通讯

    java 上位机与单片机通过串口485通讯 java 2020-7-12 下载地址 https://www.codedown123.com/29387.html 上位机与单片机通过串口485通讯 co ...

  3. Labview上位机与单片机系统的开发

    目的: 大家都知道,现在无论是做项目或者做一个相对复杂一点的系统,对于上位机的需求都是必不可少的,因此本文为大家提供了Labview的安装包以及VISA(串口通信需要)安装包,在后期也会一步一步和大家 ...

  4. C#上位机学习(二)--GPS数据接收

    前言 本文主要是对博主本人在学习开发的过程中的一些总结,心得,以个人名义记录.由于本人也是初学者, 个人能力浅薄.经验欠缺,言辞.代码若有不妥以至纰漏处,欢迎批评指正!(使用VS2019开发) 正文 ...

  5. springboot获取客户端发来的数据

    springboot请求处理 请求映射 package com.atguigu.boot.controller; ​ ​ import org.springframework.ui.Model; im ...

  6. C#上位机与单片机的完美结合(内附有用户登录,注册,截图,温度采集,历史数据展示,左边菜单右边内容展示的主界面)

    基于C#的用户登录,注册界面,头像截屏,左侧菜单右边显示内容的主界面,与单片机结合的温度检测,历史数据分析,完美与SQLServer结合 1用户登录界面 2注册界面 3用户头像拍摄截取 4灯光展示 5 ...

  7. 详细介绍如何从0开始写一个数据通信,将数据从单片机发送到上位机(或者虚拟示波器)进行数据或图像显示,以及常见问题或注意事项解答,本文主要以匿名上位机为例,适合新手和小白

      本文主要内容:详细介绍如何从0开始写一个数据通信,将数据从单片机发送到上位机(或者虚拟示波器)进行数据或图像显示,帮助我们调节一些参数,比如电机PID的调节.波形融合等,以及在我们写通信协议的时候 ...

  8. python隐藏画笔箭头的函数是hide_Python开发的串行通信上位机程序三部曲第三部分,串口,通讯,用,图形,方式,显示,数据...

    用Visual Basic或者C#, LabVIEW等软件开发的上位机界面,和文本式交互界面比较而言,就是可以用图形方式来显示数据.那么python可不可以用图形来显示数据呢?Of course! 和 ...

  9. STM32单片机通过ESP8266WiFi模块与Android APP实现数据传输(二)---上位机搭建

    事物的难度远远低于对事物的恐惧 完成对STM32单片机和ESP8266 WiFi模块的配置之后,接下来需要完成Android APP代码的编写以及实现. 1.添加网络权限 因为我们需要对WiFi进行操 ...

最新文章

  1. 最新 Windows 7 7100安装
  2. boost之对象池使用实例
  3. 蓝桥杯基础模块6_2:定时器进阶
  4. [51Nod 1218] 最长递增子序列 V2 (LIS)
  5. 一段挂起进程中所有线程的代码
  6. Linux服务器中木马(肉鸡)手工清除方法
  7. Python学习之路_day_25(面向对象之封装/多态/组合)
  8. VMware Cloud Director 10.3.1 - 云计算调配和管理平台
  9. 两个理想的90°电桥构成的非线性平衡电路
  10. Java消息盒子实现性能,Python高级进阶#007 pyqt5消息盒子QMessageBox
  11. 神经网络学习小记录2——利用tensorflow构建循环神经网络(RNN)
  12. Mac自带Safari浏览器如何清除缓存
  13. python不同曲线设置标签_python 绘制拟合曲线并加指定点标识的实现 Python怎么实现非线性的拟合...
  14. C语言 输出Sn = a + aa + aaa + aaaa + ······
  15. 金蝶软件连接显示服务器超时,金蝶连接云服务器超时
  16. 移动周刊第 184 期:Android 开发终极指南
  17. 新浪微博应用开发入门
  18. idea新建springboot项目后始终无法识别org.codehaus.plexus.component.repository.exception.ComponentLookupException
  19. 解决 Elasticsearch 分页查询记录超过10000时异常
  20. 腾讯云又搞特价活动打折续费还可以有优惠机不可失

热门文章

  1. 提高网站性能的常见方法
  2. 大白话5分钟带你走进人工智能-第31节集成学习之最通俗理解GBDT原理和过程
  3. 零基础入门Python3-列表list详解
  4. Android开发学习笔记-md5加密算法
  5. Netbeans、Eclipse中查看JDK源码
  6. 路径分析开源工程OpenTripPlaner 概述
  7. ubuntu 系统相关
  8. trigger_name 的命名规范
  9. React基础篇(三)之 webpack打包项目配制
  10. Android 自定义下拉刷新