ESP32 LORA Oled erreur compilation

Bonjour à tous,
j'ai acheté un lot de 2 modules ESP32 LORA Oled pour faire des tests de portée
je suis sous Win 10 et IDE 1.8.5
j'ai une erreur de compilation sur les exemples fournis que je n'arrive pas a comprendre
le code récepteur

/*
  This is a simple example show the LoRa recived data in OLED.
  The onboard OLED display is SSD1306 driver and I2C interface. In order to make the
  OLED correctly operation, you should output a high-low-high(1-0-1) signal by soft-
  ware to OLED's reset pin, the low-level signal at least 5ms.
  OLED pins to ESP32 GPIOs via this connecthin:
  OLED_SDA -- GPIO4
  OLED_SCL -- GPIO15
  OLED_RST -- GPIO16
  
  by Aaron.Lee from HelTec AutoMation, ChengDu, China
  www.heltec.cn
  this project also realess in GitHub:
  https://github.com/Heltec-Aaron-Lee/WiFi_Kit_series
*/
#include <SPI.h>
#include <LoRa.h>
#include <Wire.h>  
#include "SSD1306.h" 
#include "images.h"

// Pin definetion of WIFI LoRa 32
// HelTec AutoMation 2017 support@heltec.cn 
#define SCK     5    // GPIO5  -- SX127x's SCK
#define MISO    19   // GPIO19 -- SX127x's MISO
#define MOSI    27   // GPIO27 -- SX127x's MOSI
#define SS      18   // GPIO18 -- SX127x's CS
#define RST     14   // GPIO14 -- SX127x's RESET
#define DI00    26   // GPIO26 -- SX127x's IRQ(Interrupt Request)

#define BAND    433E6  //you can set band here directly,e.g. 868E6,915E6
#define PABOOST true

SSD1306 display(0x3c, 4, 15);
String rssi = "RSSI --";
String packSize = "--";
String packet ;

void logo(){
  display.clear();
  display.drawXbm(0,5,logo_width,logo_height,logo_bits);
  display.display();
}

void loraData(){
  display.clear();
  display.setTextAlignment(TEXT_ALIGN_LEFT);
  display.setFont(ArialMT_Plain_10);
  display.drawString(0 , 15 , "Received "+ packSize + " bytes");
  display.drawStringMaxWidth(0 , 26 , 128, packet);
  display.drawString(0, 0, rssi);  
  display.display();
}

void cbk(int packetSize) {
  packet ="";
  packSize = String(packetSize,DEC);
  for (int i = 0; i < packetSize; i++) { packet += (char) LoRa.read(); }
  rssi = "RSSI " + String(LoRa.packetRssi(), DEC) ;
  loraData();
}

void setup() {
  pinMode(16,OUTPUT);
  digitalWrite(16, LOW);    // set GPIO16 low to reset OLED
  delay(50); 
  digitalWrite(16, HIGH); // while OLED is running, must set GPIO16 in high、
  display.init();
  display.flipScreenVertically();  
  display.setFont(ArialMT_Plain_10);
  logo();
  delay(1500);
  display.clear();
  
  SPI.begin(SCK,MISO,MOSI,SS);
  LoRa.setPins(SS,RST,DI00);
  
  if (!LoRa.begin(BAND,PABOOST)) {
    display.drawString(0, 0, "Starting LoRa failed!");
    display.display();
    while (1);
  }
  display.drawString(0, 0, "LoRa Initial success!");
  display.drawString(0, 10, "Wait for incomm data...");
  display.display();
  delay(1000);
  //LoRa.onReceive(cbk);
  LoRa.receive();
}

void loop() {
  int packetSize = LoRa.parsePacket();
  if (packetSize) { cbk(packetSize);  }
  delay(10);
}

le images.h débute ainsi

#define logo_width 128
#define logo_height 53
static char logo_bits[] = {
   0x00, 0x00, 0x38, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, ....
}

la compil retourne l'erreur : invalid conversion from 'char*' to 'const uint8_t*

r:\Documents\Arduino2\LORArecept\LORArecept.ino: In function 'void logo()':
LORArecept:45: error: invalid conversion from 'char*' to 'const uint8_t* {aka const unsigned char*}' [-fpermissive]
   display.drawXbm(0,5,logo_width,logo_height,logo_bits);

                                                       ^
In file included from D:\Program Files (x86)\Arduino185\hardware\heltec\esp32\libraries\OLED\src/SSD1306Wire.h:34:0,
                 from sketch\SSD1306.h:33,

                 from r:\Documents\Arduino2\LORArecept\LORArecept.ino:23:

D:\Program Files (x86)\Arduino185\hardware\heltec\esp32\libraries\OLED\src/OLEDDisplay.h:175:10: note:   initializing argument 5 of 'void OLEDDisplay::drawXbm(int16_t, int16_t, int16_t, int16_t, const uint8_t*)'
     void drawXbm(int16_t x, int16_t y, int16_t width, int16_t height, const uint8_t *xbm);

          ^
exit status 1
invalid conversion from 'char*' to 'const uint8_t* {aka const unsigned char*}' [-fpermissive]

logo_bits est donc un pointeur sur le tableau de char et la fonction drawXbm semble attendre un pointeur en cinquième paramètre mais ça bug ...

bonjour,
une piste ICI

essayez de déclarer

const uint8_t logo_bits[] = {
   0x00, 0x00, 0x38, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, ....
}

bonsoir,
merci JML ça fonctionne, mais je pensais qu'un char est identique à un uint8_t
merci infobarquee ça va me servir pour la suite ...
je vais faire des plans de masse aux antennes pour faire mes essai de portée dans ma campagne
le module consomme tellement peu (~10mA) que certaines powerbank se mettent en veille

rjnc38:
merci JML ça fonctionne, mais je pensais qu'un char est identique à un uint8_t

Bonsoir

Ils font tous les deux 1 octet / 8 bits mais le u de [color=red]u[/color]int8_t veut dire unsigned donc valeurs entre 0 et 255, le char lui est signé (valeurs de -128 à 127)