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

记一次:使用C#创建一个串口工具

前言:公司的上位机打不开串口,发送的时候设备总是关机,因为和这个同事关系比较好,编写这款软件是用C#编写的,于是乎帮着解决了一下(是真解决了),然后整理了一下自己的笔记

一、开发环境准备

1.下载Visual Studio

下载 Visual Studio Tools - 免费安装 Windows、Mac、Linux

2.安装visualStudio

一路next

二、创建项目编写功能

1.新建c#控制台应用

文件-》新建-》项目-》c#控制台应用

其它信息,这里暂时不了解默认

创建完成

运行查看

   

2.编写串口代码并运行

在Program.cs类中添加代码

using System;
using System.Text;
using RJCP.IO.Ports;class Program
{static void Main(){using (SerialPortStream serialPort = new SerialPortStream("COM3")){// 基础功能:打开串口、配置参数serialPort.Open();serialPort.BaudRate = 115200;serialPort.Parity = Parity.None;serialPort.DataBits = 8;serialPort.StopBits = StopBits.One;// 高级功能:数据接收事件处理serialPort.DataReceived += (sender, e) => {byte[] receivedData = new byte[serialPort.BytesToRead];serialPort.Read(receivedData, 0, receivedData.Length);Console.WriteLine($"Received: {Encoding.UTF8.GetString(receivedData)}");};// 发送数据//发送命令byte[] buffer = { 0xF5, 0xF5, 0x00, 0x03, 0xB9, 0xDB, 0x6D };serialPort.Write(buffer, 0, buffer.Length);// 等待一段时间以接收数据Console.WriteLine("Waiting for data...");Console.ReadLine();}}
}

解决包的依赖,在工具-》NuGet包管理器-》管理解决方案的NuGet程序包。下载安装RJCP.SerialPortStream.Virtual包

这里特别注意:使用默认的库会导致有些设备串口打不开,所以替换掉默认的都可以使用(网上大多数打不开也是这种情况)

运行查看

问题解决

感言:很多时候,发生了问题,我们应该思考一下问题的根本,尝试换一下类库,或者使用别的方式会有意想不到的结果 

http://www.lryc.cn/news/501917.html

相关文章:

  • Android Studio新版本的一个资源id无法找到的bug解决
  • Datawhale AI冬令营(第一期)--零基础定制你的专属大模型
  • LLMs之APE:基于Claude的Prompt Improver的简介、使用方法、案例应用之详细攻略
  • 【Unity人形布娃娃插件】Ragdoll Animator
  • 跨团队协作中目标一致性至关重要
  • Excel的文件导入遇到大文件时
  • 使用字典进行动态编程
  • 机器学习02-发展历史补充
  • 全国青少年信息学奥林匹克竞赛(信奥赛)备考实战之计数器与累加器(一)
  • Android的SurfaceView和TextureView介绍
  • Scala的集合
  • 1. Flink自定义Source
  • 关于LinuxWindows双系统在八月更新后出现的问题
  • VMware:如何在CentOS7上开启22端口
  • ubuntu远程桌面开启opengl渲染权限
  • 从小学题到技术选型哲学:以智能客服系统为例,解读相关AI技术栈20241211
  • 【C语言练习(5)—回文数判断】
  • 【Rust 学习笔记】Rust 基础数据类型介绍——数组、向量和切片
  • 2024年特别报告,「十大生活方式」研究数据报告
  • R中单细胞RNA-seq分析教程 (5)
  • openpnp - Too many misdetects - retry and verify fiducial/nozzle tip detection
  • 不与最大数相同的数字之和
  • CSS学习记录11
  • D95【python 接口自动化学习】- pytest进阶之fixture用法
  • Abaqus断层扫描三维重建插件CT2Model 3D V1.1版本更新
  • 隐式对象和泛型
  • CSS的颜色表示方式
  • 单链表常见面试题 —— LeetCode
  • Pydantic中的discriminator:优雅地处理联合类型详解
  • pgloader SQLSERVER -> PostgreSQL 配置文件样例