Как отправить int[][] как массив байтов через Serial
У меня есть int arr[50][2];
и мне нужно отправить его через Serial. Но я не знаю, как это сделать. Возможно ли это?
@JVic, 👍0
1 ответ
Лучший ответ:
▲ 1
В комментарии вы пишете, что принимающая сторона тоже Arduino. Тогда вы можете отправлять данные в двоичном виде.
Чтобы отправить массив:
Serial.write((byte*) arr, sizeof(arr));
(byte*)
преобразует ячейку памяти arr в массив байтовsizeof
возвращает размер массива в байтах
Чтобы получить двоичные данные, необходимо знать размер. Здесь мы считываем 100 16-битных целых чисел:
Serial.readBytes((byte*) arr, 100 * sizeof(short));
Функция readBytes — одна из «синхронизированных» функций Stream. Она ждет следующий байт (до тайм-аута).
Если одна плата Arduino 8-битная, а вторая — 32-битная, то используйте тип short
вместо int, поскольку размер типа int отличается, но тип short имеет длину 16 бит на всех платах Arduino.
,
@Juraj
Смотрите также:
- Вход Последовательного Монитора Arduino, шифрование 3DES
- Загрузка Arduino Nano дает ошибку: avrdude: stk500_recv(): programmer is not responding
- В чем разница между библиотеками Software Serial? Какая из них совместима с Arduino Nano?
- Как отправить команду AT на sim800l с помощью SoftwareSerial
- Печать массива с помощью функции печати и последовательной записи в Arduino Uno
- Проблемы с последовательной связью от Arduino к Bluetooth HC-05
- Как Arduino может проверить, подключен ли он к ПК и включен ли компьютер?
- Как отправлять и получать беззнаковые целые (unsigned int) от одного arduino к другому arduino