C# serialport类编写串口通信程序,无法接收全部数据!通信指令发出之后,收到9个字节,而正确返回的字节数应该有59个字节。一开始我怀疑是下位机的问题,可是我用串口精灵调试的时候可以收到59个字节,所以我肯定是我程序的问题!求大神指教!!!图片是我向串口精灵的作者的提问,请大家帮我想想办法。 下面是serialport初始化:
          cbbCOMPorts.Enabled = false;
                serialPort.PortName = cbbCOMPorts.Text;
                serialPort.BaudRate = 9600;
                serialPort.Parity = Parity.None;
                serialPort.DataBits = 8;
                serialPort.StopBits = StopBits.One;
                serialPort.Encoding = Encoding.Unicode;
                serialPort.Encoding = System.Text.Encoding.Unicode;
                serialPort.Open();    这个是发出指令
    private void btn_xunjian_Click(object sender, EventArgs e)//巡检
        {
            try
            {
                btn_xunjian.Enabled = false;
                Byte[] BSendTemp = { 0x00, 0x00, 0xff, 0xff, 0xcc, 0x01, 0x01, 0x02, 0x40, 0x00, 0x44 }; //通信指令
                serialPort.Write(BSendTemp, 0, 11);//发送命令数据 
                 Thread.Sleep(1000);
                btn_xunjian.Enabled = true;               
            }
            catch (Exception ex)
            {                MessageBox.Show(ex.ToString());
            }
        }
下面是接受字节的程序
      int bytesToRead =serialPort.BytesToRead;
            byte[] BRecieve = new byte[bytesToRead];
            int bytesRead = 0;
            bytesRead = serialPort.Read(BRecieve, 0, bytesToRead);
//读取
            string str = ByteArrayToHexString(BRecieve);
            txtDataReceived.AppendText(str+Environment.NewLine);
            txtDataReceived.ScrollToCaret();
请高手帮我看看