Stocker plusieur caractère hexadecimal dans une variable RC522 lecteur nfc

Bonjour ,
J’espère que mon titre n’est pas trop mauvais. Voici mon problème , je doit lire l’uid d’une carte mifare avec un lecteur RC522 , se n’est pas très compliquer avec les codes fourni avec la librairies mais voila mon problème je doit a tout prix afficher les 4 premier caractère hexadécimal a l’envers je ne doit pas prendre les caractère de gauche a droite mais de droite a gauche donc si j’ai " AB CD EF GH " en UID je doit afficher sa comme ceci en serial " GH EF CD AB ".

Au début j’ai utiliser cette librairie GitHub - miguelbalboa/rfid: Arduino RFID Library for MFRC522 mais elle est trop compliquer a manipuler pour moi alors j’utilise cette librairie Arduino Ep.14 | Comment utiliser le module RFID RC522. | Les Électroniciens.com
celle qui est fourni par U=RI le youtubeur dans sa vidéo sur les carte rfid.

/**

  • Read a card using a mfrc522 reader on your SPI interface
  • Pin layout should be as follows (on Arduino Uno):
  • MOSI: Pin 11 / ICSP-4
  • MISO: Pin 12 / ICSP-1
  • SCK: Pin 13 / ISCP-3
  • SS: Pin 10
  • RST: Pin 9
  • Script is based on the script of Miguel Balboa.
  • New cardnumber is printed when card has changed. Only a dot is printed
  • if card is the same.
  • @version 0.1
  • @author Henri de Jong
  • @since 06-01-2013
    */

#include <SPI.h>
#include <RFID.h>

#define SS_PIN 10
#define RST_PIN 9

RFID rfid(SS_PIN, RST_PIN);

// Setup variables:
int serNum0;
int serNum1;
int serNum2;
int serNum3;
int serNum4;

void setup()
{
Serial.begin(9600);
SPI.begin();
rfid.init();

}

void loop()
{

if (rfid.isCard()) {
if (rfid.readCardSerial()) {
if (rfid.serNum[0] != serNum0
&& rfid.serNum[1] != serNum1
&& rfid.serNum[2] != serNum2
&& rfid.serNum[3] != serNum3
&& rfid.serNum[4] != serNum4
) {
/* With a new cardnumber, show it. */
Serial.println(" ");
Serial.println(“Card found”);
serNum0 = rfid.serNum[0];
serNum1 = rfid.serNum[1];
serNum2 = rfid.serNum[2];
serNum3 = rfid.serNum[3];

//Serial.println(" ");

Serial.print("Hex: “);
Serial.print(rfid.serNum[0],HEX);
Serial.print(”, “);
Serial.print(rfid.serNum[1],HEX);
Serial.print(”, “);
Serial.print(rfid.serNum[2],HEX);
Serial.print(”, “);
Serial.print(rfid.serNum[3],HEX);
Serial.print(”, ");

} else {
/* If we have the same ID, just write a dot. */
Serial.print(".");
}
}
}

rfid.halt();
}

Voici le code que j’utilise , il s’agit du code fourni dans les exemple de ma bibliothèque que j’ai un petit peux modifier il m’affiche l’uid de ma carte en hexa et j’aimerai comme je l’ai dit précédemment crée une variable dans laquelle je pourrai stocker les 4 premier octet de la carte dans un ordre bien précis puis les convertir en décimal.

Je ne suis pas un habituer des forums alors si j’ai éventuellement mal formuler quelque chose je vous serais reconnaissant de me le signaler.
Merci.

Bonjour,

Tu peux ranger tes octets dans un unsigned long.

  unsigned long num=((unsigned long)rfid.serNum[3]<<24)+((unsigned long)rfid.serNum[2]<<16)+((unsigned long)rfid.serNum[1]<<8)+(unsigned long)rfid.serNum[0];
  Serial.println(num,HEX);

Plutot que d’utiliser les balises [quote] utilise les balises [code] pour ton code

Un grand merci a toi !
Sa marche niquelle.