Afficher un unsigned long sur le monitoe en hexa

Bonjour,
J'essaye d'afficher un unsigned long sur le Serial monitor mais ca m'affiche des caractères
bizarre

unsigned long val = 0x1B3473C6;
Serial.printf("%lX", val);

J'ai essayé toutes les possibilités de formatage.

Avez vous une idée ?

au final je veux que ca m'affiche:
1B3473C6

Merci de votre aide.

Petit rappel sur la syntaxe de print dans les librairies Arduino
https://docs.arduino.cc/language-reference/en/functions/communication/serial/print/

void setup() {
  Serial.begin(115200);
  unsigned long val = 0x1B3473C6;
  Serial.print(val, HEX);

}

void loop() {
  // put your main code here, to run repeatedly:

}

qui donne

1B3473C6

dans le moniteur série.

Merci , j'ai testé sur un sketch ca fonctionne bien,
je voulais m'en servir pour débugué une valeur de type long dans une librairie existante, mais apparemment quand je le met dans la library j'ai un message d'erreur de compilation:

Using library Minitel1B_Hard-master at version 1.0 in folder: D:\donnees\dev\ARDUINO2\sketch\libraries\Minitel1B_Hard-master 
exit status 1

Au début il y avait d'ajouter dans le message d'erreur le mot (Legacy), j'ai vu que ca venait du manque du fichier library.properties, mais même en le créant ca ne fonctionne pas.

En tous cas sur le principe ca fonctionne sur un sketch.
Merci.

I doit y avoir un peu plus d'info dans le message d'erreur. Éventuellement activer le compte-rendu verbeux à la compilation.

Dans les preferences j'ai:
Show verbose output during compilation et upload, les deux sont cochés,
et Compiler warnings il est sélectionné dans la liste, All.

Ce message apparait lorsque que je met Serial. quelque chose (print, write, println etc ..)

Dans l'application principale qui utilise cette librairie dans le setup j'ai bien Serial.begin(9600);
L'application utilise cette librairie:
#include <malibrary.h>, comme cette une librarie dans le répertoire libraries, j'ai mis < et > au lieu de " et ".

j'ai ce message:

Using library Minitel1B_Hard-master in folder: D:\donnees\dev\ARDUINO2\sketch\libraries\Minitel1B_Hard-master (legacy)
exit status 1

La librairie inclus Arduino.h?

non elle n'inclus pas Arduino.h mais j'ai essayé de l'ajouté dans la librairie et dans mon sketch (pour ESP32), elle est bien dans le répertoire librairie.

Je viens de m'apercevoir que ce n'est pas seulement avec Serial, c'est dès que je modifie une librairie, c'est comme si elle était en cache et que arduino vérifie si elle a été modifiée ou pas. Il doit y avoir un cache quelque part ou une base de données de libraries qu'il vérifie, je suppose pour une question de sécurité.

Pas de base de données mais chaque projet possède un répertoire temporaire dans lequel l'IDE compile toutes les librairies utilisées et tous les sources. Ce qui fait que lorsqu'on modifie un fichier il n'a normalement que celui-là à recompiler ce qui raccourci le temps de compilation. Tu peux éventuellement effacer ce répertoire. La première compilation sera un peu plus longue. Suivant les plateformes le répertoire temporaire n'est pas placé au même endroit.

En fait il y a avait une erreur dans la librairie, ca venait de ca, mais le message d'erreur n'est pas très explicite, donc c'est bon.

This topic was automatically closed 180 days after the last reply. New replies are no longer allowed.