Référence : Langage Arduino : [ Mini | Standard | Etendue | Maxi ] Librairies : [ Vue d'ensemble | Synthèse ] Infos : [ Comparaison | Changements ]

Librairie NewSoftSerial du site Arduiniana


1.  Description

NewSoftSerial is the latest of three Arduino libraries providing “soft” serial port support. It’s the direct descendant of ladyada’s AFSoftSerial, which introduced interrupt-driven receives – a dramatic improvement over the polling required by the native SoftwareSerial.

Without interrupts, your program’s design is considerably restricted, as it must continually poll the serial port at very short, regular intervals. This makes it nearly impossible, for example, to use SoftwareSerial to receive GPS data and parse it into a usable form. Your program is too busy trying to keep up with NMEA characters as they arrive to actually spend time assembling them into something meaningful. This is where AFSoftSerial’s (and NewSoftSerial’s) interrupt architecture is a godsend. Using interrupt-driven RX, your program fills its buffer behind the scenes while processing previously received data.

2.  Principe d'utilisation

2.1  Installation

  • La librairie est à télécharger et à mettre dans le répertoire Libraries de votre répertoire Arduino.

2.2  Utilisation de la librairie

#include <NewSoftSerial.h>

2.3  Déclaration d'un objet

NewSoftSerial therm(6,5);

2.4  Note importante

  • Any time you “use” an object by calling its begin(), available(), read(), or print[ln]() methods, it becomes the “active” object, and the previously active object is deactivated and its RX buffer discarded.
  • An important point here is that object.available() always returns 0 unless object is already active.

3.  Shield utilisables avec cette librairie :

4.  Exemples d'utilisation :

4.1  Sur le site Arduino anglais :

4.2  Sur le site :

5.  Le constructeur

6.  Les fonctions de la librairie

6.1  Et aussi :

7.  Commentaires utilisateurs

Documentation officielle :

Page d'accueil de la référence Arduino en français

Corrections, suggestions et nouvelle documentation peuvent être postées sur le Forum Arduino ou à l'adresse suivante : support_at_mon-club-elec_point_fr

Le texte original de la référence Arduino est sous licence Creative Commons Attribution-ShareAlike 3.0 . Les exemples de code dans la référence sont dans le domaine public.

La présente traduction française commentée a été réalisée par Xavier HINAULT (2010-2012) ( et est sous licence Creative Commons Attribution-ShareAlike 3.0.

8.  Détail des fonctions

NewSoftSerial(uint8_t receivePin, uint8_t transmitPin, bool inverse_logic = false);

void begin(long speed);

void end();

int read();

uint8_t available(void);

bool active() { return this == active_object; }

bool overflow() { bool ret = _buffer_overflow; _buffer_overflow = false; return ret; }

static int library_version() { return _NewSS_VERSION; }

static void enable_timer0(bool enable);

void flush();