C#实现串口通讯程序

VIPC#实现串口通讯程序
1、自动获取本地串口。2、根据传入串口基本属性参数打开串口。3、串口数据的发送接收功能(ASCII和HEX格式)。4、ASCII和HEX相互转换。csharp体验AI代码助手代码解读复制代码[Category("UserProperty")] [Description("轮廓半径")] public int Radius { get => radius;
开通可读全文 ·1.7k 人阅读
最低0.47元/天 解锁文章
  • 前言

    • 基本步骤:

      •  1、自动获取本地串口。
      •  2、根据传入串口基本属性参数打开串口。
      •  3、串口数据的发送接收功能(ASCII和HEX格式)。
      •  4、ASCII和HEX相互转换。
    • SerialPort类:

      • 属性
        •  PortName: 获取或设置通信端口。
        •  BaudRate: 获取或设置波特率。
        •  Parity: 获取或设置校验协议。
        •  DataBits: 获取或设置每个字节的标准数据位长度。
        •  StopBits: 获取或设置每个字节的标准停止位数。
        •  IsOpen: 获取一个值,指示 SerialPort 对象的打开或关闭状态。
      • 方法
        •  Open(): 打开一个新的串行端口连接。
        •  Close(): 关闭端口连接。
        •  ReadExisting(): 读取 SerialPort 对象的流和输入缓冲区中所有立即可用的字节。
        •  ReadLine(): 一直读取到输入缓冲区中的 NewLine 值。
        •  Write(string text): 将字符串写入串行端口。
        •  WriteLine(string text): 将字符串和 NewLine 值写入输出缓冲区。
    • 具体实现:

      • 案例内容大概如下:
        •  1、创建一些使用到的字段
        •  2、窗体初始化、加载
        •  3、创建方法实现通讯状态、数据接收、消息更新、控件状态更新
        •  4、创建按钮事件实现:打开串口、发送数据
        •  5、发送格式变更、以ASCII或HEX格式发送
        •  6、创建串口参数变更方法
        •  7、创建数据发送HEX、数据转换的方法
        •  8、创建自定义控件、用于显示串口打开状态

  • 运行环境

    •  操作系统: Win11
    •  编程软件: Visual Studio 2022
    •  .Net版本:.Net Framework 4.8.0

  • 一、预览

    • 运行效果

  • 二、代码

    • (一)使用到的字段

     

    csharp

    体验AI代码助手

    代码解读

    复制代码

    #region 字段 SerialPort serialPortTool; //串口 System.Windows.Forms.Timer timer; //状态定时器 private bool IsConnected = false; //连接状态 private string portName = "COM1"; // 串口号 private int baudRate = 9600; // 波特率 private Parity parity = Parity.None; // 校验位 private int dataBits = 8; // 数据位 private StopBits stopBits = StopBits.One; // 停止位 //波特率数组 public int[] _BaudRateArray = { 9600, 14400, 19200, 38400, 57600, 115200}; //数据位数组 public int[] _DataBitArray = { 8, 7, 6, 5 }; States runState = States.None; #endregion
  • (二)窗体初始化、加载

     

    csharp

    体验AI代码助手

    代码解读

    复制代码

    #region 窗体初始化、加载 public FrmSerialPort() { In
VIP C#实现串口通信解析 串口通信(Serial Communications)是指外设和计算机间通过数据信号线、地线等按位(bit)进行传输数据的一种通信方式,属于串行通信方式,能够实现远距离通信,长度可达1200米。 开通可读全文·1w 阅读·10 点赞·162 收藏 阅读全文

相关推荐

C#实现串口通讯

串口通信

weixin_48718796的博客 5715

c#处理基于Modbus协议的串口通讯程序

下位机是Modbus协议,上位机是用c#写的串口通讯程序。 VS工具箱有自带的串口通讯控件;或者直接用代码SerialPort serialPort = new SerialPort();生成串口通讯的对象,但是记得要绑定收到数据的响应事件。(本文用的是第二个方式) 代码如下: 1. 打开串口 SerialPort serialPort = new SerialPort(); priva

liuxufeiyang000的专栏 2万+

C#串口助手实现两个串口相互通讯

C#串口助手实现两个串口相互通讯 该软件可以实现两个串口之间的相互收发信息,如果没有硬件设备,可以下载一个虚拟的串口软件 虚拟出一对串口进行调试 虚拟串口软件下载 直接下载一个VSPD 资源链接:https://pan.baidu.com/s/1V1Z5r6o6Iek507tzwwcP5A 提取码:mmor 1)点击vspd.exe进行安装: 2)vspd.exe安装成功之后,把该vspdctl.dll文件替换为vspd.exe安装目录下的同名文件,完成破解 3)运行桌面创建的vs

uiopmn1的博客 3733

C#实现串口通讯实时显示波形并实现平滑滤波和50Hz滤波

     实现单片机与电脑通讯,通过串口接收。 主界面: 绘制界面: 在主界面设置串口号以及波特率,点击打开串口,再点击波形显示,即可显示通过串口过来的数据波形。 主界面源码: using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using Syst...

qq_41017661的博客 7823

C#串口通讯实战指南

本文介绍了使用C#的System.IO.Ports命名空间实现串口通讯的方法。串口通讯作为重要的数据传输方式,具有全双工、点对点等特点。文章详细讲解了SerialPort类的核心属性、对象初始化、可用串口检测、状态监控以及资源安全释放等关键操作。通过示例代码展示了如何创建串口连接、检查端口状态,并实现安全的Dispose模式,为开发稳定可靠的串口通讯程序提供了实用指导。

冰茶的博客 1897

C#实现modbus通讯汇总

这篇文章是modbus通讯的串口(RTU)、网口(TCP)通讯的记录,以下都是使用NModbus4第三方库实现,能进行读写数据。

qq_46057792的博客 1585

C# USB转串口突然拔出检测解决方案

最近做虚拟串口通讯程序(IRDA-USB-串口),由于是USB设备所以在通讯过程中有可能把串口拔出,程序需要实时检测到串口拔出。并把正在执行的任务结束关闭串口,给出提示。由于程序是C#做的,C#在操作底层比较不方便,需要调用较多的API函数。开始的方法是先捕获USB设备的拔出,再查找HKEY_LOCAL_MACHINE/HAEDWARE/DEVICEMAP/SERialCOM中的串口是否已经不存在

秋的专栏 7250

C#进行串口应用开发如何通过串口下载程序在设备上进行远程调试

通过串口进行远程调试和下载程序到设备上是一种常见的需求,特别是在嵌入式系统开发中。下面是一个详细的分析,以及一个示例代码,帮助你通过C#进行串口通讯来实现这种功能。

zhangzhechun的专栏 569

C#实现Trimble全站仪串口通讯:从基础到实践

本文还有配套的精品资源,点击获取 简介:Trimble全站仪是精密测量工具,支持通过C#实现串口通信。本内容涵盖串口通信原理、C# SerialPort类使用、以及Trimble全站仪的特定通讯协议和数据解帧方法。通过实例化SerialPort对象、配置参数、编写自定义解帧函数和利用DataReceived事件处理数据,可构建稳定可靠的通讯程序,提升测绘自动化。 1....

weixin_33068055的博客 1479

MAC 青花瓷(Charles)爪机HTTPS 抓包

前段时间跟之前的产品小姐姐聊天,小姐姐说开发让她抓包帮忙看下数据,然而自己又不会,那就来写一篇简易版的教程 冲冲冲! 手上只有mac电脑跟iPhone手机,只做苹果手机的抓包,android7.0以上版本也没法通过正常的抓htts的包,让安卓开发装个后门吧,不是安卓开发并不知道是啥,连上USB之后访问chrome://inspect/#devices就能很简单的抓包 一、准备工具等 青花瓷...

Promise的博客 1606

可变形卷积(Deformable Conv)原理解析与torch代码实现

图6为可变形卷积示意图。图1所示为普通卷积在输入特征图上进行卷积计算的过程,卷积核大小为3*3,在输入特征图尺寸为7*7上进行卷积,将卷积核权重与输入特征图对应位置元素相乘并求和得到输出特征图元素,按一定方式滑动窗口就能计算得到整张输出特征图。图6所示,在input feature map上普通卷积操作对应卷积采样区域是一个卷积核大小的正方形(绿框),而可变形卷积对应的卷积采样区域为一些蓝框表示的点,这就是可变形卷积与普通卷积的区别。先来一张图感受一下,图3为标准卷积与可变形卷积的卷积示例。

panghuzhenbang的博客 5万+

动态规划法:n*m方格前进问题

在一个n*m的方格中,m为奇数,放置有n*m个数,方格中间的下方有一人,此人可按照正前方相临的五个方向(方格)前进但不能越出方格。人每走过一个方格必须取此方格中的数。要求找到一条从底到顶的路径,使其数相加之和为最大。输出和的最大值。 算法设计: 可以使用动态规划方法,从顶部开始,将第二排的每个数加上顶部第一排的最优解,将6排的问题缩小为5排的问题,然后重复该操作,直到底部最后一排,此时

Winifred_1997的博客 4672

SAP 生产订单工序删除状态撤回简介

2、我们在前台对于生产订单的状态一个是在生产订单抬头中的状态,另外一个是针对上面一直在测试的是工序的状态,这个两个状态是前台可见的状态,实际生产订单还有一个组件物料的状态,这个状态是不可见的一个状态。生产订单中的0010工序中对应的组件的栏位被标识,表示有物料分配到了0010的工序中,正常情况下0010的工序被分配了工序是不应该被删除的。将已领料的工序删除掉,导致异常的发生。当物料已领料会,用户仍然把已分配的物料的工序删除掉,导致后续业务操作过程中产生异常,如下图中所示,0010的工序被打上了删除标识。

我小时候很黑的博客 1920

[解决] PDF转图片,中文乱码或显示方框的解决方案

在Java开发中,将PDF文件转换为图片是一项常见的需求,但过程中可能会遇到中文乱码或显示方框的问题。本文将深入探讨这一问题,并提供详细的解决方案,帮助开发者顺利地完成PDF到图片的转换。

DazedMen的博客 1911

【FPGA教程案例89】编译码2——使用vivado核实现RS信道编译码

RS编码,又称里所码,即Reed-solomon codes,是一种前向纠错的信道编码,对由校正过采样数据所产生的多项式有效。当接收器正确的收到足够的点后,它就可以恢复原来的多项式,即使接收到的多项式上有很多点被噪声干扰失真。

FPGA/MATLAB学习教程/源码/项目合作开发 3533

把机器学习“搬进”数据库:SAP HANA PAL 快速上手与 ABAP AMDP 实战

摘要:本文探讨了SAP HANA PAL(Predictive Analysis Library)在企业数据分析中的实践应用。PAL通过将机器学习算法下推到数据库内部执行,有效解决了大数据量场景下的数据搬运瓶颈和治理成本问题。文章详细介绍了PAL的核心功能(包括聚类、分类、回归等10类算法)、使用前提(版本、组件和权限要求)以及通过AMDP实现ABAP与PAL集成的技术方案。重点阐述了参数表设计理念和两个典型应用场景:利用PageRank算法分析企业权限网络关系,以及通过PAL_SCALE进行特征预处理。文

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 5728

【机器学习系列】一文搞懂 零知识机器学习(zkML)

位串行乘法器:实现了Booth编码优化,将乘法分解为移位-加法序列,减少部分积数量50%:模拟脉动阵列的2D网格计算,支持分块(tiling)策略优化内存层次卷积映射:提供直接卷积(行缓冲+滑动窗口)和im2col+GEMM两种硬件映射策略。

VectorShift的博客 144

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

上一篇: 吃透 Java 死锁,一篇就够。
下一篇: 深入浅出 Rust:函数、控制流与所有权核心特性解析

双11狂欢大促

盲盒赢 定制羽绒服

开启惊喜盲盒,抽取你的专属好礼

— 惊喜奖品抢先看 —
Java进阶八股文
博客等级 码龄2年 5009粉丝 1221原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值