当前位置: 首页 > news >正文

C# 串口通信(通过serialPort控件发送及接收数据)

连接串口

  • 界面设计
  • 打开串口
  • 发送数据
    • 通过文件发送
    • 发送数据
  • 接收数据

首先可以在 工具箱中搜索serialport,将控件拖到你的Winfrom窗口。

界面设计

在这里插入图片描述

打开串口

 private void Connect_Click(object sender, EventArgs e){serialPort1.PortName = comboBox2.Text;//端口名serialPort1.BaudRate = int.Parse(comboBox3.Text);//比特率serialPort1.StopBits = StopBits.One;//停止位switch (comboBox4.Text)//校验位{case "None":serialPort1.Parity = Parity.None;break;case "Odd":serialPort1.Parity = Parity.Odd;break;case "Even":serialPort1.Parity = Parity.Even;break;case "Mark":serialPort1.Parity = Parity.Mark;break;}serialPort1.DataBits = int.Parse(comboBox5.Text);//数据位try{serialPort1.Open();//打开串口bool b = serialPort1.CtsHolding;//CTS状态label8.Text = b ? "1" : "0";if (checkBox2.CheckState == CheckState.Checked)//判断是否勾选RTS{serialPort1.RtsEnable = true;}}catch (Exception ex){MessageBox.Show(ex.Message);}button3.Text=serialPort1.IsOpen ? "关闭串口" : "打开串口";}

发送数据

liens为全局变量,可以直接在richTextBox里输入,然后再点发送。

通过文件发送

 private void OpenFile_Click(object sender, EventArgs e){OpenFileDialog openFileDialog = new OpenFileDialog();openFileDialog.InitialDirectory = "d:\\";//设置默认打开路径// 设置文件过滤选项openFileDialog.Filter = "文本文件 (*.txt)|*.txt|所有文件 (*.*)|*.*";// 设置标题openFileDialog.Title = "选择文件";// 显示对话框DialogResult result = openFileDialog.ShowDialog();// 确认用户没有取消操作if (result == DialogResult.OK){// 获取选中的文件路径string filePath = openFileDialog.FileName;comboBox1.Items.Add(filePath);liens = File.ReadAllText(filePath);//读取文件comboBox1.Text = filePath;richTextBox1.Text=liens;}}

发送数据

private void Send_Click(object sender, EventArgs e)
{serialPort1.WriteLine(liens);
}

接收数据

private void serialPort1_DataReceived(object sender, SerialDataReceivedEventArgs e)
{int len = serialPort1.BytesToRead;//获取可以读取的字节数byte[] buff = new byte[len];//创建缓存数据数组serialPort1.Read(buff, 0, len);//把数据读取到buff数组if (checkBox1.Checked)//是否勾选十六进制显示{richTextBox1.AppendText(BitConverter.ToString(buff).Replace('-', ' ') + '\n');//转成十六进制显示}else{richTextBox1.AppendText(Encoding.ASCII.GetString(data));//转成ASCII码显示richTextBox1.AppendText("\n");}
}

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • Android 实现屏幕录制
  • GCKontrol-GCAir工具链在飞机功能系统设计中的应用
  • 安装 electron 报错解决
  • 你有GitHub Models,我有CSGHub和StarShip
  • 谷粒商城实战笔记-105~107-全文检索-ElasticSearch-入门
  • Mac OS平台,利用 gifify 制作gif教程
  • RK3568笔记五十:SPI通信-回环测试
  • vue3表格组件formatter
  • 视频超压缩保持质量 ffmpeg
  • 该设备几乎不消耗任何功率就能发射无线电波,且不违反物理定律
  • 掌握Python爬虫中的BeautifulSoup4:从环境搭建到实战演示
  • conda操作总结
  • 【数据湖与数据仓库】数据湖与数据仓库的区别与应用
  • flutter 使用正则表达式进行日期、时间格式化
  • ETL工程师角度下的SQL优化
  • php的引用
  • ComponentOne 2017 V2版本正式发布
  • CSS 三角实现
  • Nacos系列:Nacos的Java SDK使用
  • PHP那些事儿
  • Python3爬取英雄联盟英雄皮肤大图
  • React-Native - 收藏集 - 掘金
  • React中的“虫洞”——Context
  • Spring核心 Bean的高级装配
  • sublime配置文件
  • Synchronized 关键字使用、底层原理、JDK1.6 之后的底层优化以及 和ReenTrantLock 的对比...
  • Yeoman_Bower_Grunt
  • 关于 Linux 进程的 UID、EUID、GID 和 EGID
  • 基于HAProxy的高性能缓存服务器nuster
  • 利用DataURL技术在网页上显示图片
  • 罗辑思维在全链路压测方面的实践和工作笔记
  • ​【C语言】长篇详解,字符系列篇3-----strstr,strtok,strerror字符串函数的使用【图文详解​】
  • # 服务治理中间件详解:Spring Cloud与Dubbo
  • # 消息中间件 RocketMQ 高级功能和源码分析(七)
  • #《AI中文版》V3 第 1 章 概述
  • #基础#使用Jupyter进行Notebook的转换 .ipynb文件导出为.md文件
  • (0)Nginx 功能特性
  • (3)nginx 配置(nginx.conf)
  • (AngularJS)Angular 控制器之间通信初探
  • (C++)栈的链式存储结构(出栈、入栈、判空、遍历、销毁)(数据结构与算法)
  • (层次遍历)104. 二叉树的最大深度
  • (附源码)spring boot北京冬奥会志愿者报名系统 毕业设计 150947
  • (附源码)基于SpringBoot和Vue的厨到家服务平台的设计与实现 毕业设计 063133
  • (附源码)小程序儿童艺术培训机构教育管理小程序 毕业设计 201740
  • (论文阅读32/100)Flowing convnets for human pose estimation in videos
  • (每日持续更新)信息系统项目管理(第四版)(高级项目管理)考试重点整理第3章 信息系统治理(一)
  • (免费领源码)Java#Springboot#mysql农产品销售管理系统47627-计算机毕业设计项目选题推荐
  • (四)【Jmeter】 JMeter的界面布局与组件概述
  • (四)activit5.23.0修复跟踪高亮显示BUG
  • (一)spring cloud微服务分布式云架构 - Spring Cloud简介
  • (原創) 人會胖會瘦,都是自我要求的結果 (日記)
  • (转) Face-Resources
  • .NET Core6.0 MVC+layui+SqlSugar 简单增删改查
  • .NET 分布式技术比较
  • .NET+WPF 桌面快速启动工具 GeekDesk