C#编写串口监控软件的详细教程
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#编写串口监控软件的详细教程相关推荐
- Delphi编写后台监控软件
Delphi编写后台监控软件 文章来源:Delphi程序员之家 后台监控软件,为了达到隐蔽监控的目的,应该满足正常运行时,不显示在任务栏上,在按Ctrl+Alt+Del出现的任务列表中也不显示,管 ...
- Linux/Ubuntu 18.04 截图软件Shutter详细教程,包括启用图片编辑Edit功能,延时截图等
目录 Linux/Ubuntu 18.04 截图软件Shutter详细教程,包括启用Edit功能,延时截图等 安装Shutter 指令介绍 设置常用快捷键 启用Edit功能 延时截图 方法1 方法2 ...
- ( C# + vs2017 )串口助手 零基础详细教程(二)
感谢: 串口助手(简洁版)上位机软件零基础教程( C# + visual studio2017 )(二)_SWPU_机器人实验室-CSDN博客 在上篇博客中,我们完成了串口助手(简洁版)可视化窗体的设 ...
- 树莓派上编写串口助手软件
1. 导读 本文介绍了使用python ,PyQt在树莓派的linux系统上编写一个串口软件的助手,重点介绍相关软件包的安装,串口助手软件的如何编译生成可执行文件. 2.安装相关软件 读到这里,你应该 ...
- Oracle 19.3 Grid Infrastructure 软件安装详细教程
更多文章,欢迎关注作者公众号,欢迎一起交流. 1 安装环境 CentOS 7.9 Oracle Database 19.3 - Enterprise Edition 2 安装配置 2.1 内存要求 1 ...
- 内含JAVA简单概括和JAVA所需安装的软件和详细教程,想学习JAVA无从下手,这篇文章带你迈出第一步
本文大致概括了JAVA编程语言的简史和特点,主要介绍了JAVA开发环境安装,涉及JDK,Sublime Text IntelliJ IDEA三个软件的简单介绍,安装和使用,最后编写了第一个JAVA代码 ...
- 串口监视软件_ESP32 Arduino教程:软件重置
简介 该esp32 arduino教程旨在解释如何使用Arduino核心在ESP32开发板上执行软件重置. 本ESP32教程的测试是使用集成在ESP32开发板中的DFRobot的ESP-WROOM-3 ...
- php替换视频教程,替换掉视频运动中的文字 | 修改视频文字的内容(附带软件与详细教程)...
对于广告视频宣传,不知狸友们曾经是否有过这样的想法,利用借势营销的手段,将某段热门的视频影视片段修改成广告的内容,以达到热点广告的目的.在这个互联网比较发达的时代,广告形式各式各样,唯有创新或者比较突 ...
- 计算机二级 监控,计算机二级VB辅导:用VB编写网络监控软件
随着互联网迅速的膨胀发展,学校.企业.网吧大部分都通过局域网连上了Internet,但是由于人员多.上网机器分散,给上网管理带来了种种不便.为此,笔者编写了一个小程序,在局域网内的每个工作站运行此程序 ...
- Android反编译软件(附图详细教程)
在学习Android开发的过程你,你往往会去借鉴别人的应用是怎么开发的,那些漂亮的动画和精致的布局可能会让你爱不释手,作为一个开发者,你可能会很想知道这些效果界面是怎么去实现的,这时,你便可以对改应用 ...
最新文章
- Android中自定义Dialog外形,去除黑底和白色边框
- python opencv 凸包
- Android11模拟定位开发,Android 11 中的位置信息更新
- linux下软件多语言开发,Qt,多语言软件,开发流程【总结】
- NASM中SECTION的概念
- python获取文件编码格式除了chardet还有别的方式吗_使用python的chardet库获得文件编码并修改编码...
- web服务器采用的是什么协议,webservice中采用协议Http,它是指什么意思
- Atlas学习手记(9):异步调用Page Method
- 面试让HR都能听懂的MySQL锁机制,欢声笑语中搞懂MySQL锁
- 在Windows 10上安装TensorFlow 2.2.0 RC4版
- 《MySQL必知必会》.pdf
- 第二章 ELKstack部署及配置
- kindle3 破解字体
- hive udf开发超详细手把手教程
- 数学教育与计算机教育ppt,计算机基础教育课件.ppt
- linux pe系统下载,WINPE LINUX DOS 完美者U盘维护系统V8.1 正式版
- 【协议分析】WAP1.x协议栈浅析-WSP协议
- 数据库数据迁移的3种方案学习
- 带隙基准电压源的版图设计
- 【项目技术点总结之二】微信小程序中集成antvF2进行图表开发