前言:公司的上位机打不开串口,发送的时候设备总是关机,因为和这个同事关系比较好,编写这款软件是用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包
这里特别注意:使用默认的库会导致有些设备串口打不开,所以替换掉默认的都可以使用(网上大多数打不开也是这种情况)
运行查看
问题解决
感言:很多时候,发生了问题,我们应该思考一下问题的根本,尝试换一下类库,或者使用别的方式会有意想不到的结果