В настоящее время я работаю над проектом, который отправляет данные из приложения Java через последовательный порт на arduino.
Проблема у меня следующая: мне нужно разбить Integer на 2 байта, а затем объединить их в Integer в Arduino. Но наоборот (Arduino- > java) только вызывает у меня проблемы. Часть arduino не так уж трудна и работает как шарм, но, несмотря на то, что я просматриваю соответствующие вопросы и ответы, уже опубликованные здесь, я не могу полностью понять, как правильно объединить байты вместе в int.
Вот код Java, который просто отказывается работать:
int in = 500;
byte[] data = new byte[2];
data[0] = (byte)(in & 0xFF);
data[1] = (byte)((in >> 8) & 0xFF);
int res = data[0] | (data[1] << 8);
Консоль распечатывается из этого:
data[0] = -12
data[1] = 1
res = -12
но мне нужно res, чтобы быть 500!