如何在C#中通过串口发送STX和ETX?

时间:2014-03-29 17:10:22

标签: c# arrays serial-port hex

我正在尝试从串口接收链,并将其写入另一个串口 好吗? 接收数据没有问题,但是当我尝试将完全相同的字节数组写入另一个端口时,STX和ETX消失了,我真的无法理解为什么。
链格式是:

<STX><VALUE><ETX><LRC>

当将字节数组转换为字符串时,02和03,STX和ETX的值仍然存在,但是当我将字节数组发送到另一个端口时,它只发送<VALUE><LRC>

示例:

收到链字节数组,转换为字符串。

026131300360

ascii表示

.a10.`

ascii在第二个端口收到

a10`

我的代码

Queue<Byte[]> Port1Tail= Port1.lista; // a queue of byte arrays received

if (volumTail.Count > 0)
            {
                Byte[] cadena = Port1Tail.Dequeue(); 
                StringBuilder tramabuild = new StringBuilder();
                foreach (Byte b in cadena)
                {
                    tramabuild.Append(((Int16)b).ToString("x"));
                }
                String trama = tramabuild.ToString();  
                Byte[] cale = ToByteArray(trama);

                inputlistbox.Items.Insert(0, trama); 


                Port2.Send(cale, 0, cale.Length);
                //Port2.Send(cadena, 0, cadena.Length);

            }

正如您所注意到的,我已经尝试完全按照收到的方式发送收到的链,甚至尝试将其转换为字符串,然后返回到具有完全相同结果的字节数组。

有人可以告诉我,我做错了什么?

0 个答案:

没有答案