Serie.setTimeout og serie.GetTimeout Arduino -funksjoner

Serie.setTimeout og serie.GetTimeout Arduino -funksjoner
En av de essensielle komponentene i Arduino er seriell kommunikasjon, som muliggjør utveksling av data mellom Arduino -styret og en datamaskin. I denne artikkelen vil vi diskutere to Arduino -funksjoner, Serial.setTimeout () og serie.GetTimeout (). Vi vil forklare syntaks, parametere og returverdier for disse funksjonene og gi eksempler på bruken av dem.

Serie.setTimeout () - Arduino

Serien.setTimeout () -funksjonen i Arduino brukes til å angi maksimal tid i millisekunder at programmet vil vente på seriedata. Som standard er den faste timeout 1000 millisekunder. Serien.setTimeout () -funksjonen kommer fra strømklassen i Arduino, som gir et sett med vanlige måter å jobbe med innganger/utganger.

Serien.setTimeout () -funksjonen er nyttig når du jobber med langsomme eller upålitelige tilkoblinger.

Syntaks
Syntaks for seriell.setTimeout () -funksjonen er:

Serie.setTimeout (tid)

Parametere

Å bruke seriell.setTimeout (), du må gi seriell portobjekt som den første parameteren, og varigheten av tidsavbruddet i millisekunder som den andre parameteren. Varigheten kan uttrykkes som en lang datatype.

Time-out periodverdien er i millisekunder (MS). Denne tidsavbruddsverdien er usignert lang som starter fra 1 og går opp til 4294967295 millisekunder.

Returnerer

Denne funksjonen returnerer ingen verdi.

Serie.GetTimeout () - Arduino

Serien.getTimeout () -funksjonen returnerer gjeldende tidsperiode for seriell kommunikasjon. Det kan brukes til å bestemme gjeldende tidsperiode eller for å gjenopprette standard tidsperiode-utperioden.

Syntaks
Syntaks for seriell.getTimeout () -funksjonen er:

Serie.getTimeout (tid);

Parametere

Denne funksjonen tar ingen parametere.

Returnerer

Denne funksjonen returnerer den angitte timeoutverdien som er som standard 1000ms og kan endres ved hjelp av serien.GetTimeout (). Datatypen av returverdien er usignert lenge.

Eksempelkode

I det følgende eksemplet får vi den nåværende tidsperioden ved å bruke serien.getTimeout () -funksjon. Vi skriver deretter ut tidsperioden til seriemonitoren. Deretter endret vi tidsperioden til 5 sekunder og trykket den deretter igjen på seriemonitoren.

void setup ()
Serie.Begynn (9600); // Initialiser seriell kommunikasjon med 9600 biter per sekund
usignert lang standardtid = seriell.getTimeout (); // Få standard time-out-periode
Serie.PRINT ("Standard tidsperiode er:");
Serie.println (standardTimeout); // Skriv ut standard tidsperiode til seriemonitoren
Serie.setTimeout (5000); // Angi tidsperioden til 5000 millisekunder (5 sekunder)
usignert lang timeout = seriell.getTimeout (); // Få gjeldende tidsperiode
Serie.trykk ("Nåværende time-out-periode er:");
Serie.println (timeout); // Skriv ut gjeldende tidsperiode til seriemonitoren

void loop ()

I ovennevnte kode oppsett () Funksjon initialiserer seriell kommunikasjon med 9600 biter per sekund og får standard tidsavbruddsperiode ved hjelp av serien.getTimeout () -funksjon. Standard tidsavbruddsperiode vises deretter på seriemonitoren.

Neste, serien.Settimeout () -funksjonen brukes til å sette den nye tidsavbruddsperioden til 5 sekunder (5000 millisekunder).

Loop () -funksjonen henter deretter gjeldende tidsavbruddsperiode ved å bruke serien.GetTimeout () -funksjonen og viser den på seriemonitoren. En forsinkelse på 1 sekund legges til før du skriver ut neste verdi for å forhindre at seriemonitoren blir oversvømmet med data. Denne koden kan brukes til å bekrefte at tidsavbruddsperioden er satt riktig og at serien.getTimeout () -funksjonen fungerer som forventet.

Produksjon
I utgangen kan vi se både standard timeout og ny timeout skrives ut på seriemonitoren.

Konklusjon

De Serie.setTimeout () og Serie.GetTimeout () Funksjoner er viktige verktøyfunksjoner på Arduino -språket. Serie.setTimeout () setter maksimal tid i millisekunder at programmet vil vente på seriedata, mens seriell.getTimeout () henter gjeldende tidsavbruddsperiode. Disse funksjonene er nyttige for å jobbe med eksterne enheter som kanskje ikke alltid gir data innen en bestemt tidsramme.