serialPort1.Read(rxBytes, 0, rxByteLength);//存至数组这样读后第一个是空格,每次转到string后显示一个3F,怎么在读的时候就设置不读取第一个空格呢

解决方案 »

  1.   

    string.Trim()消除字符串前后的空格
      

  2.   

    如果说每次第一个都是空格的话,那干脆不要读第一个好啦
    serialPort1.Read(rxBytes,1,rxByteLength),从第2个字节开始读取,这样就不读空格了
      

  3.   

     rxByteLength = serialPort1.BytesToRead;//获得长度
                    if (rxByteLength > 0)
                    {
                        rxBytes = new byte[rxByteLength];
                        serialPort1.Read(rxBytes, 0, rxByteLength);//存至数组
                        rxNumber += rxByteLength;//rx计数器加1
                        textBoxRx.Text = "RX:" + rxNumber.ToString();//显数计数
                        if (button停止显示.Text == "停止显示")
                        {
                            if (checkBox16进制显示.Checked)
                            {
                                for (int i = 0; i < rxByteLength; i++)
                                {这要在那个地方加Trim?我想在read的时候就加上,可是怎么加啊?
      

  4.   

    楼主。3F在ASCII里对应的是“?”,不是空格哎
    你第一个字节对应的字符是“?”,不是空格
      

  5.   

    string.Trim()只能对字符串进行操作,你读的时候,是写到数组里,必须要先把数组转换成string,才可以用Trim()
      

  6.   

    没搞明白你到底想干嘛,你要是想去掉空格,就用1楼说的办法好了
    你要是想读取的时候不读第一个字节,就用serialPort1.Read(rxBytes,1,rxByteLength)
    串口是发什么接收什么,没干扰的话不大可能会多出东西来吧
      

  7.   

    rxByteLength 这里又空格吧?
    rxByteLength = serialPort1.BytesToRead;//获得长度 这里获取到的是字符串吗?
      

  8.   

    转成字符串后,利用public string Replace(
                 string oldValue,
                 string newValue
                      )
    方法,替换一下,再读取。
      

  9.   


    会不会是你发送的内容不在ASCII码表里,但是你又用的ASCII编码发送,导致将超出127的ASCII值编码为‘?’字符