Erreur de compilation MFRC522

Bonjour a tous, je suis nouveau sur le forum et je me lance dans l'utilisation du module RFID MFRC522. Après quelques déboire a importer la librairie https://github.com/miguelbalboa/rfid, je me trouve avec des erreurs de compilation. 1) Pour importer la lib j'ai importer le repertoire contenant les .h (correct ?) 2) J'ai essayer de charger un exemple fournit avec le repo mais les erreurs suivantes s'affiche

In file included from /home/zeus/sketchbook/libraries/src/MFRC522.h:78:0,
                 from ReadNUID.ino:32:
/home/zeus/sketchbook/libraries/src/require_cpp11.h:9:2: error: #error "This library needs at least a C++11 compliant compiler, maybe compiler argument for C++11 support is missing or if you use Arduino IDE upgrade to version >=1.6.6"
 #error "This library needs at least a C++11 compliant compiler, maybe compiler argument for C++11 support is missing or if you use Arduino IDE upgrade to version >=1.6.6"
  ^
In file included from ReadNUID.ino:32:0:
/home/zeus/sketchbook/libraries/src/MFRC522.h:142:9: error: ‘constexpr’ does not name a type
  static constexpr byte FIFO_SIZE = 64;  // The FIFO is 64 bytes.
         ^
/home/zeus/sketchbook/libraries/src/MFRC522.h:142:9: note: C++11 ‘constexpr’ only available with -std=c++11 or -std=gnu++11
/home/zeus/sketchbook/libraries/src/MFRC522.h:144:9: error: ‘constexpr’ does not name a type
  static constexpr uint8_t UNUSED_PIN = UINT8_MAX;
         ^
/home/zeus/sketchbook/libraries/src/MFRC522.h:144:9: note: C++11 ‘constexpr’ only available with -std=c++11 or -std=gnu++11
In file included from ReadNUID.ino:32:0:
/home/zeus/sketchbook/libraries/src/MFRC522.h:334:37: error: ‘SPISettings’ does not name a type
    SPIClass *spiClass = &SPI, const SPISettings spiSettings = SPISettings(SPI_CLOCK_DIV4, MSBFIRST, SPI_MODE0))
                                     ^
/home/zeus/sketchbook/libraries/src/MFRC522.h:429:8: error: ‘SPISettings’ does not name a type
  const SPISettings _spiSettings; // SPI settings.
        ^
/home/zeus/sketchbook/libraries/src/MFRC522.h:334:110: error: ‘SPISettings’ was not declared in this scope
    SPIClass *spiClass = &SPI, const SPISettings spiSettings = SPISettings(SPI_CLOCK_DIV4, MSBFIRST, SPI_MODE0))
                                                                                                              ^
/home/zeus/sketchbook/libraries/src/MFRC522.h:371:111: error: ‘nullptr’ was not declared in this scope
  StatusCode PCD_TransceiveData(byte *sendData, byte sendLen, byte *backData, byte *backLen, byte *validBits = nullptr, byte rxAlign = 0, bool checkCRC = false);
                                                                                                               ^
/home/zeus/sketchbook/libraries/src/MFRC522.h:372:112: error: ‘nullptr’ was not declared in this scope
  StatusCode PCD_CommunicateWithPICC(byte command, byte waitIRq, byte *sendData, byte sendLen, byte *backData = nullptr, byte *backLen = nullptr, byte *validBits = nullptr, byte rxAlign = 0, bool checkCRC = false);
                                                                                                                ^
/home/zeus/sketchbook/libraries/src/MFRC522.h:372:137: error: ‘nullptr’ was not declared in this scope
  StatusCode PCD_CommunicateWithPICC(byte command, byte waitIRq, byte *sendData, byte sendLen, byte *backData = nullptr, byte *backLen = nullptr, byte *validBits = nullptr, byte rxAlign = 0, bool checkCRC = false);
                                                                                                                                         ^
