Seryjny.Funkcja ReadByteSuntil w programowaniu Arduino

Seryjny.Funkcja ReadByteSuntil w programowaniu Arduino
Jeśli chodzi o programowanie z Arduino, istnieje wiele funkcji, których można użyć do manipulowania wejściem i wyjściem. Jedną główną funkcją Arduino jest Seryjny.ReadByteSuntil (), co pozwala odczytać dane ze strumienia, dopóki nie zostanie znaleziony określony znak. Ta funkcja pomaga odczytać dane z urządzeń szeregowych, dopóki nie znajdziemy wymaganych danych.

Ten zapis kompiluje serial.funkcja readBytesuntil () dogłębnie. Omówimy, co to jest, jak to działa, i omówimy kod Arduino, który wyjaśnia, jak go używać w kodzie Arduino.

Seryjny.ReadByteSuntil ()

Serial.Funkcja ReadByteSuntil () jest częścią klasy szeregowej Arduino. Ta funkcja odczytuje dane ze strumienia, dopóki nie znajdzie określonego znaku lub maksymalnej liczby bajtów. Po znalezieniu znaku lub maksymalnej liczbie bajtów funkcja przestaje odczytać i zwraca przeczytane dane.

Serial.Funkcja ReadByteSuntil () kończy się, gdy spełniane są następujące warunki:

  • Gdy funkcja wykryje znak terminatora
  • Osiągnięto określoną długość bufora
  • Ustalony czas jest przekazany lub czasy

Ta funkcja nie zwraca znaku terminatora, który zwraca dane tylko do ostatniego znaku przed terminatorem. Po zwróceniu tej funkcji 0 oznacza, że ​​nie znaleziono prawidłowych danych.

Składnia

Serial.Funkcja ReadByteSuntil () ma następującą składnię:

Seryjny.ReadByteSuntil (Char Terminator, Char* Bufor, Size_t Długość);

Parametry

Poniżej znajdują się parametry funkcji szeregowej.ReadByteSuntil ():

  • Postać terminatora: Postać, w której funkcja przestanie czytać.
  • bufor: W buforze odczytane dane szeregowe są dozwolonym typem danych.
  • długość: Maksymalna liczba bajtów do odczytania. Dozwolony typ danych jest int.

Powrót

Liczba bajtów umieszczonych w buforze.

Uwagi: W zamian dane terminatora jest odrzucane przez szereg funkcji.ReadByteSuntil () ze strumienia danych.

Przykład kodu Arduino

Po kodzie Arduino wyjaśnij użycie Seryjny.ReadByteSuntil () funkcjonować:

void setup ()
Seryjny.rozpocząć (9600); // Zainicjuj połączenie szeregowe z szybkością transmisji 9600

void Loop ()
Bufor bajtowy [5]; // Zdefiniuj tablicę bajtów do przechowywania danych przychodzących
int numBytes = szeregowy.ReadByteSuntil („\ n”, bufor, 5); // odczytaj dane przychodzące z połączenia szeregowego, aż do napotkania nowej postaci
if (numBytes> 0) // Sprawdź, czy czytane są bajty
Seryjny.Drukuj („Otrzymana postać:”);
Seryjny.Write (bufor, numBytes); // Wydrukuj otrzymane dane do monitora szeregowego
Seryjny.println ();

W stawce BAUD funkcji Setup () ustanowi komunikację szeregową.

W funkcji Loop () najpierw definiujemy nazywane tablicę bajtów 'bufor'. Ta tablica zostanie wykorzystana do przechowywania przychodzących odczytu danych z połączenia szeregowego.

Następnie nazywamy Seryjny.ReadByteSuntil () Funkcja, która odczytuje przychodzące dane z połączenia szeregowego, aż napotknie nową znak („\ n”). Następny argument to długość bufora, który na raz wymaga maksymalnie 5 bajtów danych.

Zwrócony bajt jest przechowywany w „Numbytes” zmienny. W przypadku, gdy otrzymane dane są większe niż długość bufora, dane zostaną zakończone i zostaną wysłane w następnym strumieniu danych.

Wyjście

Wniosek

Seryjny.ReadByteSuntil () Funkcja w programowaniu Arduino odczytuje bajty z szeregowego strumienia wejściowego, aż do odbierania określonego znaku terminatora. Funkcja daje całkowite bajty odczytujące i przechowuje je w dostarczonym buforze. Przeczytaj artykuł, aby uzyskać więcej informacji związanych z serialem.funkcja readByteSuntil ().