[Résolu] Bloquer un port série en Rx (SoftwareSerial)

Bonjour à tous,

J'utilise un port ajouté sur une carte Nano pour lire les trames d'un compteur Linky. (1200 b/sec)
Durant le traitement de l'information reçue, j'ai constaté que le délai de réception des données continue à courir alors que normalement il devrait il devrait s'arrêter puisque j'ai une instruction : monSerial.end();
En résumé, le temps de traitement est allongé car le micro s'occupe encore du port série et des trames qui arrivent en continu.

Pour le bloquer, j'ai une solution "logicielle/matériel" qui consisterait à "forcer" à 1 ou à 0 l'entrée Rx à l'aide d'une autre sortie du micro ? (non testé)

Vous avez peut-être une autre solution plus "propre" ?

Merci

geryko:
...normalement il devrait il devrait s'arrêter puisque j'ai une instruction : monSerial.end();
Vous avez peut-être une autre solution plus "propre" ?

bonsoir
le .end n'existe selon la doc que pour les ports serie hard mega
ça passe peut etre à la compile , mais c'est surement inoperant.
Peut etre simplement passer le pin RX en output lorsque tu ne veux pas le traiter et le remettre en input lorsque tu redonne la main ?

Bonsoir Artouste,

"Résultat des courses"

  1. J'avais regardé la bibliothèque, apparemment le "serial.end" est géré mais je ne suis pas assez connaisseur ?
    a) J'avais également pensé à ce que tu proposes.
    Une seule solution :
    Passer le pin RX en output et à 0 sinon cette sortie va être court-circuitée par le transistor d'attaque.
    ça fonctionne. (vu à l'oscillo)

  2. Mais par ailleurs j'ai vu que j'avais une erreur sur la position de : monSerial.end();
    qui fonctionne également.
    Conclusion : affaire classée. Je n'ai pas utilisé le § 1) a) ci-dessus.

Merci à tous