/home/zeus/sketchbook/libraries/src/MFRC522.h:372:164: error: ‘nullptr’ was not declared in this scope
  StatusCode PCD_CommunicateWithPICC(byte command, byte waitIRq, byte *sendData, byte sendLen, byte *backData = nullptr, byte *backLen = nullptr, byte *validBits = nullptr, byte rxAlign = 0, bool checkCRC = false);
                                                                                                                                                                    ^
/home/zeus/sketchbook/libraries/src/MFRC522.h: In constructor ‘MFRC522::MFRC522(byte, byte, SPIClass*, int)’:
/home/zeus/sketchbook/libraries/src/MFRC522.h:336:27: error: class ‘MFRC522’ does not have any field named ‘_spiSettings’
      _spiClass(spiClass), _spiSettings(spiSettings) {};
                           ^
/home/zeus/sketchbook/libraries/src/MFRC522.h: In constructor ‘MFRC522::MFRC522()’:
/home/zeus/sketchbook/libraries/src/MFRC522.h:337:22: error: ‘UNUSED_PIN’ was not declared in this scope
  MFRC522() : MFRC522(UNUSED_PIN, UNUSED_PIN) {};
                      ^
ReadNUID.ino: At global scope:
ReadNUID.ino:34:1: error: ‘constexpr’ does not name a type
ReadNUID.ino:34:1: note: C++11 ‘constexpr’ only available with -std=c++11 or -std=gnu++11
ReadNUID.ino:35:1: error: ‘constexpr’ does not name a type
ReadNUID.ino:35:1: note: C++11 ‘constexpr’ only available with -std=c++11 or -std=gnu++11
ReadNUID.ino:37:14: error: ‘SS_PIN’ was not declared in this scope
ReadNUID.ino:37:22: error: ‘RST_PIN’ was not declared in this scope

Etant donné que je ne fait que compiler un exemple fournit je ne comprend pas ces erreurs. A moins que l'exemple en lui même ne soit pas bon ?

Merci pour votre aide et bonne journée.

Bonjour,

  • Est ce que tu utilises bien l'IDE Arduino? Quelle version?

  • Quel répertoire qui contient les .h ? Télécharge le .zip et utilises le menu 'Croquis' 'Inclure une bilbliothèque'

  • Généralement les exemples fournis avec les librairies sont corrects. Il faut d'abord chercher ailleurs.

Salut kamill !

Oui j'ai l'IDE arduino en version 2:1.0.5.

Arborescence : changes.txt doc examples keywords.txt library.json library.properties README.rst src UNLICENSE

les .h se trouvent dans src, j'ai d'abord importer le repertoire en entier mais quand je fais l'import je n'ai pas les lib (erreur de compilation "MFRC522.h" non trouvé), puis le repertoire src uniquement et le header est bien chargé mais plus d'exemples (j'ai donc fais un copier/coller).

Il est indiqué dans la description de la librairie qu'on doit utiliser une version supérieure à 1.6.6 qui supporte la spécification C++11 Tu devrais installer la dernière version.

Oui justement, j’utilise la 2:1.0.5. C’est la version du dépot debian, celle de du site arduino est la 1.8 quelque-chose il me semble mais je vais vérifier et tester je te dirais ca.

squiqure: Oui justement, j'utilise la 2:1.0.5. C'est la version du dépot debian, celle de du site arduino est la 1.8 quelque-chose il me semble mais je vais vérifier et tester je te dirais ca.

bonsoir Heu ! , [HUM] C'est quoi un dépôt debian ? 8)

pour faire simple

chez moi la lib RFID balboa , ne fonctionne pas (memes erreurs que toi) sous IDE arduino 1.6.5

et passe sans problème sous IDE 1.8.3

Alors en fait, j'ai mal lu la version de l'IDE. Dans le paquet que j'ai télécharger il était affiché 2;1.0.5, mais il semblerait que le 2 ne signifie pas version 2.xxx ... Donc, la version dl a partir du site officiel a résolu mon problème de compilation.

Merci a vous.