private void button12_Click(object sender, EventArgs e) //start datastream
        {            SendBuffer[0] = TAG_CMD;
            SendBuffer[1] = 0x05;
            SendBuffer[2] = CMD_GET_PARAM_VALUE;
            SendBuffer[3] = PARAM_CURRENT_SPEED;
            SendBuffer[4] = (byte)(checksum(4));
            this.serialPort1.Write(SendBuffer, 0, SendBuffer[1]);            SendBuffer2[0] = TAG_CMD;
            SendBuffer2[1] = 0x05;
            SendBuffer2[2] = CMD_ENABLE_DATA_ITEM;
            SendBuffer2[3] = 0x07;
            SendBuffer2[4] = (byte)(checksum(4));
            this.serialPort1.Write(SendBuffer, 0, SendBuffer[1]);
        }
断点时SendBuffer和SendBuffer2里的数值都正常 
可是电机只对SendBuffer有反应 请问问题出在哪
   

解决方案 »

  1.   

    LZ 明明你自发送了this.serialPort1.Write(SendBuffer, 0, SendBuffer[1]);
    没有发送sendbuffer2啊
      

  2.   

    SendBuffer[0] = TAG_CMD;
    SendBuffer[1] = 0x05;
    SendBuffer[2] = CMD_GET_PARAM_VALUE;
    SendBuffer[3] = PARAM_CURRENT_SPEED;
    SendBuffer[4] = (byte)(checksum(4));
    this.serialPort1.Write(SendBuffer, 0, SendBuffer[1]);
    System.Threading.Thread.Sleep(50);  //这里适当延时
    SendBuffer2[0] = TAG_CMD;
    SendBuffer2[1] = 0x05;
    SendBuffer2[2] = CMD_ENABLE_DATA_ITEM;
    SendBuffer2[3] = 0x07;
    SendBuffer2[4] = (byte)(checksum(4));
    this.serialPort1.Write(SendBuffer2, 0, SendBuffer2[1]); //这里发送错了
      

  3.   

     private void button12_Click(object sender, EventArgs e) //start datastream
            {            SendBuffer[0] = TAG_CMD;
                SendBuffer[1] = 0x05;
                SendBuffer[2] = CMD_GET_PARAM_VALUE;
                SendBuffer[3] = PARAM_CURRENT_SPEED;
                SendBuffer[4] = (byte)(checksum(4));
                this.serialPort1.Write(SendBuffer, 0, SendBuffer[1]);            SendBuffer2[0] = TAG_CMD;
                SendBuffer2[1] = 0x05;
                SendBuffer2[2] = CMD_ENABLE_DATA_ITEM;
                SendBuffer2[3] = 0x07;
                SendBuffer2[4] = (byte)(checksum(4));
                this.serialPort1.Write(SendBuffer, 0, SendBuffer[1]);
            }发来发去都是以个数组当然另一个没反应了。
      

  4.   

    this.serialPort1.Write(SendBuffer, 0, SendBuffer[1]);
      

  5.   

    加2后出错
    错误说明:
    错误 1 与“System.IO.Ports.SerialPort.Write(char[], int, int)”最匹配的重载方法具有一些无效参数
    错误 2 参数“1”: 无法从“int[]”转换为“char[]”