Seryjny.Settimeout i serial.Funkcje gettimeout Arduino

Seryjny.Settimeout i serial.Funkcje gettimeout Arduino
Jednym z podstawowych elementów Arduino jest komunikacja szeregowa, która umożliwia wymianę danych między płytą Arduino a komputerem. W tym artykule omówimy dwie funkcje Arduino, szeregowe.settimeout () i serial.gettimeout (). Wyjaśnimy składnię, parametry i zwracanie wartości tych funkcji i podamy przykłady ich użycia.

Seryjny.Settimeout () - Arduino

Serial.Funkcja Settimeout () w Arduino służy do ustawiania maksymalnego czasu w milisekundach, że program będzie czekać na dane szeregowe. Domyślnie ustawiony limit czasu wynosi 1000 milisekund. Serial.Funkcja settimeout () pochodzi z klasy strumieniowej w Arduino, która zapewnia zestaw wspólnych sposobów pracy z wejściami/wyjściami.

Serial.Funkcja settimeout () jest przydatna podczas pracy z powolnymi lub niewiarygodnymi połączeniami.

Składnia
Składnia seryjna.Funkcja settimeout () to:

Seryjny.Settimeout (czas)

Parametry

Używać seryjnego.settimeout (), musisz podać obiekt portu szeregowego jako pierwszy parametr, a czas trwania limitu czasu w milisekundach jako drugi parametr. Czas trwania można wyrazić jako długi typ danych.

Wartość okresu czasu wynosi w milisekundach (MS). Ta wartość limitu czasu jest długa, która zaczyna się od 1 i wzrasta do 4294967295 milisekund.

Zwroty

Ta funkcja nie zwraca żadnej wartości.

Seryjny.gettimeout () - Arduino

Serial.funkcja gettimeout () zwraca bieżący okres czasu na komunikację szeregową. Można go użyć do określenia bieżącego okresu czasu lub przywrócenia domyślnego okresu czasu.

Składnia
Składnia seryjna.Funkcja gettimeout () to:

Seryjny.gettimeout (czas);

Parametry

Ta funkcja nie przyjmuje żadnych parametrów.

Zwroty

Ta funkcja zwraca ustawową wartość limitu czasu, która jest domyślnie 1000ms i można ją zmienić za pomocą serialu.gettimeout (). Typ danych wartości zwracania jest bez podpisu długie.

Przykładowy kod

W poniższym przykładzie otrzymujemy bieżący okres czasu za pomocą szeregu.funkcja gettimeout (). Następnie drukujemy okres czasu na monitorze szeregowym. Następnie zmieniliśmy okres czasu na 5 sekund, a następnie wydrukowaliśmy go ponownie na monitorze szeregowym.

void setup ()
Seryjny.rozpocząć (9600); // Zainicjuj komunikację szeregową przy 9600 bitach na sekundę
niepodpisany długi defaultTimeout = serial.gettimeout (); // Uzyskaj domyślny okres czasu
Seryjny.Drukuj („Domyślny okres czasu wynosi:”);
Seryjny.println (defaultTimeout); // Wydrukuj domyślny okres czasu na monitor szeregowy
Seryjny.Settimeout (5000); // Ustaw okres czasu na 5000 milisekund (5 sekund)
niepodpisany długi limit czasu = szeregowy.gettimeout (); // Uzyskaj bieżący okres czasu
Seryjny.Drukuj („Obecny okres czasu wynosi:”);
Seryjny.println (limit czasu); // Wydrukuj bieżący okres czasu na monitor szeregowy

void Loop ()

W powyższym kodzie organizować coś() Funkcja inicjuje komunikację szeregową przy 9600 bitach na sekundę i otrzymuje domyślny okres limitu czasu za pomocą szeregów.funkcja gettimeout (). Domyślny okres limitu czasu jest następnie wyświetlany na monitorze szeregowym.

Następnie serial.Funkcja Settimeout () służy do ustawienia nowego okresu czasu na 5 sekund (5000 milisekund).

Funkcja pętli () pobiera następnie bieżący okres czasu za pomocą szeregowego.funkcja gettimeout () i wyświetla ją na monitorze szeregowym. Opóźnienie 1 sekundy dodaje się przed wydrukowaniem następnej wartości, aby zapobiec zalaniu monitora szeregowego danymi. Ten kod można użyć do sprawdzenia, czy okres czasu jest ustawiony prawidłowo i że szereg seryjny.Funkcja gettimeout () działa zgodnie z oczekiwaniami.

Wyjście
W wyjściu możemy zobaczyć zarówno domyślny limit czasu, jak i nowy limit czasu jest drukowana na monitor szeregowych.

Wniosek

Seryjny.settimeout () I Seryjny.gettimeout () Funkcje są ważnymi funkcjami użytkowymi w języku Arduino. Seryjny.Settimeout () ustawia maksymalny czas w milisekundach, że program będzie czekać na dane szeregowe, podczas gdy szeregowy.gettimeout () pobiera bieżący okres czasu. Funkcje te są przydatne do pracy z urządzeniami zewnętrznymi, które nie zawsze dostarczają danych w określonym ramie czasowym.