日期:2014-05-17  浏览次数:20897 次

C#串口通信从缓存中取出的数据的问题
本人用C#刚接触串口通信不久,在网上找了一些串口通信的资料,按照资料中的讲解做了个串口通信程序,但是在和下位机通信的时候接收到的数据总是不对,不知道是什么原因,哪位懂C#串口通信的大侠能指点下吗?
正确的数据格式应该是这样的:F0 55 AA 04 07 0D 01 00 02 00 03 00 04 0D 00 0F 00 13 00 04 00 14 00 98 00 03 00 0B 00 83 00 7C 00 07 00 7F 00 80 00 88 9C 9C 但是不知道为什么我用程序中的代码接收到的数据格式却是这样的:AA AA 00 00 00 00 00 00 00 AA AA 04 04 04 0F 00 00 00 3F 3F 3F 3F 3F 3F 3F 3F 3F 3F 3F 3F 3F 3F 3F 3F 3F 3F 3F 3F 3F 3F 3F 3F 3F 3F 3F 3F 3F 3F 3F 3F 3F 3F 3F 3F 。哪位大侠能告诉我问题出在哪里吗?
下面是我的发送程序的代码:
  //处理数字转换,目的是将输入的字符按空格、“,”等分组,以便发送数据时的方便(此处转的比较麻烦,有高见者,请指点!)  
                comm.RtsEnable = true;
                //comm.Parity = Parity.Mark;
                Thread.Sleep(2);
               // comm.Parity = Parity.Mark;

                
               
                
                byte[] byteBuffer2 = new byte[9];
                byteBuffer2[0] = 0xaa;
                byteBuffer2[1] = 0xaa;
                byteBuffer2[2] = 0x04;
                byteBuffer2[3] = 0x04;
                byteBuffer2[4] = 0x04;
                byteBuffer2[5] = 0x0f;
                byteBuffer2[6] = 0x00;
                byteBuffer2[7] = 0x00;
                byteBuffer2[8] = 0x00;
                
                String strSend2 = byteBuffer2[0].ToString("X2") + " " + byteBuffer2[1].ToString("X2") + " " + byteBuffer2[2].ToString("X2") + " " + byteBuffer2[3].ToString("X2") + " " + byteBuffer2[4].ToString("X2") + " " +