C# 帮我写一个方法 传入一个字符串 将字符串转成16进制 并串口发送 serialPort1.Write
时间: 2024-11-16 17:20:13 浏览: 5
在C#中,你可以编写一个方法,接收一个字符串作为输入,将其转换为十六进制形式,然后通过`SerialPort1.Write`方法发送到指定的串口。这里是一个示例方法的实现:
```csharp
using System;
using System.IO.Ports;
using System.Text;
public void SendHexStringToSerialPort(string input)
{
if (serialPort1 == null || !serialPort1.IsOpen) // 检查串口是否已经打开
{
throw new Exception("串口未打开");
}
byte[] hexBytes = Encoding.ASCII.GetBytes(input.ToCharArray()); // 将字符串转换为字节数组
string hexString = BitConverter.ToString(hexBytes).Replace("-", ""); // 转换为无连字符的16进制字符串
try
{
serialPort1.Write(hexString.AsChars(), 0, hexString.Length); // 发送到串口
Console.WriteLine($"发送了十六进制字符串: {hexString}");
}
catch (Exception ex)
{
Console.WriteLine($"发送失败: {ex.Message}");
}
}
```
在这个方法中,首先确保串口已经被打开,然后将输入字符串转换为字节数组,再转换为无连字符的16进制字符串,最后通过`Write`方法将它发送出去。
阅读全文