C# 编写可以展示串口接收到的数据,和串口发出数据的详细教程。 上位机发出数据命令给下位机(嵌入式设备),上位机相当于一个软件系统,既可以接收数据,又可以发送数据。


串口通信

  • 串口相当于硬件类型的接口,例如上位机通过计算机上的串口,将数据发送到嵌入式设备的urat口中,嵌入式设备对收到的数据进行处理,将要回复的数据通过到urat口的汇聚到节点,将数据传到计算机中的上位机中。

  • 串口是按位(bit)发送和接收字节的。串口通信最重要的参数是波特率,数据位,停止位和奇偶校验位。
    a, 波特率:衡量传输速率的参数;
    b, 数据位:衡量通信中实际数据位的参数;
    c, 停止位:表示单个包中的最后一位,典型的值为1,1.5,2位。
    d,奇偶校验位:在串口通信中一种简单的检错方式

串口监控工具界面的设计

首先新建C#窗体控制的工程;然后在自动生成的form中,在工具栏中查找,下图指示的工具,并修改对应的属性。

  • 最终效果图:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using System.IO.Ports;
using System.Diagnostics;namespace comm
{public partial class Form1 : Form{SerialPort S = new SerialPort();//实例化一个串口对象public Form1(){InitializeComponent();//窗口初始化,net自动生成Control.CheckForIllegalCrossThreadCalls = false; //防止跨线程访问出错}private void Form1_Load(object sender, EventArgs e){for(int i = 0; i <10;i++){cbxComport.Items.Add("COM" + (i + 1).ToString());}cbxComport.SelectedIndex = 8;cbxBaudRate.SelectedIndex = 3;cbxStopBits.SelectedIndex = 1;cbxDataBits.SelectedIndex = 0;cbxParity.SelectedIndex = 0;}private void label2_Click(object sender, EventArgs e){}private void label7_Click(object sender, EventArgs e){}private void groupBox1_Enter(object sender, EventArgs e){}private void textBox1_TextChanged(object sender, EventArgs e){int count = S.BytesToRead;string str = null;if (count == 8){byte[] buff = new byte[count];S.Read(buff, 0, count);foreach (byte item in buff)   //读取Buff中存的数据,转换为显示的十六进制数{str += item.ToString("X2") + " ";}tbxRecvData.Text = System.DateTime.Now.ToString() + ": " + str + "\n" + tbxRecvData.Text;}}private void button4_Click(object sender, EventArgs e){S.WriteLine(tbxSendData.Text); //往串口中写数据}private void comboBox1_SelectedIndexChanged(object sender, EventArgs e){}private void comboBox2_SelectedIndexChanged(object sender, EventArgs e){}private void comboBox3_SelectedIndexChanged(object sender, EventArgs e){}private void btnCheckCOM_Click(object sender, EventArgs e){}private void btnOpenCom_Click(object sender, EventArgs e){try{if (!S.IsOpen) //端口是关闭的话{S.PortName = cbxComport.SelectedItem.ToString();S.BaudRate = Convert.ToInt32(cbxBaudRate.SelectedItem.ToString());S.StopBits = StopBits.One;S.DataBits = 8;S.Parity = Parity.Even;S.Open();//打开串口// S.DataReceived  += S_DataReceived;btnOpenCom.Text = "关闭串口";}else{S.Close();//关闭窗口//S.DataReceived -= S_DataReceived;btnOpenCom.Text = "打开串口";}}catch(Exception ee){MessageBox.Show(ee.ToString());}}void S_DataReceived(object sender, SerialDataReceivedEventArgs e)  //数据接收事件,读到数据的长度赋值给count,如果是8位(节点内部编程规定好的),就申请一个byte类型的buff数组,s句柄来读数据{int count = S.BytesToRead;string str = null;if (count == 8){byte[] buff = new byte[count];S.Read(buff, 0, count);foreach (byte item in buff)   //读取Buff中存的数据,转换为显示的十六进制数{str += item.ToString("X2") + " ";}tbxRecvData.Text = System.DateTime.Now.ToString() + ": " + str + "\n" + tbxRecvData.Text;}}private void btnCleanData_Click(object sender, EventArgs e){}private void button1_Click(object sender, EventArgs e){String Data = S.ReadExisting();tbxRecvData.Text = Data;//读取串口中的数据}}
}
  • public Form1()是类的构造函数,用来传递参数的;代码相当于容器,执行的条件也可以多样。比如可以按钮触发,也可以判断输入值等,也可以把函数名写在后面执行;
    Form1_Load():窗体加载事件,用来加载数据。打开这个窗口的时候就执行,默认设置的参数信息。

C#编写串口监控软件的详细教程相关推荐

  1. Delphi编写后台监控软件

    Delphi编写后台监控软件 文章来源:Delphi程序员之家   后台监控软件,为了达到隐蔽监控的目的,应该满足正常运行时,不显示在任务栏上,在按Ctrl+Alt+Del出现的任务列表中也不显示,管 ...

  2. Linux/Ubuntu 18.04 截图软件Shutter详细教程,包括启用图片编辑Edit功能,延时截图等

    目录 Linux/Ubuntu 18.04 截图软件Shutter详细教程,包括启用Edit功能,延时截图等 安装Shutter 指令介绍 设置常用快捷键 启用Edit功能 延时截图 方法1 方法2 ...

  3. ( C# + vs2017 )串口助手 零基础详细教程(二)

    感谢: 串口助手(简洁版)上位机软件零基础教程( C# + visual studio2017 )(二)_SWPU_机器人实验室-CSDN博客 在上篇博客中,我们完成了串口助手(简洁版)可视化窗体的设 ...

  4. 树莓派上编写串口助手软件

    1. 导读 本文介绍了使用python ,PyQt在树莓派的linux系统上编写一个串口软件的助手,重点介绍相关软件包的安装,串口助手软件的如何编译生成可执行文件. 2.安装相关软件 读到这里,你应该 ...

  5. Oracle 19.3 Grid Infrastructure 软件安装详细教程

    更多文章,欢迎关注作者公众号,欢迎一起交流. 1 安装环境 CentOS 7.9 Oracle Database 19.3 - Enterprise Edition 2 安装配置 2.1 内存要求 1 ...

  6. 内含JAVA简单概括和JAVA所需安装的软件和详细教程,想学习JAVA无从下手,这篇文章带你迈出第一步

    本文大致概括了JAVA编程语言的简史和特点,主要介绍了JAVA开发环境安装,涉及JDK,Sublime Text IntelliJ IDEA三个软件的简单介绍,安装和使用,最后编写了第一个JAVA代码 ...

  7. 串口监视软件_ESP32 Arduino教程:软件重置

    简介 该esp32 arduino教程旨在解释如何使用Arduino核心在ESP32开发板上执行软件重置. 本ESP32教程的测试是使用集成在ESP32开发板中的DFRobot的ESP-WROOM-3 ...

  8. php替换视频教程,替换掉视频运动中的文字 | 修改视频文字的内容(附带软件与详细教程)...

    对于广告视频宣传,不知狸友们曾经是否有过这样的想法,利用借势营销的手段,将某段热门的视频影视片段修改成广告的内容,以达到热点广告的目的.在这个互联网比较发达的时代,广告形式各式各样,唯有创新或者比较突 ...

  9. 计算机二级 监控,计算机二级VB辅导:用VB编写网络监控软件

    随着互联网迅速的膨胀发展,学校.企业.网吧大部分都通过局域网连上了Internet,但是由于人员多.上网机器分散,给上网管理带来了种种不便.为此,笔者编写了一个小程序,在局域网内的每个工作站运行此程序 ...

  10. Android反编译软件(附图详细教程)

    在学习Android开发的过程你,你往往会去借鉴别人的应用是怎么开发的,那些漂亮的动画和精致的布局可能会让你爱不释手,作为一个开发者,你可能会很想知道这些效果界面是怎么去实现的,这时,你便可以对改应用 ...

最新文章

  1. Android中自定义Dialog外形,去除黑底和白色边框
  2. python opencv 凸包
  3. Android11模拟定位开发,Android 11 中的位置信息更新
  4. linux下软件多语言开发,Qt,多语言软件,开发流程【总结】
  5. NASM中SECTION的概念
  6. python获取文件编码格式除了chardet还有别的方式吗_使用python的chardet库获得文件编码并修改编码...
  7. web服务器采用的是什么协议,webservice中采用协议Http,它是指什么意思
  8. Atlas学习手记(9):异步调用Page Method
  9. 面试让HR都能听懂的MySQL锁机制,欢声笑语中搞懂MySQL锁
  10. 在Windows 10上安装TensorFlow 2.2.0 RC4版
  11. 《MySQL必知必会》.pdf
  12. 第二章 ELKstack部署及配置
  13. kindle3 破解字体
  14. hive udf开发超详细手把手教程
  15. 数学教育与计算机教育ppt,计算机基础教育课件.ppt
  16. linux pe系统下载,WINPE LINUX DOS 完美者U盘维护系统V8.1 正式版
  17. 【协议分析】WAP1.x协议栈浅析-WSP协议
  18. 数据库数据迁移的3种方案学习
  19. 带隙基准电压源的版图设计
  20. 【项目技术点总结之二】微信小程序中集成antvF2进行图表开发

热门文章

  1. 美团外卖返利小程序-饿了么外卖返利公众号系统– 程序侠
  2. 机器学习笔记 - 什么是标准正态分布表?
  3. win10程序员计算器的使用
  4. 58同城推荐系统设计与实现
  5. E-prime实验设计常用技术
  6. C语言--课程管理信息系统
  7. uniapp与微信小程序常用api
  8. zen brush 2 android,zen brush2
  9. Excel批量导入SQL Server
  10. 加密-网络安全之1号皇帝新衣