Comunicazione 8 bit 115200 bit di parità dispari ?!?

Ciao a tutti!

Ho bisogno di implementare una comunicazione 485 ( ho comprato l'adattatore) alla velocità di 115 200 baud, e fin qui nessun problema, ma con un bit di stop e il bit di parità dispari.

Come faccio a settare il bit di stop e la disparità con la libreria software serial?
Sto usando arduino UNO e programmo con l'ultima versione di arduino.

Esistono librerie diverse per fare questo?

Grazie

Sandroelec

Ho idea che devi prendere una scheda con più VERE seriali HW ... come ad esempio Arduino MEGA.

La SoftwareSerial (e altre librerie simili) NON prevede la gestione della parità e, peggio, da test effettuati da vari utenti, oltre i 38400 ha un tasso di errore totalmente inaccettabile ... figurati a 115Kbps.

Guglielmo

ok allora posso usare un'arduino due con le porte reali. Ma come si fa a settare i bit di parità/disparità, e lo stop bit? quale libreria devo usare allora?

Sandroelec:
ok allora posso usare un'arduino due con le porte reali. Ma come si fa a settare i bit di parità/disparità, e lo stop bit?

Usi la normale classe Serial (... e, ovviamnete, per le varie porte, Serial1, Serial2, Serial3, come descritto nel reference della DUE) e ... prova a studiarti la Serial.begin() :wink:

Guglielmo

Grazie! La sintassi corretta quindi è Serial.begin(115200,SERIAL_8O1); ?

Serial se usi la seriale classica (pin 0 e 1), le altre, se LEGGI il reference, si chiamano Serial1 (pin 19 e 18), Serial2 (pin 17 e 16) e Serial3 (pin 15 e 14) !

Guglielmo

si ho letto chiedevo solo conferma e non ho inserito il numero della porta. Sicuramente userò dalla 1 alla 3 per avere libera quella che comunica con il pc.
Grazie ancora buona giornata!

Sandro

Mi raccomando, ricordati (... per il collegamento con l'adattatore RS485 che hai preso) che la DUE lavora a 3.3V e tensioni superiori danneggiano i pin della MCU, quindi ... verifica :wink:

Guglielmo

ho pensato di utilizzare la porta Ho realizzato un piccolo sketch
void setup(){
SerialUSB.begin(115200);
}
void loop(){
SerialUSB.print("TEST");
delay(1000);
}
volevo provare a scrivere un valore e leggerlo sulla usb del mio pc con Putty.
Non riesco a leggere niente però e non mi riconosce la porta, non parte nessuna installazione di driver.

Immaginando fosse un proble di di driver ho provato anche a collegare i due pin RX e Tx nel mio arduino uno, realizzare un software che legge e riscrive sulla seriale col pc ma nulla.

suggerimenti? hai mai usato la USB di arduino due?

Grazie

... perché non usi semplicemente la "programming" port con Serial.begin() e Serial.print() ? ? ?

La "Native USB port" non ho ben idea di come vada utilizzata ... prova a guardare gli esempi nel IDE ... ::slight_smile:

Guglielmo

sono su UDOO. Ho solo due porte micro USB e non so come fare. pensavo di usare la nativa perchè la immaginavo libera...

poi in realtà c'è il problema che ho bisogno del monitor seriale per passare i dati dall'arduino alla UDOO.
Per questo consideravo occupata la porta per programmare.

Se fai una ricerca per "arduino due using native usb port" troverai vari thread che parlano della cosa ...
... uno, ad esempio è QUESTO, ma ce ne sono svariati altri che spiegano l'uso.

Guglielmo