C#上位机——串口助手高级01

C#上位机——串口助手高级

第一步:设置界面
在这里插入图片描述

在这里插入图片描述
右击RiceTextBox,选择置于顶层
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
选择StatusLabel
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
第二步:重新对控件进行命名
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
第三步:设置一些属性
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
波特率就是一秒钟发送的位数!
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

using Microsoft.Win32;
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;namespace 串口助手
{public partial class Form1 : Form{private bool isOpen = false;//定义一个变量,表示串口的开或者关闭状态public Form1(){InitializeComponent();}private void Form1_Load(object sender, EventArgs e){//给下拉列表添加端口//this.port_cbb.Items.Add("COM5");//this代表窗口//this.port_cbb.Items.Add("COM6");//初始化各个下拉列表//this.port_cbb.SelectedIndex = 2;//选择port_cbb的第2个是COM3//this.baud_cbb.SelectedIndex = 1;//默认选择9600//this.check_cbb.SelectedIndex = 0;//默认是none//this.databit_cbb.SelectedIndex = 3;//默认是8位//this.stopbit_cbb.SelectedIndex = 0;//默认是1位//给发送框添加预设文本  也就是初始化//this.send_rtb.Text = "我是发送框";//给接收框添加预设文本//this.recive_rtb.Text = "我是接收框";serialLoad();}//自动加载串口的端口号的函数private void serialLoad(){RegistryKey keyCom = Registry.LocalMachine.OpenSubKey(@"Hardware\DeviceMap\SerialComm");string[] sSubKeys = keyCom.GetValueNames();//定义一个数组储存获取注册表中的值port_cbb.Items.Clear();//清空列表中的值foreach (var sValue in sSubKeys){string porName = (string)keyCom.GetValue(sValue);port_cbb.Items.Add(porName);}//初始化各个下拉列表this.port_cbb.SelectedIndex = 0;//选择port_cbb的第2个是COM3this.baud_cbb.SelectedIndex = 1;//默认选择9600this.check_cbb.SelectedIndex = 0;//默认是nonethis.databit_cbb.SelectedIndex = 3;//默认是8位this.stopbit_cbb.SelectedIndex = 0;//默认是1位 }private void button1_Click(object sender, EventArgs e){如果发送的数据不为空,则接收//if (this.send_rtb.Text != "")//{//    this.recive_rtb.AppendText(this.send_rtb.Text);//}//else//{//    MessageBox.Show("请先输入发送数据");//}try{if (serialPort1.IsOpen == false)//如果没有打开串口{//对串口的属性进行初始化serialPort1.PortName = port_cbb.Text;serialPort1.BaudRate = Convert.ToInt32(baud_cbb.Text);serialPort1.DataBits = Convert.ToInt32(databit_cbb.Text);switch (check_cbb.SelectedIndex){//none  odd evencase 0:serialPort1.Parity = System.IO.Ports.Parity.None;break;case 1:serialPort1.Parity = System.IO.Ports.Parity.Odd;break;case 2:serialPort1.Parity = System.IO.Ports.Parity.Even;break;default:serialPort1.Parity = System.IO.Ports.Parity.None;break;}switch (stopbit_cbb.SelectedIndex){case 0:serialPort1.StopBits = System.IO.Ports.StopBits.One;break;case 1:serialPort1.StopBits = System.IO.Ports.StopBits.OnePointFive;break;case 2:serialPort1.StopBits = System.IO.Ports.StopBits.Two;break;default:serialPort1.StopBits = System.IO.Ports.StopBits.One;break;}//串口属性设置完毕,打开串口serialPort1.Open();isOpen = true;//修改按钮的文字open_btn.Text = "关闭串口";}else//如果串口已经打开{serialPort1.Close();isOpen = false;open_btn.Text = "打开串口";}//if (port_cbb.Text != "")//{//    serialPort1.PortName = port_cbb.Text;//}//serialPort1.Open();//if (serialPort1.IsOpen)//{//    MessageBox.Show("serialport is open");//}}catch (Exception ex){MessageBox.Show(ex.ToString() + serialPort1.PortName.ToString());}}private void port_cbb_SelectedIndexChanged(object sender, EventArgs e){}}
}

在这里插入图片描述
在这里插入图片描述

串口的接收

using Microsoft.Win32;
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.IO.Ports;
using System.Text;
using System.Windows.Forms;namespace 串口助手
{public partial class Form1 : Form{private bool isOpen = false;//SerialPortpublic Form1(){InitializeComponent();Control.CheckForIllegalCrossThreadCalls = false;}private void Form1_Load(object sender, EventArgs e){//在设计页面已经预先添加了COM1 COM2 COM3 //this.port_cbb.Items.Add("COM4");//this.port_cbb.Items.Add("COM5");//this.port_cbb.SelectedIndex = 2;//this.baud_cbb.SelectedIndex = 1;//this.check_cbb.SelectedIndex = 0;//this.databit_cbb.SelectedIndex = 3;//this.stopbit_cbb.SelectedIndex = 0;// 给发送框添加预设文本//  this.send_rtb.Text = "我是发送框";// 给接收框添加预设文本//  this.recive_rtb.Text = "我是接收框";serialLoad();}//自动加载串口端口号private void serialLoad(){RegistryKey keyCom = Registry.LocalMachine.OpenSubKey(@"Hardware\DeviceMap\SerialComm");string[] sSubKeys = keyCom.GetValueNames();port_cbb.Items.Clear();foreach (var sValue in   sSubKeys){string portName = (string)keyCom.GetValue(sValue);port_cbb.Items.Add(portName);}this.port_cbb.SelectedIndex = 0;this.baud_cbb.SelectedIndex = 1;this.check_cbb.SelectedIndex = 0;this.databit_cbb.SelectedIndex = 3;this.stopbit_cbb.SelectedIndex = 0;}private void send_btn_Click(object sender, EventArgs e){// 如果发送的数据不为空,则接收if (this.send_rtb.Text != "" && serialPort1.IsOpen){//this.recive_rtb.AppendText(this.send_rtb.Text);serialPort1.Write(send_rtb.Text);//发送数据}else{MessageBox.Show("请先输入发送数据!");}}private void open_btn_Click(object sender, EventArgs e){try{if (serialPort1.IsOpen == false){serialPort1.PortName = port_cbb.Text;serialPort1.BaudRate = Convert.ToInt32(baud_cbb.Text);serialPort1.DataBits = Convert.ToInt32(databit_cbb.Text);switch (check_cbb.SelectedIndex){//  none  odd  even case 0:serialPort1.Parity = Parity.None;break;case 1:serialPort1.Parity = Parity.Odd;break;case 2:serialPort1.Parity = Parity.Even;break;default:serialPort1.Parity = Parity.None;break;}switch (stopbit_cbb.SelectedIndex){// 1 1.5 2case 0:serialPort1.StopBits = StopBits.One;break;case 1:serialPort1.StopBits = StopBits.OnePointFive;break;case 2:serialPort1.StopBits = StopBits.Two;break;default:serialPort1.StopBits = StopBits.One;break;}serialPort1.Open();isOpen = true;open_btn.Text = "关闭串口";}else{serialPort1.Close();isOpen = false;open_btn.Text = "打开串口";}}catch (Exception ex){MessageBox.Show(ex.ToString()+serialPort1.PortName.ToString());}}//数据接收private void serialPort1_DataReceived(object sender, SerialDataReceivedEventArgs e){string dataRecive = serialPort1.ReadExisting();recive_rtb.AppendText(dataRecive);}}
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/242398.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

乱用信用卡?黑名单见

随便办卡?随性还款?随意套现?如今个人的信用愈发重要加上信用卡的新政无意间增加了使用负担 你还在这么随便的使用信用卡吗? 那简直是在给自己“招黑”!01、随意办卡随随便便申请信用卡,想当集大成者&#…

华为2017年财报,为何6036亿销售收入,净利润才479亿?

虽然华为的净利润率只有8%,和阿里、腾讯的净利润率没法比,但是8%对制造业来说已经很不容用易了,而且如果没有巨额的研发费用和员工费用支出,华为的净利润至少可以达到25%以上,可以轻松超过目前中国90%的企业&#xff0…

C#上位机——串口助手高级02

C#上位机——串口助手高级 using Microsoft.Win32; using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.IO.Ports; using System.Text; using System.Windows.Forms;namespace 串口助手 {p…

外部 Storage Provider - 每天5分钟玩转 Docker 容器技术(149)

如果 Kubernetes 部署在诸如 AWS、GCE、Azure 等公有云上,可以直接使用云硬盘作为 Volume,下面是 AWS Elastic Block Store 的例子: 要在 Pod 中使用 ESB volume,必须先在 AWS 中创建,然后通过 volume-id 引用。其他云…

C#上位机——串口助手高级03

C#上位机——串口助手高级03 using Microsoft.Win32; using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.IO.Ports; using System.Text; using System.Windows.Forms;namespace 串口助手 …

为什么你申请信用卡总是被拒绝?是银行跟你有仇吗?

信用卡被拒是有很多原因的,正常来说如果你信用卡被拒绝,可以从以下几个方面找原因。一、征信问题如果最近两年征信逾期超过6次以上,或有超过90天以上不还款的记录,那基本没戏。除此之外,如果你最近半年之内查询征信的次…

在银行存款被吞了,怎么能快速解决?

存款被吞,估计绝大部分都会非常紧张,生怕被吞的存款就这样没了。在这个时候,很多人首先想到的是会给银行打电话,说自己的钱被ATM吞了,希望银行的人员能过来看一下,这个时候,银行客服人员估计会不…

C#上位机——父子窗口

C#上位机——父子窗口 创建一个类 第一步:主窗体建立委托 第二步:在主窗体的事件中使用委托 第三步:将副窗体中的方法赋给委托 using Microsoft.Win32; using System; using System.Collections.Generic; using System.ComponentModel; u…

余额宝好日子到头,以后不能随存随取了!

最近几日,支付宝、微信等等第三方支付机构被收编的新闻充斥着各大头条,根据网联涵(2018)42号文件相关要求,关于非银行支付机构网络支付清算平台渠道接入工作相关事宜的函中的要求代扣及直连将会被停止。对此大家都在热…

30几岁该有多少存款才算合格?

今年30几岁,定期存款没有,活期存款有一两千,贷款到是有几百万。那30岁应该有多少存款呢?我觉得这个没有一个固定的标准,因为每个人所处的地方,工作的单位,个人的资源,能力&#xff0…

C#上位机—事件传参

C#上位机—事件传参 主窗口的操作 子窗口的操作 using Microsoft.Win32; using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.IO.Ports; using System.Text; using System.Windows.Forms…

PV PVC - 每天5分钟玩转 Docker 容器技术(150)

Volume 提供了非常好的数据持久化方案,不过在可管理性上还有不足。 拿前面 AWS EBS 的例子来说,要使用 Volume,Pod 必须事先知道如下信息: 当前 Volume 来自 AWS EBS。 EBS Volume 已经提前创建,并且知道确切的 volu…

扩展协议解析

扩展协议解析 解析数据帧的类

NFS PersistentVolume - 每天5分钟玩转 Docker 容器技术(151)

上一节我们介绍了 PV 和 PVC,本节通过 NFS 实践。 作为准备工作,我们已经在 k8s-master 节点上搭建了一个 NFS 服务器,目录为 /nfsdata: 下面创建一个 PV mypv1,配置文件 nfs-pv1.yml 如下: ① capacity 指…

最优化算法——常见优化算法分类及总结

之前做特征选择,实现过基于群智能算法进行最优化的搜索,看过一些群智能优化算法的论文,在此做一下总结。 最优化问题在生活或者工作中存在各种各样的最优化问题,比如每个企业和个人都要考虑的一个问题“在一定成本下,如…

DSP之CMD文件

DSP之CMD文件 用户希望将某一段,尤其是自定义段,放在什么存储器的什么位置,这也是链接器不知道的。为了告诉链接器,即将使用的芯片其内部存储空间的分配和程序各段的具体存放位置,这就需要编写一个配置文件&#xff0…

突发!央行确认支付宝3种违法违规行为,处罚18万元!

支付宝近段可谓是多事之秋,可把马云愁苦了,继余额宝限额、限时、银行直连被停之后,最近支付宝又被罚了。2018年3月22日中国人民银行杭州中心支行对支付宝做出行政处罚决定,支付宝(中国)网络技术有限公司因七项违规行为被合计罚款共…

杭州刚公布完摇号卖房新政,隔天就来个百亿地王,大家怎么看?

为了响应房子是用来住的而不是用来炒的的知指导,目前各地对如何限制房价使了浑身解数,各种手段不断推出,其中近段最热门的调控手段就是摇号卖房。目前已经有6个城市实施摇号卖房的政策,分别是上海、南京、长沙、成都、杭州、西安。…

DSP之寄存器映射和CDM文件

DSP之寄存器映射和CDM文件 RAM:程序运行速度快,关掉电源,程序会丢失。 Flash:程序运行速度慢,关掉电源,程序不会丢失。 所以,程序一般存到Flash中,在运行的时候,由CPU将…

为何穷人玩股票绝大多数会赔钱?

大家身边有炒股的朋友吗?他们是赚了还是赔了呢?反正小编我身边有几个炒股的穷朋友,都是几万块钱的玩,结果玩了几年也没有见到发大财的,而且大部分人都亏钱了。其实玩股票赢钱、亏钱都很正常,富人也有亏钱的…