Объединить данные Serial, разделенные новыми строками?
У меня есть два Arduino, подключенных через Bluetooth. Один отправляет строку данных, аналогичную 506:507:1\r\n
. Данные могут варьироваться примерно в пределах 0:1000:0\r\n
. У меня уже есть функции, чтобы разбить эту строку на три переменные. Я отправляю его с одного Arduino по Bluetooth, а второй Arduino получает его через последовательный
. Единственная проблема заключается в том, что второй Arduino получает следующее:
5
0
6
:
5
0
7
:
1
"\n"
В конце он добавляет пробел в конце ("\n"
) Как я могу проанализировать эти данные обратно в строку, аналогичную 506:507:1\r\n
, которая все еще может отличаться по длине?
@Starwarsfan2099, 👍0
Обсуждение1 ответ
Просто повторите шаги, которые вы предприняли на стороне отправки.
- Создайте массив
символов
достаточного размера, а также переменную индекса, чтобы отслеживать ваше положение в массиве. Строка Arduino может быть более удобной, хотя они могут вызвать множество проблем. - В цикле используйте
функцию available ()
, чтобы дождаться входящих символов и добавить их в созданный вами массив, используя переменную индекса. - Продолжайте идти в цикле, проверяя наличие этого уникального символа (возможно, \n), который сигнализирует об окончании пакета. Добавьте этот последний байт в массив, а затем завершите строку нулем или
\0
.
Если вы хотите повторно использовать массив для другого пакета, просто установите переменную индекса в 0 и продолжайте.
- Очень простая операция Arduino Uno Serial.readString()
- Из string в int, проблема
- Как преобразовать строку в шестнадцатеричный массив
- Ввод строки в массив символов
- Использование индекса для поиска нескольких символов
- Ардуино - Извлечение нескольких строк из последовательного чтения
- Отправлять строки через SPI в обе стороны, используя два Arduino UNO (ведущий к ведомому и ведомый к ведущему)
- Команда через последовательный монитор не работает должным образом в Arduino
Прочтите это: https://hackingmajenkoblog.wordpress.com/2016/02/01/reading-serial-on-the-arduino/, @Majenko
Я не понимаю, в чем проблема? Хотя ты, кажется, скучаешь по букве " р
? И я не вижу
пространствав конце? Вы можете легко сделать его строкой, добавив символы в строку, пока не получите свой конечный символ
\n? Может быть
https://www.arduino.cc/en/Serial/ReadStringUntil-это простое в использовании решение "все в одном" для вас., @Paul