从Arduino发送长整数值并从C#app接收?

从Arduino发送长整数值并从C#app接收?,c#,serial-port,arduino,type-conversion,send,C#,Serial Port,Arduino,Type Conversion,Send,正如标题所示,我正试图从arduino发送Long integer值,并从我的C#应用程序接收它 我的Arduino代码是 void setup() { Serial.begin(9600); } long n; byte b[4]; void loop() { n=500; for (int i=0; i<10; i++) { n = n+20; IntegerToBytes(n, b); for (int i=0; i<4; ++i)

正如标题所示,我正试图从arduino发送
Long integer
值,并从我的C#应用程序接收它

我的Arduino代码是

void setup()
{
  Serial.begin(9600);
}

long n;
byte b[4];

void loop()
{
  n=500;
   for (int i=0; i<10; i++)
   {
     n = n+20;
  IntegerToBytes(n, b);
  for (int i=0; i<4; ++i)
  {
  Serial.write((int)b[i]);
  }
  delay(1000);
   }  
}

void IntegerToBytes(long val, byte b[4])
{
  b[3] = (byte )((val >> 24) & 0xff);
  b[2] = (byte )((val >> 16) & 0xff);
  b[1] = (byte )((val >> 8) & 0xff);
  b[0] = (byte )((val) & 0xff);
}
调试代码后,它只将收到的值写入文本框。我只能看到一个值,如果有机会,它也会改变几次


我的
long到byte[]
byte[]到long
转换有什么问题?

位转换器进行直接映射。它不知道持久性。将赋值顺序从3,2,1,0更改为0,1,2,3

private void DataReceivedHandler(object sender, SerialDataReceivedEventArgs e)
        {
            if (mySerial.IsOpen)
            {
                int bytes = mySerial.BytesToRead;

                byte[] byte_buffer = new byte[4];
                mySerial.Read(byte_buffer, 0, 4);
                if (bytes == 4)
                {
                    SerialConverted_LONGValue = BitConverter.ToInt32(byte_buffer, 0);
                }
            }
        }