INVIO STRINGHE SU SERIALE

Gentilissimi ho una domanda semplice da porre a cui non ho mai trovato risposta:

che succede se uso la funzione "Serial.print()" oppure la "Serial.println()" ma sulla seriale non collego nulla ?

In altri termini vorrei capire se la seriale rischia di "intasarsi" e quindi di bloccare per esempio l'esecuzione del programma stesso.

Grazie mille.

Giovanni

Perché non provi? Non si rompe nulla.

Fai un programma in cui: si accende un led, si attende un secondo, si invia un Serial.print, si spegne il led, si attende un secondo, e così via...

Se il led si accende e si spegne, significa che il Serial.print non blocca niente.

Ciao, P.

>gbtassara: essendo il tuo primo post nella sezione Italiana del forum, nel rispetto del regolamento di detta sezione (… punto 13, primo capoverso), ti chiedo cortesemente di presentarti IN QUESTO THREAD ([u]spiegando bene quali conoscenze hai di elettronica e di programmazione[/u] ... possibilmente [u]evitando[/u] di scrivere solo una riga di saluto) e di leggere con molta attenzione tutto il su citato REGOLAMENTO ... Grazie.

Guglielmo

pgiagno: Perché non provi? Non si rompe nulla.

Fai un programma in cui: si accende un led, si attende un secondo, si invia un Serial.print, si spegne il led, si attende un secondo, e così via...

Se il led si accende e si spegne, significa che il Serial.print non blocca niente.

Ciao, P.

Grazie PGIAGNO per la tua risposta.

Ho ovviamente provato.

La questione è un'altra ed è quella di evitare i conflitti a seconda delle impostazioni che si fanno sulla scheda. In più bisogna sempre tener conto della scheda Arduino che si utilizza. Dal canto mio ho sempre evitato di inviare messaggi sulla Serial se non per motivi di Debug. Di solito uso un "#define DEBUG" e quindi un "#ifdef DEBUG Serial.print() #endif" in modo da avere una compilazione condizionata ad hoc.

La domanda sembra banale ma da tecnico desidero sempre scrivere del Software corretto. Cercando sulle guide mi è stato impossibile trovare una risposta a questa domanda. Ovvero se un programma CHE ESEGUE un Serial.print possa bloccarsi se la seriale risulta scollegata.

Comunque grazie per il consiglio.

Giovanni

No, basta che ragioni sul fatto che la seriale di Arduino NON usa altri pin oltre il TX e il RX ... quindi ... non può sapere se qualcuno sta ricevendo o meno.

Su chip che hanno invece la USB nativa, come il ATmega32U4 che è montato su Arduino Leonardo, hai più controllo e, difatti, per quel tipo di schede, esiste la possibilità di fare "if ( Serial ) { ... }" per verificare se la seriale creata sulla USB è connessa o meno.

In ogni caso, la scrittura su una seriale NON connessa, non blocca nulla ... basta che vai ad esaminare il "core" e vedi come è implementata.

Guglielmo