Функция Serial.readBytesUntil() в программировании Arduino

Funkcia Serial Readbytesuntil V Programmirovanii Arduino



Когда дело доходит до программирования с помощью Arduino, существует множество функций, которые вы можете использовать для управления вводом и выводом. Одной из основных функций Arduino является Серийный.readBytesUntil() , что позволяет читать данные из потока до тех пор, пока не будет найден определенный символ. Эта функция помогает считывать данные с последовательных устройств, пока мы не найдем требуемые данные.

В этой статье функция Serial.readBytesUntil() подробно компилируется. Мы обсудим, что это такое, как это работает, и рассмотрим код Arduino, объясняющий, как использовать его в коде Arduino.

Серийный.readBytesUntil()

Функция Serial.readBytesUntil() является частью класса Arduino Serial. Эта функция считывает данные из потока, пока не найдет определенный символ или максимальное количество байтов. Как только найден символ или максимальное количество байтов, функция прекращает чтение и возвращает прочитанные данные.







Функция Serial.readBytesUntil() завершается при выполнении следующих условий:



  • Когда функция обнаруживает символ завершения
  • Определенная длина буфера достигнута
  • Установленное время прошло или тайм-аут

Эта функция не возвращает символ терминатора, она возвращает данные только до последнего символа перед терминатором. Когда эта функция возвращает 0, это означает, что достоверные данные не найдены.



Синтаксис

Функция Serial.readBytesUntil() имеет следующий синтаксис:





Серийный. readBytesUntil ( уголь терминатор, уголь * буфер, size_t длина ) ;

Параметры

Ниже приведены параметры функции Serial.readBytesUntil():

  • Персонаж Терминатора: Символ, на котором функция остановит чтение.
  • буфер: В буфере считываются последовательные данные. Допустимый тип данных — массив символов или байтов.
  • длина: Максимальное количество байтов для чтения. Допустимый тип данных инт .

Возвращаться

Количество байтов, помещенных в буфер.



Примечания: В возвращаемых данных символ завершения отбрасывается функцией Serial.readBytesUntil() из потока данных.

Пример кода Arduino

Следующий код Arduino объясняет использование Серийный.readBytesUntil() функция:

пустота настраивать ( ) {
Серийный. начинать ( 9600 ) ; // Инициализируем последовательное соединение со скоростью 9600 бод
}

пустота петля ( ) {
байтовый буфер [ 5 ] ; // Определяем массив байтов для хранения входящих данных
инт количество байтов '=' Серийный. readBytesUntil ( ' \n ' буфер, 5 ) ; // Чтение входящих данных из последовательного соединения до тех пор, пока не встретится символ новой строки

если ( количество байтов > 0 ) { // Проверяем, были ли прочитаны какие-либо байты
Серийный. Распечатать ( «Полученный персонаж:» ) ;
Серийный. писать ( буфер, число байт ) ; // Печатаем полученные данные на последовательный монитор
Серийный. печать ( ) ;
}
}

В функции setup() скорость передачи установит последовательную связь.

В функции loop() мы сначала определяем массив байтов с именем «буфер» . Этот массив будет использоваться для хранения входящих данных, считанных из последовательного соединения.

Далее мы вызываем Серийный.readBytesUntil() функция, которая считывает входящие данные из последовательного соединения до тех пор, пока не встретит символ новой строки ('\n'). Следующий аргумент — это длина буфера, который будет принимать максимум 5 байтов данных за раз.

Возвращенный байт сохраняется в «количество байтов» переменная. В случае, если полученные данные превышают длину буфера, данные будут прерваны и отправлены в следующем потоке данных.

Выход

Заключение

Серийный.readBytesUntil() Функция в программировании Arduino считывает байты из последовательного входного потока до тех пор, пока не будет получен указанный символ завершения. Функция выдает общее количество прочитанных байтов и сохраняет их в предоставленном буфере. Прочтите статью, чтобы получить дополнительную информацию о функции Serial.readBytesUntil().