CAN-bus R4 Minima

#include <Arduino_CAN.h>

static uint32_t const CAN_ID = 0x20;

void setup()
{
  Serial.begin(115200);

  if (!CAN.begin(CanBitRate::BR_250k))
  {
    Serial.println("CAN.begin(...) failed.");
    for (;;) {}
  }
}

uint8_t const msg_text[] = "buongiorno";
uint8_t const msg_data = analogRead(A0);

void loop()
{
  //CanMsg const msg(CanStandardId(CAN_ID), sizeof(msg_text), msg_text);
  CanMsg const msg(CanStandardId(CAN_ID), sizeof(msg_data), msg_data);

  if (int const rc = CAN.write(msg); rc < 0)
  {
    Serial.print  ("CAN.write(...) failed with error code ");
    Serial.println(rc);
    for (;;) { }
  }

  delay(1000);
}

Allora sono arrivato qui...i dati tipo stringa vengono inviati correttamente (come mi aspettavo "buongiorno" viene troncato, parole più corte rimangono intere) in esadecimale...quindi poi dovrò riconvertirli con qualche funzione (probabilmente esiste già?).
Il dato numerico mi rimane ancora oscuro invece.
Sono partito da un analogRead() che quindi restituisce valori interi ma non capisco come spedirli dal momento che non posso passare alla funzione msg() degli int...