C# 串行通信-字节流

C# 串行通信-字节流,c#,serial-port,C#,Serial Port,我正在尝试与XM调谐器串行通信。调谐器要求从comport发送一系列字节来控制调谐器,命令流的示例如下:“B8,4D,18,30,20,B8”。最初,我尝试以字符串形式发送命令(见下文),但没有成功 _Comport.Write("B8,4D,18,30,20,B8"); 我还尝试将该命令转换为字节数组,但这也无效 System.Text.ASCIIEncoding encoding = new System.Text.ASCIIEncoding(); Byte[] bytes = en

我正在尝试与XM调谐器串行通信。调谐器要求从comport发送一系列字节来控制调谐器,命令流的示例如下:“B8,4D,18,30,20,B8”。最初,我尝试以字符串形式发送命令(见下文),但没有成功

 _Comport.Write("B8,4D,18,30,20,B8");
我还尝试将该命令转换为字节数组,但这也无效

 System.Text.ASCIIEncoding encoding = new System.Text.ASCIIEncoding();
 Byte[] bytes = encoding.GetBytes("B8,4D,18,30,20,B8");               
 _Comport.Write(bytes,0,bytes.Length);

comport打开并从调谐器接收消息;但是,我不知道如何将字节流传输到调谐器。有人能告诉我如何与调谐器进行适当的通信吗?

如果您希望以字节而不是ASCII字节表示形式发送这些信息,您可以这样做:

var bytes = new byte[] { 0xB8, 0x4D, 0x18, 0x30, 0x20, 0xB8 };
_Comport.Write(bytes, 0, bytes.Length);

数字前面的
0x
向编译器表明它们是十六进制数。

您将该数据作为字符串发送,当您使用
.GetBytes
时,您只获得引号中的字符串表示字节。您需要发送一个实际的字节数组。C#实际上有字节文字吗?根据这篇文章,它不是:那篇文章错了吗?那篇文章没有错,但指的是你不能在语言中显式地请求一个字节文字。由于数组的元素类型,这里的值实际上是编译时转换为字节的int文本。就像一个符咒。@error,啊,这很有道理!谢谢你的澄清。一直以来,我都在对每个元素进行数组转换。。。