C#:SerialPort通信

2 c# hex serial-port

我想写一下serialport com1

01 00 00 02 37 30 04

这是初始化的命令..

当我写一个char数组或字节数组

 c[0] = (char)01;//
 c[1] = (char)00;
 c[2] = (char)00;
 c[3] = (char)02;
 c[4] = (char)37;
 c[5] = (char)30;
 c[6] = (char)04;
 serialPort 1.Write(c, 0, c.Length);

byte[] bb1 = System.Text.Encoding.Default.GetBytes(c);
Run Code Online (Sandbox Code Playgroud)

我可以在串口监视器中看到:01 00 00 02 25 1E 04显然37被转换为25和30到1E ...我如何通过37和30而不是十六进制值...我尝试了各种方式...

Guf*_*ffa 7

串口监视器以十六进制显示值,因此它们与您准确发送的值匹配.没有转换,十进制值37是十六进制的25,十进制值30是十六进制的1E.

在创建阵列时,使用十六进制表示法(0x)作为文字值,然后您会看到值在串行端口监视器中按预期出现:

byte[] c = new byte[] {
   0x01,
   0x00,
   0x00,
   0x02,
   0x37,
   0x30,
   0x04
};

serialPort 1.Write(c, 0, c.Length);
Run Code Online (Sandbox Code Playgroud)