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

C#实现串口中继

前一段时间为了测试硬件产品,发现,串口转发不太方便,于是自己写了一个简单的串口中继小程序,是基于C#开发的,可以将两个串口互通,方便自己在程序的使用,目前看起来应用还可以,现在把源码放这里,供大家参考。

串口使用的是C#提供的控件,直接拖动的控件,实现了相关的事件,界面如图:

核心代码也很简单

private void serialPort1_DataReceived(object sender, SerialDataReceivedEventArgs e){Thread.Sleep(200);byte[] byteRead = new byte[serialPort1.BytesToRead];serialPort1.Read(byteRead, 0, byteRead.Length);setText1( "接收数据:" + ToHexStrFromByte(byteRead));if (serialPort2.IsOpen == true){serialPort2.Write(byteRead, 0, byteRead.Length);setText2( "发送数据:" + ToHexStrFromByte(byteRead));}}private void serialPort2_DataReceived(object sender, SerialDataReceivedEventArgs e){Thread.Sleep(200);byte[] byteRead = new byte[serialPort2.BytesToRead];serialPort2.Read(byteRead, 0, byteRead.Length);setText2( "接收数据:" + ToHexStrFromByte(byteRead));if (serialPort1.IsOpen == true){serialPort1.Write(byteRead, 0, byteRead.Length);setText1("发送数据:" + ToHexStrFromByte(byteRead));}}

为了打印使用的一个小函数:

/// <summary>/// 字节数组转16进制字符串:空格分隔/// </summary>/// <param name="byteDatas"></param>/// <returns></returns>public string ToHexStrFromByte(byte[] byteDatas){StringBuilder builder = new StringBuilder();for (int i = 0; i < byteDatas.Length; i++){builder.Append(string.Format("{0:X2} ", byteDatas[i]));}return builder.ToString().Trim();}


http://www.mrgr.cn/news/26744.html

相关文章:

  • 原生js案例之面向对象的tab切换
  • 前端层面----监控与埋点
  • APP广告变现流量售卖,选择API还是SDK对接?
  • Auracast认证:蓝牙广播音频的革新之旅
  • 水位雨量自动监测站的工作原理
  • 基于TRIZ的救援机器人轻量化设计
  • 刚刚!1区top“灌水”神刊,39天Accepted!真正的沾边可录
  • 828华为云征文|华为云Flexus云服务器X实例部署Servas自托管书签管理工具
  • 揭秘高效日志管理:解锁数据宝藏,驱动业务精准决策
  • Java集合相关面试题
  • FLash存储
  • 下一代 AI 教育:知识图谱RAG + 多智能体,听老师的话没前途,让老师听你的才是正道
  • Android Studio:驱动高效开发的全方位智能平台
  • Java wrapperr打包springboot项目到linux和Windows
  • YOLOv5改进 | 模块缝合 | C3 融合Self-Calibrated Convolutions丰富特征图【CVPR2020】
  • Python-简介
  • Web 安全基础教程:从零基础入门到精通
  • B站宋红康JAVA基础视频教程(chapter14数据结构与集合源码)
  • 2024年9月中国数据库排行榜:openGauss系多点开花,根社区优势明显
  • 【ArcGISProSDK】初识