发送';F2';通过串行端口c#

发送';F2';通过串行端口c#,c#,serial-port,C#,Serial Port,我有一种解析器,它接收一个配置文件,并解析其数据。一种可能的数据类型是十六进制字符。我正在格式化十六进制字符ie(0D),对于大多数十六进制字符,我不会遇到问题。但是,对于'F2'键,我无法发送它。 以下代码段是我如何解析十六进制字符的: hex = hex.Replace("-", ""); byte[] raw = new byte[hex.Length / 2]; for (int i = 0; i < raw.Length; i++) { raw[i] = Convert

我有一种解析器,它接收一个配置文件,并解析其数据。一种可能的数据类型是十六进制字符。我正在格式化十六进制字符ie(0D),对于大多数十六进制字符,我不会遇到问题。但是,对于'F2'键,我无法发送它。 以下代码段是我如何解析十六进制字符的:

hex = hex.Replace("-", "");
byte[] raw = new byte[hex.Length / 2];
for (int i = 0; i < raw.Length; i++)
{
     raw[i] = Convert.ToByte(hex.Substring(i * 2, 2), 16);
}
return Encoding.GetEncoding("iso-8859-1").GetString(raw);     
hex=hex.Replace(“-”,”);
字节[]原始=新字节[hex.Length/2];
for(int i=0;i

我通过Gold x usb串行传输数据到串行。我的所有数据都在传递,包括'\n\r'。对于'F2',我使用'A1'的十六进制值

从字节数组中形成一个字符,然后将字符转换为字符串,并使用UTF-8对该字符串进行编码,为我解决了一个问题

已看到该帖子的可能重复并尝试了它。。。这对我不起作用,但这并不意味着你应该发布一个重复的问题。正如另一个答案所说,“没有标准的方式将功能键发送到串行端口。”请查看您试图与之通信的设备的规格。如果问题是“如何通过串行端口发送0xa1”,这是完全不同的-但答案只是
SerialPort.WriteByte(0xa1)
(或者使用
.Write(byte[],int,int)
)的等效调用,我确实使用了SerialPort.WriteByte(0xa1)但我最终在接收端接收到一个“?”0xA1在大多数字符集中是不可打印的。我不知道你期望它会以什么样的形式出现。看见