这原始的单片机发的 30 32 32 37 5A 30 32 36 35 36 36 35 35 31 FF FF
这是C#收到的       0227Z026566551??
可以看到不是以ASSIC码显示....这是程序...怎么转呀
            string read = Port.ReadExisting();
            this.textBoxRead.Text = read;  

解决方案 »

  1.   

    你想装成HEX显示吗?
    显示成30 32 32 37 5A 30 32 36 35 36 36 35 35 31 FF FF 是吧?
      

  2.   

    看看这个
    http://blog.ednchina.com/azmao/141837/message.aspx
      

  3.   

    很显示十六进制30就是0,32就是2,所以应该如下:
    private static string getByteStr(byte[] array)
    {
        string retstr = null;
        for (int i = 0; i < array.Length; i++)
        {
            retstr += (char)array[i];
        }
        return retstr;
    }
      

  4.   

    唉,真傻了,如下的方法就可以了:string retstr = System.Text.Encoding.ASCII.GetString(array);
    输出:0227Z026566551??
      

  5.   

    是这个意思.....但我串口接到的是STRING 类型,....怎么弄呀
    最终想显示到this.textBoxRead.Text 里...请高手帮帮忙...小弟是初学都string read = Port.ReadExisting(); 
    this.textBoxRead.Text = read;  
      

  6.   

    我最终想在this.textBoxRead.Text 中显示30 32 32 37 5A 30 32 36 35 36 36 35 35 31 FF FF 
      

  7.   

    单片机发的         30 32 32 37 5A 30 32 36 35 36 36 35 35 31 FF FF 
    是C#收到的         0227Z026566551?? 
    我要实现C#显示     30 32 32 37 5A 30 32 36 35 36 36 35 35 31 FF FF自已顶下哈....... 
      

  8.   

                string read = Port.ReadExisting(); 
                this.textBoxRead.Text = read;
     LZ用这个试试,
               
                this.textBoxRead.Text = read.ToString("x")//转为16进制
      

  9.   

     改变你的接收方法,使用字节接收而不是字符接收。                
                        //   接收缓冲区中数据的字节数
                    int int_Len = serialPort1.BytesToRead;                //   接收数据
                    byte[] bytes = new byte[int_Len];
                   serialPort1.Read(bytes, 0, int_Len);
     
      

  10.   

    然后使用下面的函数转成string给TEXTBOX就好了。static char[] hexDigits = {
            '0', '1', '2', '3', '4', '5', '6', '7',
            '8', '9', 'A', 'B', 'C', 'D', 'E', 'F'};        public static string ToHexString(byte[] bytes)
            {
                char[] chars = new char[bytes.Length * 2];
                for (int i = 0; i < bytes.Length; i++)
                {
                    int b = bytes[i];
                    chars[i * 2] = hexDigits[b >> 4];
                    chars[i * 2 + 1] = hexDigits[b & 0xF];
                }
                return new string(chars);
            }
      

  11.   

    bytes转成十六进制有标准的方法:
    //   接收缓冲区中数据的字节数
    int int_Len = serialPort1.BytesToRead;
    //   接收数据
    byte[] bytes = new byte[int_Len];
    serialPort1.Read(bytes, 0, int_Len);Console.WriteLine(BitConverter.ToString(bytes).Replace('-', ' '));
      

  12.   

    Tostring(2X)16进制显示,而且是2位的
      

  13.   

    把清洁工的改一下string read = Port.ReadExisting();
                byte[] byts = Encoding.ASCII.GetBytes(read);
                Console.WriteLine(BitConverter.ToString(byts).Replace('-',' '));